o
    ˷e
                     @   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dejd dejdefddZdS )    N)hashes)AsymmetricPadding)rsac                   @      e Zd ZdZdS )PKCS1v15zEMSA-PKCS1-v1_5N)__name__
__module____qualname__name r   r   h/var/www/ideatree/venv/lib/python3.10/site-packages/cryptography/hazmat/primitives/asymmetric/padding.pyr          r   c                   @   r   )
_MaxLengthz Sentinel value for `MAX_LENGTH`.Nr   r   r	   __doc__r   r   r   r   r      r   r   c                   @   r   )_AutozSentinel value for `AUTO`.Nr   r   r   r   r   r      r   r   c                   @   r   )_DigestLengthz#Sentinel value for `DIGEST_LENGTH`.Nr   r   r   r   r   r      r   r   c                   @   s^   e Zd ZU e Ze Ze ZdZ	e
jeeeef ed< ddde
jeeeef ddfdd	ZdS )
PSSzEMSA-PSS_salt_lengthmgfMGFsalt_lengthreturnNc                 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   AUTOr   DIGEST_LENGTHr
   typingUnionr   __annotations__r   r   r   r   r   r       s   
 r   c                   @   s.   e Zd ZdZdddejdeje f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   
_algorithm_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dejfddZdS )MGF1r'   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   r0   Q   s    r0   key)zrsa.RSAPrivateKeyzrsa.RSAPublicKeyhash_algorithmr   c                 C   sF   t | tjtjfstd| jd d }||j d }|dks!J |S )Nz(key must be an RSA public or private key         r   )r   r   RSAPrivateKeyRSAPublicKeyr   key_sizedigest_size)r1   r2   emlenr   r   r   r   calculate_max_pss_salt_length[   s   r;   )abcr#   cryptography.hazmat.primitivesr   *cryptography.hazmat.primitives._asymmetricr   )cryptography.hazmat.primitives.asymmetricr   r   r   r   r   r   r&   ABCMetar   r0   r$   r*   r   r;   r   r   r   r   <module>   s(   
