o
    VhE                     @  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ZdS )     )annotationsN)hashes)AsymmetricPadding)rsac                   @     e Zd ZdZdS )PKCS1v15zEMSA-PKCS1-v1_5N)__name__
__module____qualname__name r   r   /var/www/html/construction_image-detection-poc/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                   @  sD   e Zd ZU e Ze Ze ZdZ	de
d< dd	d
ZedddZdS )PSSzEMSA-PSS(int | _MaxLength | _Auto | _DigestLength_salt_lengthmgfMGFsalt_lengthreturnNonec                 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__c                 C     | j S Nr   r!   r   r   r   r   ;      zPSS.mgfN)r   r   r   r   r   r   r   r   )r   r	   r
   r   
MAX_LENGTHr   AUTOr   DIGEST_LENGTHr   __annotations__r"   propertyr   r   r   r   r   r       s   
 
r   c                   @  s6   e Zd ZdZddd	ZedddZedddZdS )OAEPzEME-OAEPr   r   	algorithmhashes.HashAlgorithmlabelbytes | Nonec                 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/   r1   r   r   r   r"   C   s
   
zOAEP.__init__r   c                 C  r#   r$   )r5   r&   r   r   r   r/   P   r'   zOAEP.algorithmc                 C  r#   r$   r%   r&   r   r   r   r   T   r'   zOAEP.mgfN)r   r   r/   r0   r1   r2   )r   r0   r(   )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   r0   r5   N)r   r	   r
   r,   r   r   r   r   r   Y   s   
 r   )	metaclassc                   @  s   e Zd Ze ZdddZdS )MGF1r/   r0   c                 C  s   t |tjs
td|| _d S r3   )r   r   r4   r   r5   )r!   r/   r   r   r   r"   `   s   
zMGF1.__init__N)r/   r0   )r   r	   r
   r   r)   r"   r   r   r   r   r8   ]   s    r8   key$rsa.RSAPrivateKey | rsa.RSAPublicKeyhash_algorithmr0   r   r   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)r9   r;   emlenr   r   r   r   calculate_max_pss_salt_lengthg   s   rD   )r9   r:   r;   r0   r   r   )
__future__r   abccryptography.hazmat.primitivesr   *cryptography.hazmat.primitives._asymmetricr   )cryptography.hazmat.primitives.asymmetricr   r   r   r   r   r   r.   ABCMetar   r8   rD   r   r   r   r   <module>   s    
