U
    /j                     @  s   d dl mZ d dlZd dlmZ d dlmZmZmZ G dd deZ	G dd deZ
G 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dS )    )annotationsN)utils)BlockCipherAlgorithmCipherAlgorithm_verify_key_sizec                	   @  sH   e Zd ZdZedddddddd	gZd
dddZeddddZdS )ARC4ZRC4(   8   @   P               byteskeyc                 C  s   t | || _d S Nr   r   selfr    r   S/tmp/pip-unpacked-wheel-qzbw3lpx/cryptography/hazmat/decrepit/ciphers/algorithms.py__init__   s    zARC4.__init__intreturnc                 C  s   t | jd S N   lenr   r   r   r   r   key_size   s    zARC4.key_sizeN)	__name__
__module____qualname__name	frozenset	key_sizesr   propertyr"   r   r   r   r   r      s
   r   c                   @  sB   e Zd ZdZdZedddgZddddZed	d
ddZ	dS )	TripleDESZ3DESr
   r   r   r   r   c                 C  sj   t |dkr,tjdtjdd || | }n.t |dkrZtjdtjdd ||d d  }t| || _d S )Nr   zSingle-key TripleDES (8-byte keys) is deprecated and support will be removed in a future release. Use 24-byte keys instead (e.g., key + key + key).   )
stacklevel   zTwo-key TripleDES (16-byte keys) is deprecated and support will be removed in a future release. Use 24-byte keys instead (e.g., key + key[:8]).)r    warningswarnr   ZDeprecatedIn47r   r   r   r   r   r   r   "   s    zTripleDES.__init__r   r   c                 C  s   t | jd S r   r   r!   r   r   r   r"   7   s    zTripleDES.key_sizeN
r#   r$   r%   r&   
block_sizer'   r(   r   r)   r"   r   r   r   r   r*      s   r*   c                   @  s   e Zd ZdZdS )_DESr
   N)r#   r$   r%   r"   r   r   r   r   r2   =   s   r2   c                   @  sD   e Zd Zd ZdZeedddZddddZe	d	d
ddZ
dS )Blowfishr
       i  r   r   r   c                 C  s   t | || _d S r   r   r   r   r   r   r   F   s    zBlowfish.__init__r   r   c                 C  s   t | jd S r   r   r!   r   r   r   r"   I   s    zBlowfish.key_sizeNr#   r$   r%   r&   r1   r'   ranger(   r   r)   r"   r   r   r   r   r3   A   s   r3   c                   @  sD   e Zd Zd ZdZeedddZddddZe	d	d
ddZ
dS )CAST5r
   r      r   r   r   c                 C  s   t | || _d S r   r   r   r   r   r   r   S   s    zCAST5.__init__r   r   c                 C  s   t | jd S r   r   r!   r   r   r   r"   V   s    zCAST5.key_sizeNr5   r   r   r   r   r7   N   s   r7   c                   @  s>   e Zd Zd ZdZedgZddddZedddd	Z	d
S )SEEDr   r   r   c                 C  s   t | || _d S r   r   r   r   r   r   r   `   s    zSEED.__init__r   r   c                 C  s   t | jd S r   r   r!   r   r   r   r"   c   s    zSEED.key_sizeNr0   r   r   r   r   r9   [   s   
r9   c                   @  s>   e Zd Zd ZdZedgZddddZeddd	d
Z	dS )IDEAr
   r   r   r   c                 C  s   t | || _d S r   r   r   r   r   r   r   m   s    zIDEA.__init__r   r   c                 C  s   t | jd S r   r   r!   r   r   r   r"   p   s    zIDEA.key_sizeNr0   r   r   r   r   r:   h   s   
r:   c                   @  sB   e Zd ZdZdZedddgZddddZed	d
ddZ	dS )CamelliaZcamelliar   r   r   r   r   c                 C  s   t | || _d S r   r   r   r   r   r   r   z   s    zCamellia.__init__r   r   c                 C  s   t | jd S r   r   r!   r   r   r   r"   }   s    zCamellia.key_sizeNr0   r   r   r   r   r;   u   s   r;   c                   @  s>   e Zd Zd ZdZedgZddddZeddd	d
Z	dS )RC2r
   r   r   r   c                 C  s   t | || _d S r   r   r   r   r   r   r      s    zRC2.__init__r   r   c                 C  s   t | jd S r   r   r!   r   r   r   r"      s    zRC2.key_sizeNr0   r   r   r   r   r<      s   
r<   )
__future__r   r.   Zcryptographyr   Z/cryptography.hazmat.primitives._cipheralgorithmr   r   r   r   r*   r2   r3   r7   r9   r:   r;   r<   r   r   r   r   <module>   s    