Current File : //usr/lib64/python3.9/site-packages/cryptography/hazmat/primitives/__pycache__/cmac.cpython-39.pyc
a

�a!�@s@ddlZddlmZddlmZddlmZGdd�de�ZdS)�N)�utils)�AlreadyFinalized)�ciphersc@s^eZdZdejejd�dd�Zedd�dd�Z	ed�d	d
�Z
edd�dd
�Zdd�dd�ZdS)�CMACN)�	algorithm�backendcCsHt|tj�std��||_|dur>ddlm}|�|j�|_n||_dS)Nz*Expected instance of BlockCipherAlgorithm.r)r)	�
isinstancer�BlockCipherAlgorithm�	TypeError�
_algorithmZ,cryptography.hazmat.backends.openssl.backendrZcreate_cmac_ctx�_ctx)�selfrr�ctxZossl�r�I/usr/lib64/python3.9/site-packages/cryptography/hazmat/primitives/cmac.py�__init__sz
CMAC.__init__)�data�returncCs.|jdurtd��t�d|�|j�|�dS)N�Context was already finalized.r)rrr�_check_bytes�update)r
rrrrr#s
zCMAC.update)rcCs&|jdurtd��|j��}d|_|S)Nr)rr�finalize)r
�digestrrrr*s


z
CMAC.finalize)�	signaturercCs:t�d|�|jdurtd��|jd}|_|�|�dS)Nrr)rrrr�verify)r
rrrrrr1s

zCMAC.verifycCs&|jdurtd��t|j|j��d�S)Nr)r)rrrr�copy)r
rrrr9s
z	CMAC.copy)NN)
�__name__�
__module__�__qualname__rr	�typing�Anyr�bytesrrrrrrrrrs��r)	rZcryptographyrZcryptography.exceptionsrZcryptography.hazmat.primitivesr�objectrrrrr�<module>s