o
     `                     @   sH   d dl mZmZmZ d dlmZ d dlmZmZm	Z	 G dd de
ZdS )    )absolute_importdivisionprint_function)utils)AlreadyFinalizedUnsupportedAlgorithm_Reasonsc                   @   sD   e Zd Zdd Zdd Zdd Zdd Zed	d
 Zedd Z	dS )Poly1305c                 C   s0   ddl m} | stdtj||| _d S )Nr   )backendz5poly1305 is not supported by this version of OpenSSL.)Z,cryptography.hazmat.backends.openssl.backendr
   Zpoly1305_supportedr   r   ZUNSUPPORTED_MACZcreate_poly1305_ctx_ctx)selfkeyr
    r   }home/ych/rk3568/buildroot/output/rockchip_rk3568/host/lib/python3.10/site-packages/cryptography/hazmat/primitives/poly1305.py__init__   s   zPoly1305.__init__c                 C   s.   | j d u r	tdtd| | j | d S )NContext was already finalized.data)r   r   r   Z_check_byteslikeupdate)r   r   r   r   r   r      s   
zPoly1305.updatec                 C   s&   | j d u r	td| j  }d | _ |S )Nr   )r   r   finalize)r   Zmacr   r   r   r   !   s
   

zPoly1305.finalizec                 C   s:   t d| | jd u rtd| jd }| _|| d S )Ntagr   )r   _check_bytesr   r   verify)r   r   ctxr   r   r   r   (   s
   
zPoly1305.verifyc                 C   s   t |}|| | S N)r	   r   r   )clsr   r   pr   r   r   generate_tag0   s   
zPoly1305.generate_tagc                 C   s    t |}|| || d S r   )r	   r   r   )r   r   r   r   r   r   r   r   
verify_tag6   s   
zPoly1305.verify_tagN)
__name__
__module____qualname__r   r   r   r   classmethodr   r   r   r   r   r   r	      s    

r	   N)
__future__r   r   r   cryptographyr   Zcryptography.exceptionsr   r   r   objectr	   r   r   r   r   <module>   s   