in src/dynamodb_encryption_sdk/material_providers/aws_kms.py [0:0]
def encryption_materials(self, encryption_context):
# type: (EncryptionContext) -> RawEncryptionMaterials
"""Provide encryption materials.
:param EncryptionContext encryption_context: Encryption context for request
:returns: Encryption materials
:rtype: RawEncryptionMaterials
"""
initial_material, encrypted_initial_material = self._generate_initial_material(encryption_context)
encryption_material_description = encryption_context.material_description.copy()
encryption_material_description.update(
{
_COVERED_ATTR_CTX_KEY: _KEY_COVERAGE,
MaterialDescriptionKeys.CONTENT_KEY_WRAPPING_ALGORITHM.value: "kms",
MaterialDescriptionKeys.CONTENT_ENCRYPTION_ALGORITHM.value: self._content_key_info.description,
MaterialDescriptionKeys.ITEM_SIGNATURE_ALGORITHM.value: self._signing_key_info.description,
MaterialDescriptionKeys.WRAPPED_DATA_KEY.value: to_str(base64.b64encode(encrypted_initial_material)),
}
)
return RawEncryptionMaterials(
signing_key=self._mac_key(initial_material, self._signing_key_info),
encryption_key=self._encryption_key(initial_material, self._content_key_info),
material_description=encryption_material_description,
)