U
    ¶[Öeõ  ã                   @   sÚ   d dl mZ d dlmZmZ d dlmZ eedœ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ƒZG dd„ deƒZG dd„ deeƒZG dd„ deeƒZdS )é    )Úutils)ÚBlockCipherAlgorithmÚCipherAlgorithm)ÚModeWithNonce©Ú	algorithmÚkeyc                 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Únamer   © r   ús/var/www/html/services/stratfitenv/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__©Úreturnc                 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                   @   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   /   s    zCamellia.__init__r   c                 C   s   t | jƒd S r   r    r!   r   r   r   r"   2   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   <   s
    zTripleDES.__init__r   c                 C   s   t | jƒd S r   r    r!   r   r   r   r"   C   s    zTripleDES.key_sizeNr#   r   r   r   r   r-   7   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   M   s    zBlowfish.__init__r   c                 C   s   t | jƒd S r   r    r!   r   r   r   r"   P   s    zBlowfish.key_sizeN©r$   r%   r&   r   r'   r(   Úranger   r)   r   r*   r+   r"   r   r   r   r   r0   H   s   r0   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   Z   s    zCAST5.__init__r   c                 C   s   t | jƒd S r   r    r!   r   r   r   r"   ]   s    zCAST5.key_sizeNr2   r   r   r   r   r4   U   s   r4   c                	   @   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RC4r5   é8   r.   éP   r   é    r   r   r   c                 C   s   t | |ƒ| _d S r   r   r   r   r   r   r   f   s    zARC4.__init__r   c                 C   s   t | jƒd S r   r    r!   r   r   r   r"   i   s    zARC4.key_sizeN)r$   r%   r&   r   r(   r   r)   r   r*   r+   r"   r   r   r   r   r7   b   s
   r7   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   s    zIDEA.__init__r   c                 C   s   t | jƒd S r   r    r!   r   r   r   r"   v   s    zIDEA.key_sizeNr#   r   r   r   r   r;   n   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 )	Ú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<   c                   @   sF   e Zd Zd ZedgƒZeedœdd„Ze 	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>   r/   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?   r   c                 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   Zread_only_propertyr>   r*   r+   r"   r   r   r   r   r=   ˆ   s   
	
r=   N)Zcryptographyr   Z&cryptography.hazmat.primitives.ciphersr   r   Z,cryptography.hazmat.primitives.ciphers.modesr   r)   r   r   r,   r-   r0   r4   r7   r;   r<   r=   r   r   r   r   Ú<module>   s   