§
    hÝ[f¤  ã                  óê   — d dl mZ d dlZd dlmZmZ d dlmZ d dlm	Z	 d dl
mZ g d¢Zej        j        Zej        j        Zej        j        Zej        j        Z G d„ d	¦  «        Z G d
„ d¦  «        ZdS )é    )ÚannotationsN)Ú
exceptionsÚutils)Úaead)Úbackend)Úopenssl)ÚChaCha20Poly1305ÚAESCCMÚAESGCMÚ	AESGCMSIVÚAESOCB3ÚAESSIVc                  óT   — e Zd ZdZddd„Zedd
„¦   «         Zdd„Zdd„Zdd„Z	dd„Z
dS )r
   éÿÿÿé   ÚkeyÚbytesÚ
tag_lengthÚintc                ój  — t          j        d|¦  «         t          |¦  «        dvrt          d¦  «        ‚|| _        t          |t          ¦  «        st          d¦  «        ‚|dvrt          d¦  «        ‚|| _        t          j
        | ¦  «        s$t          j        dt          j        j        ¦  «        ‚d S )Nr   ©r   é   é    z)AESCCM key must be 128, 192, or 256 bits.ztag_length must be an integer)é   é   é   é
   é   é   r   zInvalid tag_lengthz2AESCCM is not supported by this version of OpenSSL)r   Ú_check_byteslikeÚlenÚ
