
    @wj^                       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e      Z	 G d d	      Z
 G d
 d      Z G d d      Z G d de      Z G d de      Z G d dej                        Z G d de      Z	 	 	 	 	 	 ddZy)    )annotationsN)hashes)AsymmetricPadding)rsac                      e Zd ZdZddZy)PKCS1v15zEMSA-PKCS1-v1_5c                0    t        |t              st        S y)NT)
isinstancer   NotImplementedselfothers     o/root/dashboard-youtube/.venv/lib/python3.12/site-packages/cryptography/hazmat/primitives/asymmetric/padding.py__eq__zPKCS1v15.__eq__   s    %*!!    Nr   objectreturnbool)__name__
__module____qualname__namer    r   r   r   r      s    Dr   r   c                      e Zd ZdZy)
_MaxLengthz Sentinel value for `MAX_LENGTH`.Nr   r   r   __doc__r   r   r   r   r      s    &r   r   c                      e Zd ZdZy)_AutozSentinel value for `AUTO`.Nr   r   r   r   r    r       s     r   r    c                      e Zd ZdZy)_DigestLengthz#Sentinel value for `DIGEST_LENGTH`.Nr   r   r   r   r"   r"   "   s    )r   r"   c                  t    e Zd ZU  e       Z e       Z e       ZdZ	de
d<   	 	 	 	 	 	 ddZd	dZed
d       Zy)PSSzEMSA-PSS(int | _MaxLength | _Auto | _DigestLength_salt_lengthc                    || _         t        |t        t        t        t
        f      st        d      t        |t              r|dk  rt        d      || _        y )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   mgfsalt_lengths      r   __init__zPSS.__init__-   s[    
 	#z5-@
 ) 
 k3'K!OCDD'r   c                    t        |t              st        S | j                  |j                  k(  xr | j                  |j                  k(  S N)r
   r$   r   r(   r&   r   s     r   r   z
PSS.__eq__A   s?    %%!! II#O(9(9U=O=O(O	
r   c                    | j                   S r0   r(   r   s    r   r,   zPSS.mgfI       yyr   N)r,   MGFr-   r%   r   Noner   r   r5   )r   r   r   r   
MAX_LENGTHr    AUTOr"   DIGEST_LENGTHr   __annotations__r.   r   propertyr,   r   r   r   r$   r$   &   s\    J7D!OMD::(( >( 
	((
  r   r$   c                  P    e Zd ZdZ	 	 	 	 	 	 ddZddZed	d       Zed
d       Zy)OAEPzEME-OAEPc                x    t        |t        j                        st        d      || _        || _        || _        y Nz*Expected instance of hashes.HashAlgorithm.)r
   r   HashAlgorithmr*   r(   
_algorithm_label)r   r,   	algorithmlabels       r   r.   zOAEP.__init__Q   s5     )V%9%9:HII	#r   c                    t        |t              st        S | j                  |j                  k(  xr4 | j                  |j                  k(  xr | j
                  |j
                  k(  S r0   )r
   r>   r   r(   rB   rC   r   s     r   r   zOAEP.__eq__^   sU    %&!! II# ,5#3#33,u||+	
r   c                    | j                   S r0   )rB   r3   s    r   rD   zOAEP.algorithmh   s    r   c                    | j                   S r0   r2   r3   s    r   r,   zOAEP.mgfl   r4   r   N)r,   r5   rD   hashes.HashAlgorithmrE   zbytes | Noner   )r   rI   r7   )	r   r   r   r   r.   r   r<   rD   r,   r   r   r   r>   r>   N   sU    D ( 	
    r   r>   c                      e Zd ZU ded<   y)r5   rI   rB   N)r   r   r   r;   r   r   r   r5   r5   q   s    $$r   r5   )	metaclassc                      e Zd ZddZddZy)MGF1c                \    t        |t        j                        st        d      || _        y r@   )r
   r   rA   r*   rB   )r   rD   s     r   r.   zMGF1.__init__v   s%    )V%9%9:HII#r   c                `    t        |t              st        S | j                  |j                  k(  S r0   )r
   rM   r   rB   r   s     r   r   zMGF1.__eq__|   s'    %&!!%"2"222r   N)rD   rI   r   )r   r   r   r.   r   r   r   r   rM   rM   u   s    $3r   rM   c                    t        | t        j                  t        j                  f      st	        d      | j
                  dz   dz  }||j                  z
  dz
  }|dk\  sJ |S )Nz(key must be an RSA public or private key         r   )r
   r   RSAPrivateKeyRSAPublicKeyr*   key_sizedigest_size)keyhash_algorithmemlenr-   s       r   calculate_max_pss_salt_lengthr[      sg     cC--s/?/?@ABCC\\A!#E.444q8K!r   )rX   z$rsa.RSAPrivateKey | rsa.RSAPublicKeyrY   rI   r   r)   )
__future__r   abccryptography.hazmat.primitivesr   *cryptography.hazmat.primitives._asymmetricr   )cryptography.hazmat.primitives.asymmetricr   r   r   r    r"   r$   r>   ABCMetar5   rM   r[   r   r   r   <module>rb      s   
 # 
 1 :  ' '! !* *%
 %P   F%CKK %33 3
	-
(
 	
r   