3
ãde-  ã               @   sF   d dl Z d dlmZ d dlmZmZmZ d dlmZ G dd„ dƒZ	dS )é    N)Úutils)ÚAlreadyFinalizedÚUnsupportedAlgorithmÚ_Reasons)Ú_Poly1305Contextc               @   s‚   e Zd ZU eje edœdd„Zeddœdd„Z	edœd	d
„Z
eddœdd„Zeeeedœdd„ƒZeeeeddœdd„ƒZdS )ÚPoly1305)Úkeyc             C   s0   ddl m} |jƒ s tdtjƒ‚|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)Úselfr   r	   © r   ú^/var/www/agendate/envp3/lib/python3.6/site-packages/cryptography/hazmat/primitives/poly1305.pyÚ__init__   s    zPoly1305.__init__N)ÚdataÚreturnc             C   s.   | j d krtdƒ‚tjd|ƒ | j j|ƒ d S )NzContext was already finalized.r   )r
   r   r   Z_check_byteslikeÚupdate)r   r   r   r   r   r      s    
zPoly1305.update)r   c             C   s&   | j d krtdƒ‚| j jƒ }d | _ |S )NzContext was already finalized.)r
   r   Úfinalize)r   Úmacr   r   r   r   #   s
    

zPoly1305.finalize)Útagr   c             C   s:   t jd|ƒ | jd krtdƒ‚| jd  }| _|j|ƒ d S )Nr   zContext was already finalized.)r   Ú_check_bytesr
   r   Úverify)r   r   Úctxr   r   r   r   *   s
    
zPoly1305.verify)r   r   r   c             C   s   t |ƒ}|j|ƒ |jƒ S )N)r   r   r   )Úclsr   r   Úpr   r   r   Úgenerate_tag2   s    
zPoly1305.generate_tag)r   r   r   r   c             C   s    t |ƒ}|j|ƒ |j|ƒ d S )N)r   r   r   )r   r   r   r   r   r   r   r   Ú
verify_tag8   s    
zPoly1305.verify_tag)Ú__name__Ú
__module__Ú__qualname__ÚtypingÚOptionalr   r
   Úbytesr   r   r   r   Úclassmethodr   r   r   r   r   r   r      s   


r   )
r   Zcryptographyr   Zcryptography.exceptionsr   r   r   Z-cryptography.hazmat.backends.openssl.poly1305r   r   r   r   r   r   Ú<module>   s   