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

�a��@sBddlZddlmZddlmZddlmZGdd�dej�ZdS)�N)�utils)�AlreadyFinalized)�hashesc@steZdZdeejejd�dd�Ze	ejd�dd��Z
edd�d	d
�Zdd�dd�Zed�d
d�Z
edd�dd�ZdS)�HMACN)�key�	algorithm�backendcCsPt|tj�std��||_||_|durFddlm}|�||j	�|_
n||_
dS)Nz*Expected instance of hashes.HashAlgorithm.r)r)�
isinstancer�
HashAlgorithm�	TypeError�
_algorithm�_keyZ,cryptography.hazmat.backends.openssl.backendrZcreate_hmac_ctxr�_ctx)�selfrrr�ctxZossl�r�I/usr/lib64/python3.9/site-packages/cryptography/hazmat/primitives/hmac.py�__init__sz
HMAC.__init__)�returncCs|jS)N)r�rrrrr%szHMAC.algorithm)�datarcCs.|jdurtd��t�d|�|j�|�dS)N�Context was already finalized.r)rrrZ_check_byteslike�update)rrrrrr)s
zHMAC.updatecCs*|jdurtd��t|j|j|j��d�S)Nr)r)rrrr
r�copyrrrrr/s
�z	HMAC.copycCs&|jdurtd��|j��}d|_|S)Nr)rr�finalize)r�digestrrrr8s


z
HMAC.finalize)�	signaturercCs:t�d|�|jdurtd��|jd}|_|�|�dS)Nrr)r�_check_bytesrr�verify)rrrrrrr?s

zHMAC.verify)NN)�__name__�
__module__�__qualname__�bytesrr
�typing�Anyr�propertyrrrrrrrrrrs��	r)	r#ZcryptographyrZcryptography.exceptionsrZcryptography.hazmat.primitivesrZHashContextrrrrr�<module>s