pg zddlZddlmZmZmZddlmZddlmZej r ddlm Z ddl m Z GddZ dS) N)InvalidSignatureUnsupportedAlgorithm_Reasons) constant_time)CBC)ciphers)BackendcXeZdZ d ddZdeddfd Zdefd Zdd Zd eddfd ZdS) _CMACContextNbackendr algorithmciphers.BlockCipherAlgorithmreturncH||stdtj||_|j|_||_|jdz|_ |?|jj }|t|tf}||j|t}|jj }|j||jjjk|jj||jj j}|jj|j}|jj ||t-|j||jjj}|j|dk||_dS)Nz#This backend does not support CMAC.)cmac_algorithm_supportedrrUNSUPPORTED_CIPHER_backendkey_key _algorithm block_size_output_length_cipher_registrytyper_lib CMAC_CTX_newopenssl_assert_ffiNULLgc CMAC_CTX_free from_buffer CMAC_Initlen_ctx) selfr r ctxregistryadapter evp_cipherkey_ptrress K/usr/lib/python3/dist-packages/cryptography/hazmat/backends/openssl/cmac.py__init__z_CMACContext.__init__sl // :: &5+    M #'2a7 ;}5HtI34G  3??J-$1133C M ( ( 0B0G)G H H H-$''T]-?-MNNCm(44TY??G-$..DI "' C M ( ( 2 2 2 datac|jj|j|t |}|j|dkdS)Nr)rr CMAC_Updater'r&r)r(r2r.s r/updatez_CMACContext.update=sFm ,,TYc$iiHH $$SAX.....r1cz|jjd|j}|jjd|j}|jj|j||}|j|dkd|_|jj|ddS)Nzunsigned char[]zsize_t *r) rr newrr CMAC_Finalr'rbuffer)r(buflengthr.s r/finalizez_CMACContext.finalizeAsm $$%68KLL#'' D4GHHm ++DIsFCC $$SAX... }!((--aaa00r1cZ|jj}|jj||jjj}|jj||j}|j|dkt|j|j |S)Nr)r)) rrrr r"r# CMAC_CTX_copyr'rr r)r( copied_ctxr.s r/copyz_CMACContext.copyKs]'4466 ]'**  *8  m ..z49EE $$SAX...DM4? KKKKr1 signaturecv|}tj||stddS)NzSignature did not match digest.)r<rbytes_eqr)r(rAdigests r/verifyz_CMACContext.verifyTs@%fi88 F"#DEE E F Fr1)N)r r r rrN)rr ) __name__ __module__ __qualname__r0bytesr5r<r@rEr1r/r r s  &&2&  &&&&P/5/T////1%1111LLLLFF$FFFFFFr1r )typingcryptography.exceptionsrrrcryptography.hazmat.primitivesr,cryptography.hazmat.primitives.ciphers.modesr TYPE_CHECKINGr,cryptography.hazmat.backends.openssl.backendr r rJr1r/rQs   988888<<<<<< E666666DDDDDDCFCFCFCFCFCFCFCFCFCFr1