pg jddlZddlmZmZddlmZejrddlmZGddej Z dS)N)UnsupportedAlgorithm_Reasons)hashes)BackendceZdZ d dddejddfdZedejfdZddZd e ddfd Z de fd Z de fd Z dS) _HashContextNbackendr algorithmreturnc,||_||_||jj}|jj||jjj}|j|}||jjjkr2td |j tj |jj|||jjj}|j|dk||_dS)Nz+{} is not a supported hash on this backend.r) _algorithm_backend_libEVP_MD_CTX_new_ffigcEVP_MD_CTX_free_evp_md_from_algorithmNULLrformatnamerUNSUPPORTED_HASHEVP_DigestInit_exopenssl_assert_ctx)selfr r ctxevp_mdress M/usr/lib/python3/dist-packages/cryptography/hazmat/backends/openssl/hashes.py__init__z_HashContext.__init__s$ ;-$3355C-$''T]'7C]99)DDF+000*AHH!-  -$66VT]/4C M ( ( 2 2 2 c|jSN)r )rs r r z_HashContext.algorithm+s r"cZ|jj}|jj||jjj}|jj||j}|j|dkt|j|j |S)Nr)r) rrrrrrEVP_MD_CTX_copy_exrrrr )r copied_ctxrs r copyz_HashContext.copy/s]'6688 ]'**  *:  m 33J JJ $$SAX...DM4>zJJJJr"datac|jj|}|jj|j|t |}|j|dkdS)Nr)rr from_bufferrEVP_DigestUpdaterlenr)rr)data_ptrrs r updatez_HashContext.update8se=%11$77m 11 IxT   $$SAX.....r"cBt|jtjr|S|jjd|jjj }|jjd}|jj |j ||}|j |dk|j |d|jj k|jj|d|dS)Nunsigned char[]zunsigned int *r) isinstancer rExtendableOutputFunction _finalize_xofrrnewrEVP_MAX_MD_SIZEEVP_DigestFinal_exrr digest_sizebuffer)rbufoutlenrs r finalizez_HashContext.finalize?s dnf&E F F ?%%'' '-$((!4=#5#EC]'++,<==F-$77 3OOC M ( ( 2 2 2 M ( (q T^77   =%,,S11+F1I+> >r"cT|jjd|jj}|jj|j||jj}|j|dk|jj |d|jjS)Nr1r) rrr5r r8rEVP_DigestFinalXOFrrr9)rr:rs r r4z_HashContext._finalize_xofOsm $$ t~9  m 33 IsDN6   $$SAX...}!((--.J0J.JKKr"r$)r r) __name__ __module__ __qualname__r HashAlgorithmr!propertyr r(bytesr/r<r4r"r rrsGK -3-A 66/XKKKK/5/T////?%???? LuLLLLLLr"r) typingcryptography.exceptionsrrcryptography.hazmat.primitivesr TYPE_CHECKING,cryptography.hazmat.backends.openssl.backendr HashContextrrEr"r rLs  BBBBBBBB111111 EDDDDDDHLHLHLHLHL6%HLHLHLHLHLr"