pg bddlZddlmZddlmZdZdZejrddlm Z GddZ dS) N)InvalidSignature) constant_time )BackendcNeZdZdddeddfdZdeddfdZdefd Zd eddfd ZdS) _Poly1305ContextbackendrkeyreturnNc||_|jj|}|jj|jjj|jjj|t|}|j||jjjk|jj ||jjj |_ |jj }|j||jjjk|jj ||jjj |_|jj|j|jjj|jjj|jjj|j }|j|dkdS)N)_backend_ffi from_buffer_libEVP_PKEY_new_raw_private_key NID_poly1305NULLlenopenssl_assertgc EVP_PKEY_free _evp_pkeyEVP_MD_CTX_newEVP_MD_CTX_free_ctxEVP_DigestSignInit)selfr r key_ptrevp_pkeyctxress O/usr/lib/python3/dist-packages/cryptography/hazmat/backends/openssl/poly1305.py__init__z_Poly1305Context.__init__sz -$0055=%BB M  + M  #  HH    $$X1C1H%HIII+.. dm(6  m //11 $$SDM,>,C%CDDDM&)) #3   m 33 I M  # M  # M  # N    $$SAX.....datac|jj|}|jj|j|t |}|j|dkdS)Nr)rrrrEVP_DigestSignUpdaterrr)rr'data_ptrr#s r$updatez_Poly1305Context.update2se=%11$77m 55 IxT   $$SAX.....r&c|jjdt}|jjdt}|jj|j||}|j|dk|j|dtk|jj|d|dS)Nzunsigned char[]zsize_t *r) rrnew_POLY1305_TAG_SIZErEVP_DigestSignFinalrrbuffer)rbufoutlenr#s r$finalizez_Poly1305Context.finalize9sm $$%68JKK#'' 4FGGm 44TYVLL $$SAX... $$VAY2D%DEEE}!((--kq k::r&tagcv|}tj||stddS)Nz!Value did not match computed tag.)r3rbytes_eqr)rr4macs r$verifyz_Poly1305Context.verifyAs@mmoo%c3// H"#FGG G H Hr&)__name__ __module__ __qualname__bytesr%r+r3r8r&r$r r s/ //$////</5/T////;%;;;;H%HDHHHHHHr&r ) typingcryptography.exceptionsrcryptography.hazmat.primitivesrr._POLY1305_KEY_SIZE TYPE_CHECKING,cryptography.hazmat.backends.openssl.backendrr r=r&r$rDs  444444888888 EDDDDDD1H1H1H1H1H1H1H1H1H1Hr&