
    kKj                     ~    d dl mZ ddlmZ ddlmZ g dZ G d de      Z edd	d
      Z eddd      Z	ee	gZ
ddZy)    )ChaCha20_Poly1305   )JWERegistry)JWEEncModel)ChaCha20EncModelJWE_ENC_MODELSregister_chacha20_poly1305c                   n    e Zd ZdZdZdededefdZdeded	ed
ede	eef   f
dZ
dededed	ed
edefdZy)r      Fnamedescriptioniv_sizec                 .    || _         || _        || _        y N)r   r   r   )selfr   r   r   s       l/Users/ahmed/devFolder/Ultron/claude-voice/.venv/lib/python3.12/site-packages/joserfc/drafts/jwe_chacha20.py__init__zChaCha20EncModel.__init__   s    	&    	plaintextcekivaadreturnc                     t        j                  ||      }|j                  |       |j                  |      \  }}||fS )z*Key Encryption with AEAD_CHACHA20_POLY1305keynonce)r   newupdateencrypt_and_digest)r   r   r   r   r   chacha
ciphertexttags           r   encryptzChaCha20EncModel.encrypt   s>    "&&3b9c 33I>
C3r   r"   r#   c                 v    t        j                  ||      }|j                  |       |j                  ||      S )z+Key Decryption with AEAD_CHACHA20_POLY1305.r   )r   r   r   decrypt_and_verify)r   r"   r#   r   r   r   r!   s          r   decryptzChaCha20EncModel.decrypt   s3    "&&3b9c((S99r   N)__name__
__module____qualname__cek_sizerecommendedstrintr   bytestupler$   r'    r   r   r   r      s    HKS s S 
 U  E eTY[`T`Na :% :e :% :U :QV :[` :r   r   C20PzChaCha20-Poly1305`   XC20PzXChaCha20-Poly1305   Nc                  D    t         D ]  } t        j                  |         y r   )r   r   register)models    r   r	   r	   &   s    U#  r   )r   N)Crypto.Cipherr   _rfc7516.registryr   _rfc7516.modelsr   __all__r   r2   r4   r   r	   r1   r   r   <module>r=      sM    + + )
N:{ :0  3R8"6<$r   