3TftddlmZddlZddlmZddlmZddlmZejrddl m Z GddZ y) ) annotationsN)utils)AlreadyFinalized)ciphers) _CMACContextc^eZdZUded<ded< d d dZd dZddZdd Zdd Zy)CMACtyping.Optional[_CMACContext]_ctxciphers.BlockCipherAlgorithm _algorithmNct|tjs td||_|'ddlm}|j|j|_y||_y)Nz*Expected instance of BlockCipherAlgorithm.r)backend) isinstancerBlockCipherAlgorithm TypeErrorr ,cryptography.hazmat.backends.openssl.backendrcreate_cmac_ctxr )self algorithmrctxossls E/usr/lib/python3/dist-packages/cryptography/hazmat/primitives/cmac.py__init__z CMAC.__init__sP )W%A%ABHI I# ; ,,T__=DIDIc|j tdtjd||jj |y)NContext was already finalized.data)r rr _check_bytesupdate)rrs rr z CMAC.update(s: 99 "#CD D 64( rcv|j td|jj}d|_|S)Nr)r rfinalize)rdigests rr"z CMAC.finalize/s6 99 "#CD D##%  rctjd||j td|jdc}|_|j |y)N signaturer)rrr rverify)rr%rs rr&z CMAC.verify6sE ; 2 99 "#CD DDTY 9rc|j tdt|j|jj S)Nr)r)r rr r copy)rs rr(z CMAC.copy>s4 99 "#CD DDOO)9::r)NN)rr rz typing.Anyrr returnNone)rbytesr)r*)r)r+)r%r+r)r*)r)r ) __name__ __module__ __qualname____annotations__rr r"r&r(rrr r sU '',, #-1 /+   &;rr ) __future__rtyping cryptographyrcryptography.exceptionsrcryptography.hazmat.primitivesr TYPE_CHECKING)cryptography.hazmat.backends.openssl.cmacrr r0rrr8s, # 42 F0;0;r