B
    ufE                 @  s   d dl m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ddddddZdS )    )annotationsN)hashes)AsymmetricPadding)rsac               @  s   e Zd ZdZdS )PKCS1v15zEMSA-PKCS1-v1_5N)__name__
__module____qualname__name r   r   s/home/ankuromar296_gmail_com/myenv/lib/python3.7/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`.N)r   r   r	   r   r   r   r   r   r      s   r   c               @  s   e Zd ZdZdS )_DigestLengthz#Sentinel value for `DIGEST_LENGTH`.N)r   r   r	   r   r   r   r   r   r      s   r   c               @  sP   e Zd ZU e Ze Ze ZdZ	de
d< ddddddZedd	d
dZdS )PSSzEMSA-PSSz(int | _MaxLength | _Auto | _DigestLength_salt_lengthMGFNone)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   c             C  s   | j S )N)r   )r   r   r   r   r   ;   s    zPSS.mgfN)r   r   r	   r   
MAX_LENGTHr   ZAUTOr   ZDIGEST_LENGTHr
   __annotations__r   propertyr   r   r   r   r   r       s   
r   c               @  sF   e Zd ZdZddddddZeddd	d
ZeddddZdS )OAEPzEME-OAEPr   zhashes.HashAlgorithmzbytes | None)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   C   s
    zOAEP.__init__)r   c             C  s   | j S )N)r&   )r   r   r   r   r#   P   s    zOAEP.algorithmc             C  s   | j S )N)r   )r   r   r   r   r   T   s    zOAEP.mgfN)r   r   r	   r
   r   r!   r#   r   r   r   r   r   r"   @   s   r"   c               @  s   e Zd ZU ded< dS )r   zhashes.HashAlgorithmr&   N)r   r   r	   r    r   r   r   r   r   Y   s   
r   )	metaclassc               @  s    e Zd Ze ZddddZdS )MGF1zhashes.HashAlgorithm)r#   c             C  s   t |tjstd|| _d S )Nz*Expected instance of hashes.HashAlgorithm.)r   r   r%   r   r&   )r   r#   r   r   r   r   `   s    zMGF1.__init__N)r   r   r	   r   r   r   r   r   r   r   r(   ]   s   r(   z$rsa.RSAPrivateKey | rsa.RSAPublicKeyzhashes.HashAlgorithmr   )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_lengthg   s    r0   )
__future__r   abcZcryptography.hazmat.primitivesr   Z*cryptography.hazmat.primitives._asymmetricr   Z)cryptography.hazmat.primitives.asymmetricr   r   r   r   r   r   r"   ABCMetar   r(   r0   r   r   r   r   <module>   s    
