ó 9(Zc@s dZddlZddlZddlZddlmZmZejde ƒde fd„ƒYƒZ ejde ƒde fd„ƒYƒZ ejde ƒd e fd „ƒYƒZ ejde ƒd e fd „ƒYƒZejde ƒd e fd„ƒYƒZdS(s.Public data structures for aws_encryption_sdk.i’’’’N(tto_bytestto_strthasht MessageHeadercBs—eZdZejdedejjej j ƒƒZ ejdedejjej j ƒƒZ ejdedejjej jƒƒZejdedejjeƒƒZejdedejjeƒƒZejdedejjeƒƒZejdedejjej jƒƒZejdedejjejƒƒZejdedejjejƒƒZejdedejjejƒƒZRS(sŌDeserialized message header object. :param version: Message format version, per spec :type version: aws_encryption_sdk.identifiers.SerializationVersion :param type: Message content type, per spec :type type: aws_encryption_sdk.identifiers.ObjectType :param algorithm: Algorithm to use for encryption :type algorithm: aws_encryption_sdk.identifiers.Algorithm :param bytes message_id: Message ID :param dict encryption_context: Dictionary defining encryption context :param encrypted_data_keys: Encrypted data keys :type encrypted_data_keys: set of :class:`aws_encryption_sdk.structures.EncryptedDataKey` :param content_type: Message content framing type (framed/non-framed) :type content_type: aws_encryption_sdk.identifiers.ContentType :param bytes content_aad_length: empty :param int header_iv_length: Bytes in Initialization Vector value found in header :param int frame_length: Length of message frame in bytes Rt validator(t__name__t __module__t__doc__tattrtibtTruet validatorst instance_oftaws_encryption_sdkt identifierstSerializationVersiontversiont ObjectTypettypet Algorithmt algorithmtbytest message_idtdicttencryption_contexttsettencrypted_data_keyst ContentTypet content_typetsixt integer_typestcontent_aad_lengththeader_iv_lengtht frame_length(((sI/tmp/pip-build-wDUJoH/aws-encryption-sdk/aws_encryption_sdk/structures.pyRs$$$''t MasterKeyInfocBsteZdZejdedejjej e fƒde ƒZ ejdedejjej e fƒde ƒZRS(sŖContains information necessary to identify a Master Key. :param str provider_id: MasterKey provider_id value :param bytes key_info: MasterKey key_info value RRtconvert(RRRRR R R R Rt string_typesRRt provider_idRtkey_info(((sI/tmp/pip-build-wDUJoH/aws-encryption-sdk/aws_encryption_sdk/structures.pyR">s   t RawDataKeycBsVeZdZejdedejjeƒƒZ ejdedejje ƒƒZ RS(s×Hold only the unencrypted copy of a data key. :param key_provider: Key Provider information :type key_provider: aws_encryption_sdk.structures.MasterKeyInfo :param bytes data_key: Plaintext data key RR( RRRRR R R R R"t key_providerRtdata_key(((sI/tmp/pip-build-wDUJoH/aws-encryption-sdk/aws_encryption_sdk/structures.pyR'Rs$tDataKeycBszeZdZejdedejjeƒƒZ ejdedejje ƒƒZ ejdedejje ƒƒZ RS(s Holds both the encrypted and unencrypted copies of a data key. :param key_provider: Key Provider information :type key_provider: aws_encryption_sdk.structures.MasterKeyInfo :param bytes data_key: Plaintext data key :param bytes encrypted_data_key: Encrypted data key RR( RRRRR R R R R"R(RR)tencrypted_data_key(((sI/tmp/pip-build-wDUJoH/aws-encryption-sdk/aws_encryption_sdk/structures.pyR*_s$$tEncryptedDataKeycBsVeZdZejdedejjeƒƒZ ejdedejje ƒƒZ RS(sąHolds only the encrypted copy of a data key. :param key_provider: Key Provider information :type key_provider: aws_encryption_sdk.structures.MasterKeyInfo :param bytes encrypted_data_key: Encrypted data key RR( RRRRR R R R R"R(RR+(((sI/tmp/pip-build-wDUJoH/aws-encryption-sdk/aws_encryption_sdk/structures.pyR,ns$(RRRtaws_encryption_sdk.identifiersR t#aws_encryption_sdk.internal.str_opsRRtsR tobjectRR"R'R*R,(((sI/tmp/pip-build-wDUJoH/aws-encryption-sdk/aws_encryption_sdk/structures.pyt s   (