U
    EZh
                     @   s   d dl Z d dlZd dlmZ d dlmZ d dlmZ G dd deZG dd dZ	G d	d
 d
Z
G dd dZG dd deZG dd deZG dd de jdZG dd deZejd ejedddZdS )    N)hashes)AsymmetricPadding)rsac                   @   s   e Zd ZdZdS )PKCS1v15zEMSA-PKCS1-v1_5N)__name__
__module____qualname__name r
   r
   x/home/aprabhat/apps/x.techxrdev.in/venv/lib/python3.8/site-packages/cryptography/hazmat/primitives/asymmetric/padding.pyr      s   r   c                   @   s   e Zd ZdZdS )
_MaxLengthz Sentinel value for `MAX_LENGTH`.Nr   r   r   __doc__r
   r
   r
   r   r      s   r   c                   @   s   e Zd ZdZdS )_AutozSentinel value for `AUTO`.Nr   r
   r
   r
   r   r      s   r   c                   @   s   e Zd ZdZdS )_DigestLengthz#Sentinel value for `DIGEST_LENGTH`.Nr   r
   r
   r
   r   r      s   r   c                   @   sZ   e Zd ZU e Ze Ze ZdZ	e
jeeeef ed< de
jeeeef ddddZdS )PSSzEMSA-PSS_salt_lengthMGFN)mgfsalt_lengthreturnc                 C   sD   || _ t|ttttfs tdt|tr:|dk r:td|| _d S )NzBsalt_length must be an integer, MAX_LENGTH, DIGEST_LENGTH, or AUTOr   z$salt_length must be zero or greater.)	_mgf
isinstanceintr   r   r   	TypeError
ValueErrorr   )selfr   r   r
   r
   r   __init__'   s     
zPSS.__init__)r   r   r   r   
MAX_LENGTHr   ZAUTOr   ZDIGEST_LENGTHr	   typingUnionr   __annotations__r   r
   r
   r
   r   r       s   
r   c                   @   s*   e Zd ZdZdejeje dddZ	dS )OAEPzEME-OAEPr   )r   	algorithmlabelc                 C   s*   t |tjstd|| _|| _|| _d S Nz*Expected instance of hashes.HashAlgorithm.)r   r   HashAlgorithmr   r   
_algorithmZ_label)r   r   r#   r$   r
   r
   r   r   ?   s
    zOAEP.__init__N)
r   r   r   r	   r   r&   r   Optionalbytesr   r
   r
   r
   r   r"   <   s
   r"   c                   @   s   e Zd ZU ejed< dS )r   r'   N)r   r   r   r   r&   r!   r
   r
   r
   r   r   M   s   
r   )	metaclassc                   @   s"   e Zd Ze ZejdddZdS )MGF1)r#   c                 C   s   t |tjstd|| _d S r%   )r   r   r&   r   r'   )r   r#   r
   r
   r   r   T   s    zMGF1.__init__N)r   r   r   r   r   r   r&   r   r
   r
   r
   r   r+   Q   s   r+   )zrsa.RSAPrivateKeyzrsa.RSAPublicKey)keyhash_algorithmr   c                 C   sF   t | tjtjfstd| jd d }||j d }|dksBt|S )Nz(key must be an RSA public or private key         r   )r   r   ZRSAPrivateKeyZRSAPublicKeyr   Zkey_sizedigest_sizeAssertionError)r,   r-   Zemlenr   r
   r
   r   calculate_max_pss_salt_length[   s    r3   )abcr   Zcryptography.hazmat.primitivesr   Z*cryptography.hazmat.primitives._asymmetricr   Z)cryptography.hazmat.primitives.asymmetricr   r   r   r   r   r   r"   ABCMetar   r+   r    r&   r   r3   r
   r
   r
   r   <module>   s    