Encrypt

EncMessage messages are used when there are multiple receivers or additional information required to decrypt the message. The basic COSE structure, consisting of headers and (encrypted) payload, is extended with a list of CoseRecipient structures. Each CoseRecipient can optionally contain another list of CoseRecipient objects.

../../_images/encrypt0.png
class pycose.messages.encmessage.EncMessage(phdr=None, uhdr=None, payload=b'', external_aad=b'', key=None, recipients=None, *args, **kwargs)

Create a COSE_Encrypt message.

Parameters:
  • phdr – Protected header.

  • uhdr – Unprotected header.

  • payload – The payload of the COSE_Encrypt message.

  • external_aad – External additional data (is authenticated by not included in the final message)

  • recipients – An optional list of CoseRecipient objects.

encode(tag=True, encrypt=True, *args, **kwargs)

Encodes and protects the COSE_Encrypt message

encrypt(*args, **kwargs)

Encrypts the payload.

Raises:

CoseException – When the key is not of type ‘SymmetricKey’.

Returns:

ciphertext as bytes

decrypt(recipient, *args, **kwargs)

Decrypts the payload.

Raises:

CoseException – When the key is not of type ‘SymmetricKey’.

Returns:

plaintext as bytes

classmethod decode(received, *args, **kwargs)

Decode received COSE message based on the CBOR tag.

If called on CoseMessage, this function can decode any supported message type. Otherwise, if called on a sub-class of CoseMessage, only messages of that type will be allowed to be decoded.

Parameters:

received – COSE messages encoded as bytes

Raises:
  • AttributeError – When the COSE message, it cannot be decoded properly

  • ValueError – The received parameter must be bytes

  • KeyError – thrown when the CBOR tag, identifying the COSE message is unrecognized

  • TypeError – thrown when the messages cannot be decoded properly

  • TypeError – The message’s tag does not match the expected type.

Returns:

An initialized CoseMessage

get_attr(attribute, default=None)

Fetches an header attribute from the COSE header buckets.

Parameters:
  • attribute – A header parameter to fetch from the buckets.

  • default – A default return value in case the attribute was not found

Raises:

CoseException – When the same attribute is found in both the protected and unprotected header.

Returns:

If found returns a header attribute else ‘None’ or the default value

property phdr_encoded

Encode the protected header.

Returns:

Returns the encoded protected header.

property uhdr_encoded

Encode the unprotected header.

Returns:

Returns the encoded unprotected header.