3Tf ddlmZddlZddlmZmZmZddlmZddl m Z ejr ddl m Z ddlmZGdd Zy) ) annotationsN)InvalidSignatureUnsupportedAlgorithm_Reasons) constant_time)CBC)Backend)cipherscBeZdZ d ddZd dZd dZd dZd dZy) _CMACContextNc|j|stdtj||_|j |_||_|jdz|_ ||jj}|t|tf}||j|t}|jjj}|jj||jj j"k7|jj j%||jjj&}|jj j)|j }|jjj+||t-|j ||jj j"}|jj|dk(||_y)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) selfbackend algorithmctxregistryadapter evp_cipherkey_ptrress K/usr/lib/python3/dist-packages/cryptography/hazmat/backends/openssl/cmac.py__init__z_CMACContext.__init__s{ // :&5++    MM #'22a7 ;}}55HtI34G  3?J--$$113C MM ( ( 0B0B0G0G)G H--$$''T]]-?-?-M-MNCmm((44TYY?G--$$..DII ""'' C MM ( ( 2 c|jjj|j|t |}|jj |dk(y)Nr)rr CMAC_Updater$r#r)r%datar-s r.updatez_CMACContext.update?s>mm  ,,TYYc$iH $$SAX.r0c|jjjd|j}|jjjd|j}|jjj |j ||}|jj|dk(d|_|jjj|ddS)Nzunsigned char[]zsize_t *r) rrnewrr CMAC_Finalr$rbuffer)r%buflengthr-s r.finalizez_CMACContext.finalizeCsmm  $$%68K8KL##'' D4G4GHmm  ++DIIsFC $$SAX. }}!!((-a00r0c|jjj}|jjj ||jjj }|jjj ||j}|jj|dk(t|j|j|S)Nr)r() rrrrrr CMAC_CTX_copyr$rr r)r% copied_ctxr-s r.copyz_CMACContext.copyMs]]''446 ]]''**  **88 mm  ..z499E $$SAX.DMM4?? KKr0cf|j}tj||s tdy)NzSignature did not match digest.)r;rbytes_eqr)r% signaturedigests r.verifyz_CMACContext.verifyVs.%%fi8"#DE E9r0)N)r&r r'zciphers.BlockCipherAlgorithmreturnNone)r3bytesrErF)rErG)rEr )rBrGrErF)__name__ __module__ __qualname__r/r4r;r?rDr0r.r r s?  &&0&  &P/1LFr0r ) __future__rtypingcryptography.exceptionsrrrcryptography.hazmat.primitivesr,cryptography.hazmat.primitives.ciphers.modesr TYPE_CHECKING,cryptography.hazmat.backends.openssl.backendr r r rKr0r.rSs< #  9< D6CFCFr0