File: //lib/python3/dist-packages/cryptography/hazmat/primitives/ciphers/__pycache__/aead.cpython-310.pyc
o
�)%a� � @ sl d dl Z d dlZd dlmZmZ d dlmZ d dlmZ G dd� de �Z
G dd� de �ZG d d
� d
e �ZdS )� N)�
exceptions�utils)�aead)�backendc @ s� e Zd ZdZdefdd�Zedefdd��Zded ed
ej e defdd�Z
ded ed
ej e defd
d�Zded ed
eddfdd�ZdS )�ChaCha20Poly1305� �keyc C sD t �| �s
t�dtjj��t�d|� t|�dkrt d��|| _
d S )Nz<ChaCha20Poly1305 is not supported by this version of OpenSSLr � z&ChaCha20Poly1305 key must be 32 bytes.)r �aead_cipher_supportedr �UnsupportedAlgorithm�_Reasons�UNSUPPORTED_CIPHERr �_check_byteslike�len�
ValueError�_key��selfr � r �M/usr/lib/python3/dist-packages/cryptography/hazmat/primitives/ciphers/aead.py�__init__ s
�
zChaCha20Poly1305.__init__�returnc C s
t �d�S )Nr )�os�urandom)�clsr r r �generate_key s
zChaCha20Poly1305.generate_key�nonce�data�associated_datac C �R |d u rd}t |�| jkst |�| jkrtd��| �|||� t�t| |||d�S �N� �1Data or associated data too long. Max 2**32 bytes� �r � _MAX_SIZE�
OverflowError�
_check_paramsr �_encryptr �r r r r r r r �encrypt"