pg rddlZddlmZmZmZddlmZmZejrddl m Z Gddej Z dS)N)InvalidSignatureUnsupportedAlgorithm_Reasons) constant_timehashes)BackendceZdZ ddddedejfdZedejfdZdd Z d eddfd Z defd Z d eddfdZ dS) _HMACContextNbackendrkey algorithmc||_||_|W|jj}|j||jjjk|jj||jjj}|j |}||jjjkr2td |j tj|jj|}|jj||t#|||jjj}|j|dk||_||_dS)Nz*{} is not a supported hash on this backendr) _algorithm_backend_lib HMAC_CTX_newopenssl_assert_ffiNULLgc HMAC_CTX_free_evp_md_from_algorithmrformatnamerUNSUPPORTED_HASH from_buffer HMAC_Init_exlen_ctx_key)selfr r r ctxevp_mdkey_ptrress K/usr/lib/python3/dist-packages/cryptography/hazmat/backends/openssl/hmac.py__init__z_HMACContext.__init__sG$ ;-$1133C M ( ( 0B0G)G H H H-$''T]-?-MNNC]99)DDF+000*@GG!-  m(44S99G-$11Wc#hh 0B0GC M ( ( 2 2 2  returnc|jSN)r)r!s r&r z_HMACContext.algorithm3s r(c|jj}|j||jjjk|jj||jjj}|jj||j }|j|dkt|j|j |j |S)Nr)r") rrrrrrrr HMAC_CTX_copyrr r r )r! copied_ctxr%s r&copyz_HMACContext.copy7s]'4466  $$Z4=3E3J%JKKK]'**  *8  m ..z49EE $$SAX... M49dn*    r(datac|jj|}|jj|j|t |}|j|dkdS)Nr)rrrr HMAC_Updaterrr)r!r0data_ptrr%s r&updatez_HMACContext.updateCs^=%11$77m ,,TY#d))LL $$SAX.....r(c|jjd|jjj}|jjd}|jj|j||}|j|dk|j|d|jj k|jj |d|dS)Nzunsigned char[]zunsigned int *r) rrnewrEVP_MAX_MD_SIZE HMAC_Finalrrr digest_sizebuffer)r!bufoutlenr%s r&finalizez_HMACContext.finalizeHsm $$ t}1A  #''(899m ++DIsFCC $$SAX... $$VAY$.2L%LMMM}!((--kq k::r( signaturecv|}tj||stddS)NzSignature did not match digest.)r=rbytes_eqr)r!r>digests r&verifyz_HMACContext.verifyRs@%fi88 F"#DEE E F Fr(r+)r)r ) __name__ __module__ __qualname__bytesr HashAlgorithmr'propertyr r/r4r=rBr(r&r r s  ' >6/X     /5/T//// ;%;;;;FF$FFFFFFr(r ) typingcryptography.exceptionsrrrcryptography.hazmat.primitivesrr TYPE_CHECKING,cryptography.hazmat.backends.openssl.backendr HashContextr rIr(r&rPs   A@@@@@@@ EDDDDDDBFBFBFBFBF6%BFBFBFBFBFr(