σ 9(Zc@`s€ddlmZmZmZddlZddlmZmZddlm Z ddl m Z de fd„ƒYZ de fd „ƒYZd e fd „ƒYZdS( i(tabsolute_importtdivisiontprint_functionN(t exceptionstutils(taead(tbackendtChaCha20Poly1305cB`s;eZd„Zed„ƒZd„Zd„Zd„ZRS(cC`shtj|ƒs*tjdtjjƒ‚ntjd|ƒt|ƒdkr[t dƒ‚n||_ dS(Ns<ChaCha20Poly1305 is not supported by this version of OpenSSLtkeyi s&ChaCha20Poly1305 key must be 32 bytes.( Rtaead_cipher_supportedRtUnsupportedAlgorithmt_ReasonstUNSUPPORTED_CIPHERRt _check_bytestlent ValueErrort_key(tselfR((sQ/tmp/pip-build-wDUJoH/cryptography/cryptography/hazmat/primitives/ciphers/aead.pyt__init__scC`s tjdƒS(Ni (tosturandom(tcls((sQ/tmp/pip-build-wDUJoH/cryptography/cryptography/hazmat/primitives/ciphers/aead.pyt generate_keyscC`sD|dkrd}n|j|||ƒtjt||||dƒS(Nti(tNonet _check_paramsRt_encryptR(Rtnoncetdatatassociated_data((sQ/tmp/pip-build-wDUJoH/cryptography/cryptography/hazmat/primitives/ciphers/aead.pytencrypt s   cC`sD|dkrd}n|j|||ƒtjt||||dƒS(NRi(RRRt_decryptR(RRRR((sQ/tmp/pip-build-wDUJoH/cryptography/cryptography/hazmat/primitives/ciphers/aead.pytdecrypt)s   cC`sUtjd|ƒtjd|ƒtjd|ƒt|ƒdkrQtdƒ‚ndS(NRRRi sNonce must be 12 bytes(RR RR(RRRR((sQ/tmp/pip-build-wDUJoH/cryptography/cryptography/hazmat/primitives/ciphers/aead.pyR2s (t__name__t __module__Rt classmethodRRR R(((sQ/tmp/pip-build-wDUJoH/cryptography/cryptography/hazmat/primitives/ciphers/aead.pyRs   tAESCCMcB`sGeZdd„Zed„ƒZd„Zd„Zd„Zd„ZRS(icC`sͺtjd|ƒt|ƒdkr1tdƒ‚n||_t|tƒsXtdƒ‚n|dkrstd ƒ‚n||_t j |ƒs¦t j d t j jƒ‚ndS(NRiii s)AESCCM key must be 128, 192, or 256 bits.stag_length must be an integeriiii isInvalid tag_lengths2AESCCM is not supported by this version of OpenSSL(iii (iiii ii(RR RRRt isinstancetintt TypeErrort _tag_lengthRR RR R R (RRt tag_length((sQ/tmp/pip-build-wDUJoH/cryptography/cryptography/hazmat/primitives/ciphers/aead.pyR;s   cC`sJt|tƒstdƒ‚n|dkr9tdƒ‚ntj|dƒS(Nsbit_length must be an integeri€iΐis#bit_length must be 128, 192, or 256i(i€iΐi(R%R&R'RRR(Rt bit_length((sQ/tmp/pip-build-wDUJoH/cryptography/cryptography/hazmat/primitives/ciphers/aead.pyROs  cC`s]|dkrd}n|j|||ƒ|j|t|ƒƒtjt|||||jƒS(NR(RRt_validate_lengthsRRRRR((RRRR((sQ/tmp/pip-build-wDUJoH/cryptography/cryptography/hazmat/primitives/ciphers/aead.pyRYs   cC`sG|dkrd}n|j|||ƒtjt|||||jƒS(NR(RRRRRR((RRRR((sQ/tmp/pip-build-wDUJoH/cryptography/cryptography/hazmat/primitives/ciphers/aead.pyR cs   cC`s7dt|ƒ}dd||kr3tdƒ‚ndS(NiiisNonce too long for data(RR(RRtdata_lentl_val((sQ/tmp/pip-build-wDUJoH/cryptography/cryptography/hazmat/primitives/ciphers/aead.pyR+lscC`setjd|ƒtjd|ƒtjd|ƒdt|ƒkoMdknsatdƒ‚ndS(NRRRii s$Nonce must be between 7 and 13 bytes(RR RR(RRRR((sQ/tmp/pip-build-wDUJoH/cryptography/cryptography/hazmat/primitives/ciphers/aead.pyRss "( R!R"RR#RRR R+R(((sQ/tmp/pip-build-wDUJoH/cryptography/cryptography/hazmat/primitives/ciphers/aead.pyR$:s   tAESGCMcB`s;eZd„Zed„ƒZd„Zd„Zd„ZRS(cC`s>tjd|ƒt|ƒdkr1tdƒ‚n||_dS(NRiii s)AESGCM key must be 128, 192, or 256 bits.(iii (RR RRR(RR((sQ/tmp/pip-build-wDUJoH/cryptography/cryptography/hazmat/primitives/ciphers/aead.pyR|scC`sJt|tƒstdƒ‚n|dkr9tdƒ‚ntj|dƒS(Nsbit_length must be an integeri€iΐis#bit_length must be 128, 192, or 256i(i€iΐi(R%R&R'RRR(RR*((sQ/tmp/pip-build-wDUJoH/cryptography/cryptography/hazmat/primitives/ciphers/aead.pyRƒs  cC`sD|dkrd}n|j|||ƒtjt||||dƒS(NRi(RRRRR(RRRR((sQ/tmp/pip-build-wDUJoH/cryptography/cryptography/hazmat/primitives/ciphers/aead.pyRs   cC`sD|dkrd}n|j|||ƒtjt||||dƒS(NRi(RRRRR(RRRR((sQ/tmp/pip-build-wDUJoH/cryptography/cryptography/hazmat/primitives/ciphers/aead.pyR –s   cC`s4tjd|ƒtjd|ƒtjd|ƒdS(NRRR(RR (RRRR((sQ/tmp/pip-build-wDUJoH/cryptography/cryptography/hazmat/primitives/ciphers/aead.pyRŸs(R!R"RR#RRR R(((sQ/tmp/pip-build-wDUJoH/cryptography/cryptography/hazmat/primitives/ciphers/aead.pyR.{s   (t __future__RRRRt cryptographyRRt$cryptography.hazmat.backends.opensslRt,cryptography.hazmat.backends.openssl.backendRtobjectRR$R.(((sQ/tmp/pip-build-wDUJoH/cryptography/cryptography/hazmat/primitives/ciphers/aead.pyts ,A