
     hD                        d dl Z d dlZd dlmZ d dlmZ  G d dej                  Z G d dej                  Z G d d	ej                  Z	 G d
 dej                  Z
 G d dej                  Z G d de j                  Z G d de          Z G d de          Z G d d          Z G d de          ZdS )    N)utils)HashAlgorithmc                       e Zd ZdZdZdS )PBESz%PBESv1 using SHA1 and 3-Key TripleDESz)PBESv2 using SHA256 PBKDF2 and AES256 CBCN)__name__
__module____qualname__PBESv1SHA1And3KeyTripleDESCBCPBESv2SHA256AndAES256CBC     i/var/www/html/Sam_Eipo/venv/lib/python3.11/site-packages/cryptography/hazmat/primitives/_serialization.pyr   r      s        $K!Jr   r   c                   &    e Zd ZdZdZdZdZdZdZdS )EncodingPEMDEROpenSSHRawz
ANSI X9.62zS/MIMEN)	r   r   r	   r   r   r   r   X962SMIMEr   r   r   r   r      s,        
C
CG
CDEEEr   r   c                   *    e Zd ZdZdZdZdZdZd
dZd	S )PrivateFormatPKCS8TraditionalOpenSSLr   r   PKCS12return!KeySerializationEncryptionBuilderc                 r    | t           j        t           j        fvrt          d          t	          |           S )NzUencryption_builder only supported with PrivateFormat.OpenSSH and PrivateFormat.PKCS12)r   r   r   
ValueErrorr   )selfs    r   encryption_builderz PrivateFormat.encryption_builder$   s?    -}/CDDD,   1666r   N)r   r   )	r   r   r	   r   r   r   r   r   r!   r   r   r   r   r      sB        E-
CGF7 7 7 7 7 7r   r   c                   &    e Zd ZdZdZdZdZdZdZdS )PublicFormatz&X.509 subjectPublicKeyInfo with PKCS#1z
Raw PKCS#1r   r   zX9.62 Compressed PointzX9.62 Uncompressed PointN)	r   r   r	   SubjectPublicKeyInfoPKCS1r   r   CompressedPointUncompressedPointr   r   r   r#   r#   -   s0        CEG
C.O2r   r#   c                       e Zd ZdZdS )ParameterFormatPKCS3N)r   r   r	   r*   r   r   r   r)   r)   6   s        EEEr   r)   c                       e Zd ZdS )KeySerializationEncryptionNr   r   r	   r   r   r   r,   r,   :           Dr   r,   )	metaclassc                       e Zd ZdefdZdS )BestAvailableEncryptionpasswordc                     t          |t                    rt          |          dk    rt          d          || _        d S )Nr   !Password must be 1 or more bytes.)
isinstancebyteslenr   r2   r    r2   s     r   __init__z BestAvailableEncryption.__init__?   s?    (E** 	Bc(mmq.@.@@AAA r   N)r   r   r	   r6   r9   r   r   r   r1   r1   >   s/        ! ! ! ! ! ! !r   r1   c                       e Zd ZdS )NoEncryptionNr-   r   r   r   r;   r;   F   r.   r   r;   c                       e Zd Zdddddedej        e         dej        e         dej        e         ddf
dZ	d	edd fd
Z
dedd fdZdedd fdZdedefdZdS )r   N_kdf_rounds
_hmac_hash_key_cert_algorithmformatr>   r?   r@   r   c                >    || _         || _        || _        || _        d S N)_formatr>   r?   r@   )r    rA   r>   r?   r@   s        r   r9   z*KeySerializationEncryptionBuilder.__init__K   s(     &$#6   r   roundsc                     | j         t          d          t          |t                    st	          d          |dk     rt          d          t          | j        || j        | j                  S )Nzkdf_rounds already setzkdf_rounds must be an integer   z%kdf_rounds must be a positive integerr=   )	r>   r   r5   int	TypeErrorr   rD   r?   r@   )r    rE   s     r   
kdf_roundsz,KeySerializationEncryptionBuilder.kdf_roundsY   s}    '5666&#&& 	=;<<<A::DEEE0L $ 8	
 
 
 	
r   	algorithmc                     | j         t          j        urt          d          | j        t          d          t          | j         | j        || j                  S )Nz2hmac_hash only supported with PrivateFormat.PKCS12zhmac_hash already setr=   )	rD   r   r   rI   r?   r   r   r>   r@   r    rK   s     r   	hmac_hashz+KeySerializationEncryptionBuilder.hmac_hashj   sm     <}333D   ?&45550L(  $ 8	
 
 
 	
r   c                     | j         t          j        urt          d          | j        t          d          t          | j         | j        | j        |          S )Nz;key_cert_algorithm only supported with PrivateFormat.PKCS12zkey_cert_algorithm already setr=   )	rD   r   r   rI   r@   r   r   r>   r?   rM   s     r   key_cert_algorithmz4KeySerializationEncryptionBuilder.key_cert_algorithm{   so     <}333'   #/=>>>0L( )	
 
 
 	
r   r2   c                     t          |t                    rt          |          dk    rt          d          t	          | j        || j        | j        | j                  S )Nr   r4   )rJ   rN   rP   )	r5   r6   r7   r   _KeySerializationEncryptionrD   r>   r?   r@   r8   s     r   buildz'KeySerializationEncryptionBuilder.build   sd    (E** 	Bc(mmq.@.@@AAA*L'o#7
 
 
 	
r   )r   r   r	   r   typingOptionalrH   r   r   r9   rJ   rN   rP   r6   r,   rS   r   r   r   r   r   J   s       
 -159597 7 77 _S)	7
 OM27 $_T27 
7 7 7 7
 
)L 
 
 
 
"
&
	,
 
 
 
"

	,
 
 
 
"

e 

(B 

 

 

 

 

 

r   r   c                   l    e Zd Zdededej        e         dej        e         dej        e	         f
dZ
dS )rR   rA   r2   rJ   rN   rP   c                L    || _         || _        || _        || _        || _        d S rC   )rD   r2   r>   r?   r@   )r    rA   r2   rJ   rN   rP   s         r   r9   z$_KeySerializationEncryption.__init__   s/      %##5   r   N)r   r   r	   r   r6   rT   rU   rH   r   r   r9   r   r   r   rR   rR      sm        66 6
 OC(6 ?=16 #OD16 6 6 6 6 6r   rR   )abcrT   cryptographyr   %cryptography.hazmat.primitives.hashesr   Enumr   r   r   r#   r)   ABCMetar,   r1   r;   r   rR   r   r   r   <module>r]      s  
 


        ? ? ? ? ? ?K K K K K5: K K K
    uz   7 7 7 7 7EJ 7 7 7 3 3 3 3 35: 3 3 3    ej   	 	 	 	 	3; 	 	 	 	! ! ! ! !8 ! ! !	 	 	 	 	- 	 	 	L
 L
 L
 L
 L
 L
 L
 L
^6 6 6 6 6"< 6 6 6 6 6r   