ValueErrorÚ_keyÚ
isinstancer   Ú	TypeErrorÚ_tag_lengthr   Úaead_cipher_supportedr   ÚUnsupportedAlgorithmÚ_ReasonsÚUNSUPPORTED_CIPHER)Úselfr   r   s      ú_/var/www/piapp/venv/lib/python3.11/site-packages/cryptography/hazmat/primitives/ciphers/aead.pyÚ__init__zAESCCM.__init__    s¾   € ÝÔ˜u cÑ*Ô*Ð*Ýˆs‰8Œ8˜<Ð'Ð'ÝÐHÑIÔIÐIàˆŒ	Ý˜*¥cÑ*Ô*ð 	=ÝÐ;Ñ<Ô<Ð<àÐ6Ð6Ð6ÝÐ1Ñ2Ô2Ð2à%ˆÔåÔ,¨TÑ2Ô2ð 	ÝÔ1ØDÝÔ#Ô6ñô ð ð	ð 	ó    Ú
bit_lengthÚreturnc                óž   — t          |t          ¦  «        st          d¦  «        ‚|dvrt          d¦  «        ‚t	          j        |dz  ¦  «        S ©Nzbit_length must be an integer)é€   éÀ   é   z#bit_length must be 128, 192, or 256r   ©r$   r   r%   r"   ÚosÚurandom©Úclsr/   s     r,   Úgenerate_keyzAESCCM.generate_key4   óQ   € å˜*¥cÑ*Ô*ð 	=ÝÐ;Ñ<Ô<Ð<à˜_Ð,Ð,ÝÐBÑCÔCÐCåŒz˜*¨™/Ñ*Ô*Ð*r.   ÚnonceÚdataÚassociated_dataúbytes | Nonec                óD  — |€d}t          |¦  «        | j        k    st          |¦  «        | j        k    rt          d¦  «        ‚|                      |||¦  «         |                      |t          |¦  «        ¦  «         t          j        t          | |||g| j        ¦  «        S )Nr.   ú5Data or associated data too long. Max 2**31 - 1 bytes)	r!   Ú	_MAX_SIZEÚOverflowErrorÚ_check_paramsÚ_validate_lengthsr   Ú_encryptr   r&   ©r+   r=   r>   r?   s       r,   ÚencryptzAESCCM.encrypt>   s¨   € ð Ð"Ø!ˆOåˆt‰9Œ9�t”~Ò%Ð%­¨_Ñ)=Ô)=ÀÄÒ)NÐ)NåØGñô ð ð 	×Ò˜5 $¨Ñ8Ô8Ð8Ø×Ò˜u¥c¨$¡i¤iÑ0Ô0Ð0ÝŒ}Ý�T˜5 $¨Ð(9¸4Ô;Kñ
ô 
ð 	
r.   c                ó€   — |€d}|                       |||¦  «         t          j        t          | |||g| j        ¦  «        S )Nr.   )rE   r   Ú_decryptr   r&   rH   s       r,   ÚdecryptzAESCCM.decryptS   sN   € ð Ð"Ø!ˆOà×Ò˜5 $¨Ñ8Ô8Ð8ÝŒ}Ý�T˜5 $¨Ð(9¸4Ô;Kñ
ô 
ð 	
r.   Údata_lenÚNonec                ó`   — dt          |¦  «        z
  }dd|z  z  |k     rt          d¦  «        ‚d S )Né   é   r   zData too long for nonce)r!   r"   )r+   r=   rM   Úl_vals       r,   rF   zAESCCM._validate_lengthsa   s>   € ð •S˜‘Z”Z‘ˆØ��U‘Ñ˜hÒ&Ð&ÝÐ6Ñ7Ô7Ð7ð 'Ð&r.   c                óÚ   — t          j        d|¦  «         t          j        d|¦  «         t          j        d|¦  «         dt          |¦  «        cxk    rdk    sn t          d¦  «        ‚d S )Nr=   r>   r?   é   é   z$Nonce must be between 7 and 13 bytes©r   r    r!   r"   rH   s       r,   rE   zAESCCM._check_paramsh   sz   € õ 	Ô˜w¨Ñ.Ô.Ð.ÝÔ˜v tÑ,Ô,Ð,ÝÔÐ0°/ÑBÔBÐBØ•C˜‘J”JÐ$Ð$Ò$Ð$ "Ò$Ð$Ð$Ð$ÝÐCÑDÔDÐDð %Ð$r.   N)r   )r   r   r   r   ©r/   r   r0   r   ©r=   r   r>   r   r?   r@   r0   r   )r=   r   rM   r   r0   rN   ©r=   r   r>   r   r?   r   r0   rN   )Ú__name__Ú
__module__Ú__qualname__rC   r-   Úclassmethodr;   rI   rL   rF   rE   © r.   r,   r
   r
      s¨   € € € € € Ø€Iðð ð ð ð ð( ð+ð +ð +ñ „[ð+ð
ð 
ð 
ð 
ð*
ð 
ð 
ð 
ð8ð 8ð 8ð 8ðEð Eð Eð Eð Eð Er.   r
   c                  óJ   — e Zd ZdZdd„Zedd„¦   «         Zdd„Zdd„Zdd„Z	dS )r   r   r   r   c                ó~   — t          j        d|¦  «         t          |¦  «        dvrt          d¦  «        ‚|| _        d S )Nr   r   z)AESGCM key must be 128, 192, or 256 bits.)r   r    r!   r"   r#   )r+   r   s     r,   r-   zAESGCM.__init__u   s@   € ÝÔ˜u cÑ*Ô*Ð*Ýˆs‰8Œ8˜<Ð'Ð'ÝÐHÑIÔIÐIàˆŒ	ˆ	ˆ	r.   r/   r   r0   c                óž   — t          |t          ¦  «        st          d¦  «        ‚|dvrt          d¦  «        ‚t	          j        |dz  ¦  «        S r2   r6   r9   s     r,   r;   zAESGCM.generate_key|   r<   r.   r=   r>   r?   r@   c                óô   — |€d}t          |¦  «        | j        k    st          |¦  «        | j        k    rt          d¦  «        ‚|                      |||¦  «         t	          j        t          | |||gd¦  «        S )Nr.   rB   r   )r!   rC   rD   rE   r   rG   r   rH   s       r,   rI   zAESGCM.encrypt†   s‚   € ð Ð"Ø!ˆOåˆt‰9Œ9�t”~Ò%Ð%­¨_Ñ)=Ô)=ÀÄÒ)NÐ)NåØGñô ð ð 	×Ò˜5 $¨Ñ8Ô8Ð8ÝŒ}�W d¨E°4¸/Ð9JÈBÑOÔOÐOr.   c                óv   — |€d}|                       |||¦  «         t          j        t          | |||gd¦  «        S )Nr.   r   )rE   r   rK   r   rH   s       r,   rL   zAESGCM.decrypt˜   sD   € ð Ð"Ø!ˆOà×Ò˜5 $¨Ñ8Ô8Ð8ÝŒ}�W d¨E°4¸/Ð9JÈBÑOÔOÐOr.   rN   c                óî   — t          j        d|¦  «         t          j        d|¦  «         t          j        d|¦  «         t          |¦  «        dk     st          |¦  «        dk    rt          d¦  «        ‚d S )Nr=   r>   r?   r   r3   z%Nonce must be between 8 and 128 bytesrV   rH   s       r,   rE   zAESGCM._check_params¤   st   € õ 	Ô˜w¨Ñ.Ô.Ð.ÝÔ˜v tÑ,Ô,Ð,ÝÔÐ0°/ÑBÔBÐBÝˆu‰:Œ:˜Š>ˆ>�S ™ZœZ¨#Ò-Ð-ÝÐDÑEÔEÐEð .Ð-r.   N)r   r   rW   rX   rY   )
rZ   r[   r\   rC   r-   r]   r;   rI   rL   rE   r^   r.   r,   r   r   r   s—   € € € € € Ø€Iðð ð ð ð ð+ð +ð +ñ „[ð+ðPð Pð Pð Pð$
Pð 
Pð 
Pð 
Pð
Fð 
Fð 
Fð 
Fð 
Fð 
Fr.   r   )Ú
__future__r   r7   Úcryptographyr   r   Ú$cryptography.hazmat.backends.opensslr   Ú,cryptography.hazmat.backends.openssl.backendr   Ú"cryptography.hazmat.bindings._rustr   Úrust_opensslÚ__all__r	   r   r   r   r
   r   r^   r.   r,   ú<module>rl      s%  ðð
 #Ð "Ð "Ð "Ð "Ð "à 	€	€	€	à *Ð *Ð *Ð *Ð *Ð *Ð *Ð *Ø 5Ð 5Ð 5Ð 5Ð 5Ð 5Ø @Ð @Ð @Ð @Ð @Ð @Ø FÐ FÐ FÐ FÐ FÐ Fðð ð €ð  Ô$Ô5Ð Ø	Ô	Ô	!€Ø
Ô
Ô
#€ØÔÔ'€	ðREð REð REð REð REñ REô REð REðj<Fð <Fð <Fð <Fð <Fñ <Fô <Fð <Fð <Fð <Fr.   