<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha1/dist/css/bootstrap.min.css" rel="stylesheet"
        integrity="sha384-GLhlTQ8iRABdZLl6O3oVMWSktQOp6b7In1Zl3/Jr59b6EGGoI1aFkw7cmDA6j6gD" crossorigin="anonymous">
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.3.0/css/all.min.css"
        integrity="sha512-SzlrxWUlpfuzQ+pcUCosxcglQRNAq/DZjVsC0lE40xsADsfeQoEypE+enwcOiGjk/bSuGGKHEyjSoQ1zVisanQ=="
        crossorigin="anonymous" referrerpolicy="no-referrer" />
</head>
</html>
3
l_                 @   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} |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)selfkeyr
    r    /usr/lib64/python3.6/poly1305.py__init__   s    zPoly1305.__init__c             C   s.   | j d krtdtjd| | j j| d S )Nz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 krtd| j j }d | _ |S )NzContext was already finalized.)r   r   finalize)r   Zmacr   r   r   r   !   s
    

zPoly1305.finalizec             C   s:   t jd| | jd krtd| jd  }| _|j| d S )NtagzContext was already finalized.)r   _check_bytesr   r   verify)r   r   Zctxr   r   r   r   (   s
    
zPoly1305.verifyc             C   s   t |}|j| |j S )N)r	   r   r   )clsr   r   pr   r   r   generate_tag0   s    
zPoly1305.generate_tagc             C   s    t |}|j| |j| d S )N)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)Z
__future__r   r   r   Zcryptographyr   Zcryptography.exceptionsr   r   r   objectr	   r   r   r   r   <module>   s   