a
    còf×  ã                   @  sZ   d dl mZ d dlZd dlmZ G dd„ dejd�ZG dd„ deƒZdd	d	d
œdd„ZdS )é    )ÚannotationsN)Úutilsc                   @  sT   e Zd Zeejddœdd„ƒƒZeejddœdd„ƒƒZeejddœd	d
„ƒƒZdS )ÚCipherAlgorithmÚstr©Úreturnc                 C  s   dS )zE
        A string naming this mode (e.g. "AES", "Camellia").
        N© ©Úselfr   r   úl/home/httpd/docs/test/DocsMgr/lib/python3.9/site-packages/cryptography/hazmat/primitives/_cipheralgorithm.pyÚname   s    zCipherAlgorithm.namezfrozenset[int]c                 C  s   dS )z<
        Valid key sizes for this algorithm in bits
        Nr   r	   r   r   r   Ú	key_sizes   s    zCipherAlgorithm.key_sizesÚintc                 C  s   dS )zW
        The size of the key being used as an integer in bits (e.g. 128, 256).
        Nr   r	   r   r   r   Úkey_size   s    zCipherAlgorithm.key_sizeN)	Ú__name__Ú
__module__Ú__qualname__ÚpropertyÚabcÚabstractmethodr   r   r   r   r   r   r   r      s   r   )Ú	metaclassc                   @  s.   e Zd ZU ded< eejddœdd„ƒƒZdS )ÚBlockCipherAlgorithmÚbytesÚkeyr   r   c                 C  s   dS )zK
        The size of a block as an integer in bits (e.g. 64, 128).
        Nr   r	   r   r   r   Ú
block_size)   s    zBlockCipherAlgorithm.block_sizeN)r   r   r   Ú__annotations__r   r   r   r   r   r   r   r   r   &   s   
r   r   )Ú	algorithmr   r   c                 C  sB   t  d|¡ t|ƒd | jvr>tdt|ƒd › d| j› d�ƒ‚|S )Nr   é   zInvalid key size (z) for Ú.)r   Z_check_byteslikeÚlenr   Ú
ValueErrorr   )r   r   r   r   r   Ú_verify_key_size1   s    ÿr!   )	Ú
__future__r   r   Zcryptographyr   ÚABCMetar   r   r!   r   r   r   r   Ú<module>   s
   