o
    Df                     @  sR   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ZdS )    )annotationsN)utilsc                   @  sH   e Zd ZeejdddZeejdddZeejdd	d
ZdS )CipherAlgorithmreturnstrc                 C     dS )zE
        A string naming this mode (e.g. "AES", "Camellia").
        N selfr   r   h/home/ubuntu/webapp/venv/lib/python3.10/site-packages/cryptography/hazmat/primitives/_cipheralgorithm.pyname       zCipherAlgorithm.namefrozenset[int]c                 C  r   )z<
        Valid key sizes for this algorithm in bits
        Nr   r	   r   r   r   	key_sizes   r   zCipherAlgorithm.key_sizesintc                 C  r   )zW
        The size of the key being used as an integer in bits (e.g. 128, 256).
        Nr   r	   r   r   r   key_size   r   zCipherAlgorithm.key_sizeN)r   r   )r   r   r   r   )	__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ZdS )	BlockCipherAlgorithmbyteskeyr   r   c                 C  r   )zK
        The size of a block as an integer in bits (e.g. 64, 128).
        Nr   r	   r   r   r   
block_size)   r   zBlockCipherAlgorithm.block_sizeNr   )r   r   r   __annotations__r   r   r   r   r   r   r   r   r   &   s
   
 r   	algorithmr   r   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   _check_byteslikelenr   
ValueErrorr   )r   r   r   r   r   _verify_key_size1   s   r%   )r   r   r   r   r   r   )	
__future__r   r   cryptographyr   ABCMetar   r   r%   r   r   r   r   <module>   s   