U
    EZhe                     @   sZ  d dl mZ d dlmZmZ eee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 )$    )utils)BlockCipherAlgorithmCipherAlgorithm)	algorithmkeyreturnc                 C   s<   t d| t|d | jkr8tdt|d | j|S )Nr      zInvalid key size ({}) for {}.)r   _check_byteslikelen	key_sizes
ValueErrorformatname)r   r    r   x/home/aprabhat/apps/x.techxrdev.in/venv/lib/python3.8/site-packages/cryptography/hazmat/primitives/ciphers/algorithms.py_verify_key_size   s    
 r   c                   @   sD   e Zd Zd ZdZeddddgZedddZe	e
dd	d
ZdS )AES         i   r   c                 C   s   t | || _d S Nr   r   selfr   r   r   r   __init__!   s    zAES.__init__r   c                 C   s   t | jd S Nr   r
   r   r   r   r   r   key_size$   s    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edddZ	dS )AES128r   r   r   c                 C   s   t | || _d S r   r   r   r   r   r   r   /   s    zAES128.__init__N
r"   r#   r$   r   r%   r&   r   r    r'   r   r   r   r   r   r*   )   s
   
r*   c                   @   s0   e Zd ZdZdZedgZdZedddZ	dS )AES256r   r   r   r   c                 C   s   t | || _d S r   r   r   r   r   r   r   9   s    zAES256.__init__Nr+   r   r   r   r   r,   3   s
   
r,   c                   @   sB   e Zd ZdZdZedddgZedddZe	e
dd	d
ZdS )CamelliaZcamelliar   r   r   r   c                 C   s   t | || _d S r   r   r   r   r   r   r   B   s    zCamellia.__init__r   c                 C   s   t | jd S r   r   r   r   r   r   r    E   s    zCamellia.key_sizeNr!   r   r   r   r   r-   =   s   r-   c                   @   sB   e Zd ZdZdZedddgZedddZe	e
dd	d
ZdS )	TripleDESZ3DES@   r   r   r   c                 C   sF   t |dkr||| 7 }nt |dkr6||d d 7 }t| || _d S )Nr      )r
   r   r   r   r   r   r   r   O   s
    zTripleDES.__init__r   c                 C   s   t | jd S r   r   r   r   r   r   r    V   s    zTripleDES.key_sizeNr!   r   r   r   r   r.   J   s   r.   c                   @   sD   e Zd Zd ZdZeedddZedddZ	e
edd	d
ZdS )Blowfishr/       i  r   r   c                 C   s   t | || _d S r   r   r   r   r   r   r   `   s    zBlowfish.__init__r   c                 C   s   t | jd S r   r   r   r   r   r   r    c   s    zBlowfish.key_sizeNr"   r#   r$   r   r%   r&   ranger   r'   r   r(   r)   r    r   r   r   r   r1   [   s   r1   zBlowfish has been deprecated)r   c                   @   sD   e Zd Zd ZdZeedddZedddZ	e
edd	d
ZdS )CAST5r/   (      r   r   c                 C   s   t | || _d S r   r   r   r   r   r   r   w   s    zCAST5.__init__r   c                 C   s   t | jd S r   r   r   r   r   r   r    z   s    zCAST5.key_sizeNr3   r   r   r   r   r5   r   s   r5   zCAST5 has been deprecatedc                	   @   sH   e Zd ZdZedddddddd	gZed
ddZee	dddZ
dS )ARC4ZRC4r6   8   r/   P   r      r   r   r   c                 C   s   t | || _d S r   r   r   r   r   r   r      s    zARC4.__init__r   c                 C   s   t | jd S r   r   r   r   r   r   r       s    zARC4.key_sizeN)r"   r#   r$   r   r&   r   r'   r   r(   r)   r    r   r   r   r   r8      s
   r8   c                   @   s>   e Zd Zd ZdZedgZedddZe	e
dddZd	S )
IDEAr/   r   r   c                 C   s   t | || _d S r   r   r   r   r   r   r      s    zIDEA.__init__r   c                 C   s   t | jd S r   r   r   r   r   r   r       s    zIDEA.key_sizeNr!   r   r   r   r   r<      s   
r<   zIDEA has been deprecatedc                   @   s>   e Zd Zd ZdZedgZedddZe	e
dddZdS )	SEEDr   r   c                 C   s   t | || _d S r   r   r   r   r   r   r      s    zSEED.__init__r   c                 C   s   t | jd S r   r   r   r   r   r   r       s    zSEED.key_sizeNr!   r   r   r   r   r=      s   
r=   zSEED has been deprecatedc                   @   sN   e Zd Zd ZedgZeedddZeedddZ	ee
ddd	Zd
S )ChaCha20r   )r   noncec                 C   s6   t | || _td| t|dkr,td|| _d S )Nr?   r0   z!nonce must be 128-bits (16 bytes))r   r   r   r	   r
   r   _nonce)r   r   r?   r   r   r   r      s
    zChaCha20.__init__r   c                 C   s   | j S r   )r@   r   r   r   r   r?      s    zChaCha20.noncec                 C   s   t | jd S r   r   r   r   r   r   r       s    zChaCha20.key_sizeN)r"   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edddZe	e
dddZdS )	SM4r   r   c                 C   s   t | || _d S r   r   r   r   r   r   r      s    zSM4.__init__r   c                 C   s   t | jd S r   r   r   r   r   r   r       s    zSM4.key_sizeNr!   r   r   r   r   rA      s   
rA   N)Zcryptographyr   Z&cryptography.hazmat.primitives.ciphersr   r   r'   r   r   r*   r,   r-   r.   r1   Z_BlowfishInternal
deprecatedr"   ZDeprecatedIn37r5   Z_CAST5Internalr8   r<   Z_IDEAInternalr=   Z_SEEDInternalr>   rA   r   r   r   r   <module>   s\   

				