o
    )%a                     @   s   d dl mZ d dlmZmZ d dlmZ 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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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   S/usr/lib/python3/dist-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__returnc                 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                   @   @   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 )Camelliacamelliar   )r   r   r   r   c                 C   r   r   r   r   r   r   r   r   /   r   zCamellia.__init__r   c                 C   r   r   r    r!   r   r   r   r"   2   r#   zCamellia.key_sizeNr$   r   r   r   r   r.   *   s    r.   c                   @   r-   )	TripleDES3DES@   )r2   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   <   s
   zTripleDES.__init__r   c                 C   r   r   r    r!   r   r   r   r"   C   r#   zTripleDES.key_sizeNr$   r   r   r   r   r0   7   s    r0   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 )Blowfishr2       i  r   r   c                 C   r   r   r   r   r   r   r   r   M   r   zBlowfish.__init__r   c                 C   r   r   r    r!   r   r   r   r"   P   r#   zBlowfish.key_sizeNr%   r&   r'   r   r(   r)   ranger   r*   r   r+   r,   r"   r   r   r   r   r5   H       r5   c                   @   r4   )CAST5r2   (      r   r   c                 C   r   r   r   r   r   r   r   r   Z   r   zCAST5.__init__r   c                 C   r   r   r    r!   r   r   r   r"   ]   r#   zCAST5.key_sizeNr7   r   r   r   r   r:   U   r9   r:   c                   @   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 )
ARC4RC4)r;   8   r2   P   r      r   r   r   c                 C   r   r   r   r   r   r   r   r   f   r   zARC4.__init__r   c                 C   r   r   r    r!   r   r   r   r"   i   r#   zARC4.key_sizeN)r%   r&   r'   r   r)   r   r*   r   r+   r,   r"   r   r   r   r   r=   b   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 )
IDEAr2   r   r   c                 C   r   r   r   r   r   r   r   r   s   r   zIDEA.__init__r   c                 C   r   r   r    r!   r   r   r   r"   v   r#   zIDEA.key_sizeNr$   r   r   r   r   rB   n       
rB   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 )	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   rD   {   rC   rD   c                   @   sH   e Zd Zd ZedgZdedefddZe	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 )NrF   r3   z!nonce must be 128-bits (16 bytes))r   r   r   r	   r
   r   _nonce)r   r   rF   r   r   r   r      s
   
zChaCha20.__init__rG   r   c                 C   r   r   r    r!   r   r   r   r"      r#   zChaCha20.key_sizeN)r%   r&   r'   r   r)   r   r*   r   r   read_only_propertyrF   r+   r,   r"   r   r   r   r   rE      s    

	rE   N)cryptographyr   &cryptography.hazmat.primitives.ciphersr   r   ,cryptography.hazmat.primitives.ciphers.modesr   r*   r   r   r.   r0   r5   r:   r=   rB   rD   rE   r   r   r   r   <module>   s   