
     hJ                     d    d dl Z d dlmZ d dlmZ d dlmZ d dlmZ  G d dej	                  Z
dS )    N)utils)AlreadyFinalized)_HMACContext)hashesc                       e Zd ZU ej        e         ed<   	 	 ddedej	        dej
        fdZedej	        fd            Zd	eddfd
ZddZdefdZdeddfdZdS )HMAC_ctxNkey	algorithmbackendc                     t          |t          j                  st          d          || _        || _        |(ddlm} |                    || j	                  | _
        d S || _
        d S )Nz*Expected instance of hashes.HashAlgorithm.r   )r   )
isinstancer   HashAlgorithm	TypeError
_algorithm_key,cryptography.hazmat.backends.openssl.backendr   create_hmac_ctxr   r	   )selfr
   r   r   ctxossls         _/var/www/html/Sam_Eipo/venv/lib/python3.11/site-packages/cryptography/hazmat/primitives/hmac.py__init__zHMAC.__init__   s     )V%9:: 	JHIII#	;      ,,S$.AADIIIDIII    returnc                     | j         S )N)r   r   s    r   r   zHMAC.algorithm&   s
    r   datac                     | j         t          d          t          j        d|           | j                             |           d S )NContext was already finalized.r   )r	   r   r   _check_byteslikeupdate)r   r   s     r   r"   zHMAC.update*   sH    9"#CDDDvt,,,	r   c                     | j         t          d          t          | j        | j        | j                                                   S )Nr    )r   )r	   r   r   r   r   copyr   s    r   r$   z	HMAC.copy0   sI    9"#CDDDIN	  
 
 
 	
r   c                 r    | j         t          d          | j                                         }d | _         |S )Nr    )r	   r   finalize)r   digests     r   r&   zHMAC.finalize9   s8    9"#CDDD##%%	r   	signaturec                     t          j        d|           | j        t          d          | j        d c}| _        |                    |           d S )Nr(   r    )r   _check_bytesr	   r   verify)r   r(   r   s      r   r+   zHMAC.verify@   sS    ;	2229"#CDDDDTY

9r   )NN)r   r   )__name__
__module____qualname__typingOptionalr   __annotations__bytesr   r   Anyr   propertyr   r"   r$   r&   r+    r   r   r   r      s        
/,
'''' #  ' 	   * 6/    X5 T    
 
 
 
%     $      r   r   )r/   cryptographyr   cryptography.exceptionsr   )cryptography.hazmat.backends.openssl.hmacr   cryptography.hazmat.primitivesr   HashContextr   r5   r   r   <module>r;      s           4 4 4 4 4 4 B B B B B B 1 1 1 1 1 18 8 8 8 86 8 8 8 8 8r   