Current File : //lib/python3/dist-packages/cryptography/hazmat/primitives/ciphers/__pycache__/aead.cpython-312.pyc |
�
�3Tf#/ � � � d dl mZ d dlZd dlZd dlmZmZ d dlmZ d dl m
Z
d dlmZ G d� d� Z
G d � d
� Z G d� d� Z G d
� d� Z G d� d� Zy)� )�annotationsN)�
exceptions�utils)�aead)�backend)� FixedPoolc �x � e Zd ZdZd d�Zed
d�� Zd� Z dd�Z dd�Z dd�Z
y)
�ChaCha20Poly1305��c �* � t j | � s.t j dt j j
� �t
j d|� t |� dk7 rt d� �|| _
t | j � | _
y )Nz<ChaCha20Poly1305 is not supported by this version of OpenSSL�key� z&ChaCha20Poly1305 key must be 32 bytes.)r �aead_cipher_supportedr �UnsupportedAlgorithm�_Reasons�UNSUPPORTED_CIPHERr �_check_byteslike�len�
ValueError�_keyr �
_create_fn�_pool��selfr
s �M/usr/lib/python3/dist-packages/cryptography/hazmat/primitives/ciphers/aead.py�__init__zChaCha20Poly1305.__init__ su � ��,�,�T�2��1�1�N��#�#�6�6��
� ���u�c�*��s�8�r�>��E�F�F��� ��t���/��
� c �, � t j d� S )Nr )�os�urandom)�clss r �generate_keyzChaCha20Poly1305.generate_key! s � ��z�z�"�~�r c �L � t j t | | j � S �N)r �_aead_create_ctxr r )r s r r zChaCha20Poly1305._create_fn% s � ��$�$�W�d�D�I�I�>�>r c
�F � |�d}t |� | j kD st |� | j kD rt d� �| j |||� | j j � 5 }t
j t | |||gd|� cd d d � S # 1 sw Y y xY w�Nr �5Data or associated data too long. Max 2**31 - 1 bytes� ) r � _MAX_SIZE�
OverflowError�
_check_paramsr �acquirer �_encryptr �r �nonce�data�associated_data�ctxs r �encryptzChaCha20Poly1305.encrypt( s� � � �"�!�O��t�9�t�~�~�%��_�)=����)N��G��
�
���5�$��8�
�Z�Z�
�
�
!� �S��=�=���u�d�_�,=�r�3�� � � �s �- B�B c
�� � |�d}| j |||� | j j � 5 }t j t
| |||gd|� cd d d � S # 1 sw Y y xY w�Nr r) )r, r r- r �_decryptr r/ s r �decryptzChaCha20Poly1305.decrypt= sf � � �"�!�O����5�$��8�
�Z�Z�
�
�
!� �S��=�=���u�d�_�,=�r�3�� � � �s � A�A%c � � t j d|� t j d|� t j d|� t |� dk7 rt d� �y )Nr0 r1 r2 � zNonce must be 12 bytes�r r r r �r r0 r1 r2 s r r, zChaCha20Poly1305._check_paramsL sR � � ���w��.�
���v�t�,�
���0�/�B��u�:����5�6�6� r N�r
�bytes)�returnr>