a
    còfE  ã                   @  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   ún/home/httpd/docs/test/DocsMgr/lib/python3.9/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                   @  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   ú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 r!   )r-   r#   r   r   r   r)   P   s    zOAEP.algorithmc                 C  s   | j S r!   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   r(   r-   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 )ÚMGF1r(   )r)   c                 C  s   t |tjƒstdƒ‚|| _d S r+   )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.RSAPublicKeyr(   r   )ÚkeyÚhash_algorithmr   c                 C  sF   t | tjtjfƒstdƒ‚| jd d }||j d }|dksBJ ‚|S )Nz(key must be an RSA public or private keyé   é   é   r   )r   r   ZRSAPrivateKeyZRSAPublicKeyr   Zkey_sizeÚdigest_size)r0   r1   Zemlenr   r   r   r   Úcalculate_max_pss_salt_lengthg   s    r6   )Ú
__future__r   ÚabcZcryptography.hazmat.primitivesr   Z*cryptography.hazmat.primitives._asymmetricr   Z)cryptography.hazmat.primitives.asymmetricr   r   r   r   r   r   r'   ÚABCMetar   r/   r6   r   r   r   r   Ú<module>   s    
