o
    àý°j^  ã                   @  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                   @  s   e Zd ZdZd	dd„ZdS )
ÚPKCS1v15zEMSA-PKCS1-v1_5ÚotherÚobjectÚreturnÚboolc                 C  s   t |tƒstS dS )NT)Ú
isinstancer   ÚNotImplemented©Úselfr   © r   ú¤/root/aizidognhua/tmp/workspace/projects/ec89d86c-575f-41c9-af57-ac45cbdbf775/venv/lib/python3.10/site-packages/cryptography/hazmat/primitives/asymmetric/padding.pyÚ__eq__   s   
zPKCS1v15.__eq__N©r   r   r	   r
   )Ú__name__Ú
__module__Ú__qualname__Únamer   r   r   r   r   r      s    r   c                   @  ó   e Zd ZdZdS )Ú
_MaxLengthz Sentinel value for `MAX_LENGTH`.N©r   r   r   Ú__doc__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                   @  sN   e Zd ZU eƒ Zeƒ Zeƒ ZdZ	de
d< dd	d
„Zddd„Zeddd„ƒZdS )ÚPSSzEMSA-PSSú(int | _MaxLength | _Auto | _DigestLengthÚ_salt_lengthÚmgfÚMGFÚsalt_lengthr	   Ú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.)	Ú_mgfr   Úintr   r   r   Ú	TypeErrorÚ
ValueErrorr    )r   r!   r#   r   r   r   Ú__init__-   s   ÿÿ
zPSS.__init__r   r   r
   c                 C  s&   t |tƒstS | j|jko| j|jkS ©N)r   r   r   r%   r    r   r   r   r   r   A   s   
ÿz
PSS.__eq__c                 C  ó   | j S r*   ©r%   ©r   r   r   r   r!   I   ó   zPSS.mgfN)r!   r"   r#   r   r	   r$   r   ©r	   r"   )r   r   r   r   Ú
MAX_LENGTHr   ÚAUTOr   ÚDIGEST_LENGTHr   Ú__annotations__r)   r   Úpropertyr!   r   r   r   r   r   &   s   
 

r   c                   @  s@   e Zd ZdZdd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!   r6   r8   r   r   r   r)   Q   s
   
zOAEP.__init__r   r   r	   r
   c                 C  s2   t |tƒstS | j|jko| j|jko| j|jkS r*   )r   r5   r   r%   r<   r=   r   r   r   r   r   ^   s   

ÿ
ýzOAEP.__eq__c                 C  r+   r*   )r<   r-   r   r   r   r6   h   r.   zOAEP.algorithmc                 C  r+   r*   r,   r-   r   r   r   r!   l   r.   zOAEP.mgfN)r!   r"   r6   r7   r8   r9   r   )r	   r7   r/   )	r   r   r   r   r)   r   r4   r6   r!   r   r   r   r   r5   N   s    


r5   c                   @  s   e Zd ZU ded< dS )r"   r7   r<   N)r   r   r   r3   r   r   r   r   r"   q   s   
 r"   )Ú	metaclassc                   @  s    e Zd Zddd„Zdd	d
„ZdS )ÚMGF1r6   r7   c                 C  s   t |tjƒs
tdƒ‚|| _d S r:   )r   r   r;   r'   r<   )r   r6   r   r   r   r)   v   s   
zMGF1.__init__r   r   r	   r
   c                 C  s   t |tƒstS | j|jkS r*   )r   r?   r   r<   r   r   r   r   r   |   s   
zMGF1.__eq__N)r6   r7   r   )r   r   r   r)   r   r   r   r   r   r?   u   s    
r?   Úkeyú$rsa.RSAPrivateKey | rsa.RSAPublicKeyÚhash_algorithmr7   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)r@   rB   Úemlenr#   r   r   r   Úcalculate_max_pss_salt_lengthƒ   s   rK   )r@   rA   rB   r7   r	   r&   )Ú
__future__r   ÚabcÚcryptography.hazmat.primitivesr   Ú*cryptography.hazmat.primitives._asymmetricr   Ú)cryptography.hazmat.primitives.asymmetricr   r   r   r   r   r   r5   ÚABCMetar"   r?   rK   r   r   r   r   Ú<module>   s   
(#