o
    e                     @  s^  d dl mZ d dlmZ d dlmZmZ d)d	d
ZG dd deZG dd deZ	G dd deZ
G dd deZG dd deZG dd deZeZejeedejdd G dd deZeZejeedejdd G dd deZG dd deZeZejeed ejdd G d!d" d"eZeZejeed#ejd"d G d$d% d%eZG d&d' d'eZd(S )*    )annotations)utils)BlockCipherAlgorithmCipherAlgorithm	algorithmr   keybytesreturnc                 C  s<   t d| t|d | jvrtdt|d | j|S )Nr      zInvalid key size ({}) for {}.)r   _check_byteslikelen	key_sizes
ValueErrorformatname)r   r    r   d/var/www/html/venv/lib/python3.10/site-packages/cryptography/hazmat/primitives/ciphers/algorithms.py_verify_key_size   s   r   c                   @  s8   e Zd Zd ZdZeg dZdddZedd	d
Z	dS )AES   )r         i   r   r   c                 C     t | || _d S Nr   r   selfr   r   r   r   __init__"      zAES.__init__r	   intc                 C     t | jd S Nr
   r   r   r   r   r   r   key_size%      zAES.key_sizeNr   r   r	   r   
__name__
__module____qualname__r   
block_size	frozensetr   r   propertyr$   r   r   r   r   r      s    
r   c                   @  s,   e Zd ZdZdZedgZdZdddZdS )	AES128r   r   r   r   c                 C  r   r   r   r   r   r   r   r   0   r   zAES128.__init__Nr&   	r)   r*   r+   r   r,   r-   r   r$   r   r   r   r   r   r/   *       
r/   c                   @  s,   e Zd ZdZdZedgZdZd	ddZdS )
AES256r   r   r   r   r   c                 C  r   r   r   r   r   r   r   r   :   r   zAES256.__init__Nr&   r0   r   r   r   r   r2   4   r1   r2   c                   @  8   e Zd ZdZdZeg dZdddZedd
dZ	dS )Camelliacamelliar   )r   r   r   r   r   c                 C  r   r   r   r   r   r   r   r   C   r   zCamellia.__init__r	   r   c                 C  r    r!   r"   r#   r   r   r   r$   F   r%   zCamellia.key_sizeNr&   r'   r(   r   r   r   r   r4   >   s    
r4   c                   @  r3   )	TripleDES3DES@   )r8   r   r   r   r   c                 C  sF   t |dkr||| 7 }nt |dkr||d d 7 }t| || _d S )Nr
      )r   r   r   r   r   r   r   r   P   s
   zTripleDES.__init__r	   r   c                 C  r    r!   r"   r#   r   r   r   r$   W   r%   zTripleDES.key_sizeNr&   r'   r(   r   r   r   r   r6   K   s    
r6   c                   @  <   e Zd Zd ZdZeedddZdddZe	dddZ
dS )Blowfishr8       i  r
   r   r   c                 C  r   r   r   r   r   r   r   r   a   r   zBlowfish.__init__r	   r   c                 C  r    r!   r"   r#   r   r   r   r$   d   r%   zBlowfish.key_sizeNr&   r'   r)   r*   r+   r   r,   r-   ranger   r   r.   r$   r   r   r   r   r;   \       
r;   zBlowfish has been deprecated)r   c                   @  r:   )CAST5r8   (      r
   r   r   c                 C  r   r   r   r   r   r   r   r   x   r   zCAST5.__init__r	   r   c                 C  r    r!   r"   r#   r   r   r   r$   {   r%   zCAST5.key_sizeNr&   r'   r=   r   r   r   r   r@   s   r?   r@   zCAST5 has been deprecatedc                   @  s4   e Zd ZdZeg dZdddZedd	d
ZdS )ARC4RC4)rA   8   r8   P   r      r   r   r   r   c                 C  r   r   r   r   r   r   r   r      r   zARC4.__init__r	   r   c                 C  r    r!   r"   r#   r   r   r   r$      r%   zARC4.key_sizeNr&   r'   )	r)   r*   r+   r   r-   r   r   r.   r$   r   r   r   r   rC      s    
rC   c                   @  s6   e Zd Zd ZdZedgZdddZedd	d
Z	dS )IDEAr8   r   r   r   c                 C  r   r   r   r   r   r   r   r      r   zIDEA.__init__r	   r   c                 C  r    r!   r"   r#   r   r   r   r$      r%   zIDEA.key_sizeNr&   r'   r(   r   r   r   r   rH          

rH   zIDEA has been deprecatedc                   @  6   e Zd Zd ZdZedgZdddZeddd	Z	d
S )SEEDr   r   r   c                 C  r   r   r   r   r   r   r   r      r   zSEED.__init__r	   r   c                 C  r    r!   r"   r#   r   r   r   r$      r%   zSEED.key_sizeNr&   r'   r(   r   r   r   r   rK      rI   rK   zSEED has been deprecatedc                   @  s@   e Zd Zd ZedgZdddZeddd	ZedddZ	dS )ChaCha20r   r   r   noncec                 C  s6   t | || _td| t|dkrtd|| _d S )NrM   r9   z!nonce must be 128-bits (16 bytes))r   r   r   r   r   r   _nonce)r   r   rM   r   r   r   r      s
   
zChaCha20.__init__r	   c                 C  s   | j S r   )rN   r#   r   r   r   rM      s   zChaCha20.noncer   c                 C  r    r!   r"   r#   r   r   r   r$      r%   zChaCha20.key_sizeN)r   r   rM   r   )r	   r   r'   )
r)   r*   r+   r   r-   r   r   r.   rM   r$   r   r   r   r   rL      s    

	rL   c                   @  rJ   )SM4r   r   r   c                 C  r   r   r   r   r   r   r   r      r   zSM4.__init__r	   r   c                 C  r    r!   r"   r#   r   r   r   r$      r%   zSM4.key_sizeNr&   r'   r(   r   r   r   r   rO      rI   rO   N)r   r   r   r   r	   r   )
__future__r   cryptographyr   &cryptography.hazmat.primitives.ciphersr   r   r   r   r/   r2   r4   r6   r;   _BlowfishInternal
deprecatedr)   DeprecatedIn37r@   _CAST5InternalrC   rH   _IDEAInternalrK   _SEEDInternalrL   rO   r   r   r   r   <module>   s`   


				