in src/aws_encryption_sdk/materials_managers/default.py [0:0]
def _load_verification_key_from_encryption_context(self, algorithm, encryption_context):
"""Loads the verification key from the encryption context if used by algorithm suite.
:param algorithm: Algorithm for which to generate signing key
:type algorithm: aws_encryption_sdk.identifiers.Algorithm
:param dict encryption_context: Encryption context from request
:returns: Raw verification key
:rtype: bytes
:raises SerializationError: if algorithm suite requires message signing and no verification key is found
"""
encoded_verification_key = encryption_context.get(ENCODED_SIGNER_KEY, None)
if algorithm.signing_algorithm_info is not None and encoded_verification_key is None:
raise SerializationError("No signature verification key found in header for signed algorithm.")
if algorithm.signing_algorithm_info is None:
if encoded_verification_key is not None:
raise SerializationError("Signature verification key found in header for non-signed algorithm.")
return None
verifier = Verifier.from_encoded_point(algorithm=algorithm, encoded_point=encoded_verification_key)
return verifier.key_bytes()