o
    5Wc                     @   sr  d dl mZ d dlmZmZ dededefddZG dd	 d	eeZG d
d deeZG dd deeZ	G dd deeZ
G dd deeZG dd deeZeZejeedejdd G dd deeZeZejeedejdd G dd deZG dd deeZeZejeedejdd G dd deeZeZejeed ejdd G d!d" d"eZG d#d$ d$eeZd%S )&    )utils)BlockCipherAlgorithmCipherAlgorithm	algorithmkey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   SD:\Flask\env\Lib\site-packages\cryptography/hazmat/primitives/ciphers/algorithms.py_verify_key_size   s   r   c                   @   s@   e Zd Zd ZdZeg dZdefddZe	de
fddZd	S )
AES   )r         i   r   c                 C      t | || _d S Nr   r   selfr   r   r   r   __init__!      zAES.__init__r   c                 C      t | jd S Nr   r
   r   r   r   r   r   key_size$      zAES.key_sizeN__name__
__module____qualname__r   
block_size	frozensetr   bytesr   propertyintr!   r   r   r   r   r      s    r   c                   @   s0   e Zd ZdZdZedgZdZdefddZ	dS )AES128r   r   r   c                 C   r   r   r   r   r   r   r   r   /   r   zAES128.__init__N
r$   r%   r&   r   r'   r(   r   r!   r)   r   r   r   r   r   r,   )       
r,   c                   @   s0   e Zd ZdZdZedgZdZdefddZ	dS )AES256r   r   r   r   c                 C   r   r   r   r   r   r   r   r   9   r   zAES256.__init__Nr-   r   r   r   r   r/   3   r.   r/   c                   @   @   e Zd ZdZdZeg dZdefddZe	de
fdd	Zd
S )CamelliaZcamelliar   )r   r   r   r   c                 C   r   r   r   r   r   r   r   r   B   r   zCamellia.__init__r   c                 C   r   r   r   r    r   r   r   r!   E   r"   zCamellia.key_sizeNr#   r   r   r   r   r1   =   s    r1   c                   @   r0   )	TripleDESZ3DES@   )r3   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   O   s
   zTripleDES.__init__r   c                 C   r   r   r   r    r   r   r   r!   V   r"   zTripleDES.key_sizeNr#   r   r   r   r   r2   J   s    r2   c                   @   D   e Zd Zd ZdZeedddZdefddZ	e
defd	d
ZdS )Blowfishr3       i  r   r   c                 C   r   r   r   r   r   r   r   r   `   r   zBlowfish.__init__r   c                 C   r   r   r   r    r   r   r   r!   c   r"   zBlowfish.key_sizeNr$   r%   r&   r   r'   r(   ranger   r)   r   r*   r+   r!   r   r   r   r   r6   [       r6   zBlowfish has been deprecated)r   c                   @   r5   )CAST5r3   (      r   r   c                 C   r   r   r   r   r   r   r   r   w   r   zCAST5.__init__r   c                 C   r   r   r   r    r   r   r   r!   z   r"   zCAST5.key_sizeNr8   r   r   r   r   r;   r   r:   r;   zCAST5 has been deprecatedc                   @   s<   e Zd ZdZeg dZdefddZede	fddZ
d	S )
ARC4ZRC4)r<   8   r3   P   r      r   r   r   c                 C   r   r   r   r   r   r   r   r      r   zARC4.__init__r   c                 C   r   r   r   r    r   r   r   r!      r"   zARC4.key_sizeN)r$   r%   r&   r   r(   r   r)   r   r*   r+   r!   r   r   r   r   r>      s    r>   c                   @   s>   e Zd Zd ZdZedgZdefddZe	de
fddZd	S )
IDEAr3   r   r   c                 C   r   r   r   r   r   r   r   r      r   zIDEA.__init__r   c                 C   r   r   r   r    r   r   r   r!      r"   zIDEA.key_sizeNr#   r   r   r   r   rB          
rB   zIDEA has been deprecatedc                   @   >   e Zd Zd ZdZedgZdefddZe	de
fddZdS )	SEEDr   r   c                 C   r   r   r   r   r   r   r   r      r   zSEED.__init__r   c                 C   r   r   r   r    r   r   r   r!      r"   zSEED.key_sizeNr#   r   r   r   r   rE      rC   rE   zSEED has been deprecatedc                   @   sP   e Zd Zd ZedgZdedefddZedefddZ	ede
fd	d
ZdS )ChaCha20r   r   noncec                 C   s6   t | || _td| t|dkrtd|| _d S )NrG   r4   z!nonce must be 128-bits (16 bytes))r   r   r   r	   r
   r   _nonce)r   r   rG   r   r   r   r      s
   
zChaCha20.__init__r   c                 C   s   | j S r   )rH   r    r   r   r   rG      s   zChaCha20.noncec                 C   r   r   r   r    r   r   r   r!      r"   zChaCha20.key_sizeN)r$   r%   r&   r   r(   r   r)   r   r*   rG   r+   r!   r   r   r   r   rF      s    
	rF   c                   @   rD   )	SM4r   r   c                 C   r   r   r   r   r   r   r   r      r   zSM4.__init__r   c                 C   r   r   r   r    r   r   r   r!      r"   zSM4.key_sizeNr#   r   r   r   r   rI      rC   rI   N)Zcryptographyr   Z&cryptography.hazmat.primitives.ciphersr   r   r)   r   r   r,   r/   r1   r2   r6   Z_BlowfishInternal
deprecatedr$   ZDeprecatedIn37r;   Z_CAST5Internalr>   rB   Z_IDEAInternalrE   Z_SEEDInternalrF   rI   r   r   r   r   <module>   s^   

				