Mac
MacMessage
messages are used when there are multiple receivers or additional information
required to authenticate/validate the message. The basic COSE structure, consisting of headers and (encrypted) payload,
is extended with a list of CoseRecipient
structures.
- class pycose.messages.macmessage.MacMessage(phdr=None, uhdr=None, payload=b'', external_aad=b'', key=None, recipients=None, *args, **kwargs)
- encode(tag=True, mac=True, *args, **kwargs)
Encodes and protects the COSE_Mac message.
- compute_tag(*args, **kwargs)
Computes the authentication tag of a COSE_Mac or COSE_Mac0 message.
- 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.
- verify_tag(*args, **kwargs)
Verifies the authentication tag of a received message.