
    .Ph                       d dl m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 )    )annotationsN)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     m/var/www/html/test/jupyter/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*   7   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dZdS )BestAvailableEncryptionpasswordbytesc                    t          |t                    rt          |          dk    rt          d          || _        d S )Nr   !Password must be 1 or more bytes.)
isinstancer4   lenr    r3   r!   r3   s     r   __init__z BestAvailableEncryption.__init__@   s?    (E** 	Bc(mmq.@.@@AAA r   N)r3   r4   r   r	   r
   r:   r   r   r   r2   r2   ?   s(        ! ! ! ! ! !r   r2   c                      e Zd ZdS )NoEncryptionNr.   r   r   r   r=   r=   G   r/   r   r=   c                  @    e Zd ZddddddZddZddZddZddZdS )r   N_kdf_rounds
_hmac_hash_key_cert_algorithmformatr   r@   
int | NonerA   HashAlgorithm | NonerB   PBES | Noner   Nonec               >    || _         || _        || _        || _        d S N)_formatr@   rA   rB   )r!   rC   r@   rA   rB   s        r   r:   z*KeySerializationEncryptionBuilder.__init__L   s(     &$#6   r   roundsintc                    | 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    r7   rL   	TypeErrorr   rJ   rA   rB   )r!   rK   s     r   
kdf_roundsz,KeySerializationEncryptionBuilder.kdf_roundsZ   s}    '5666&#&& 	=;<<<A::DEEE0L $ 8	
 
 
 	
r   	algorithmr   c                    | 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?   )	rJ   r   r   rO   rA   r    r   r@   rB   r!   rQ   s     r   	hmac_hashz+KeySerializationEncryptionBuilder.hmac_hashk   sm     <}333D   ?&45550L(  $ 8	
 
 
 	
r   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?   )	rJ   r   r   rO   rB   r    r   r@   rA   rS   s     r   key_cert_algorithmz4KeySerializationEncryptionBuilder.key_cert_algorithm|   sm     <}333M   #/=>>>0L( )	
 
 
 	
r   r3   r4   r-   c                    t          |t                    rt          |          dk    rt          d          t	          | j        || j        | j        | j                  S )Nr   r6   )rP   rT   rV   )	r7   r4   r8   r    _KeySerializationEncryptionrJ   r@   rA   rB   r9   s     r   buildz'KeySerializationEncryptionBuilder.build   sd    (E** 	Bc(mmq.@.@@AAA*L'o#7
 
 
 	
r   )
rC   r   r@   rD   rA   rE   rB   rF   r   rG   )rK   rL   r   r   )rQ   r   r   r   )rQ   r   r   r   )r3   r4   r   r-   )r   r	   r
   r:   rP   rT   rV   rY   r   r   r   r   r   K   s        
 #'+/+/7 7 7 7 7 7
 
 
 
"
 
 
 
"
 
 
 
 

 

 

 

 

 

r   r   c                      e Zd ZddZdS )rX   rC   r   r3   r4   rP   rD   rT   rE   rV   rF   c               L    || _         || _        || _        || _        || _        d S rI   )rJ   r3   r@   rA   rB   )r!   rC   r3   rP   rT   rV   s         r   r:   z$_KeySerializationEncryption.__init__   s/      %##5   r   N)
rC   r   r3   r4   rP   rD   rT   rE   rV   rF   r;   r   r   r   rX   rX      s(        6 6 6 6 6 6r   rX   )
__future__r   abccryptographyr   %cryptography.hazmat.primitives.hashesr   Enumr   r   r   r$   r*   ABCMetar-   r2   r=   r   rX   r   r   r   <module>rb      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 ! ! !	 	 	 	 	- 	 	 	K
 K
 K
 K
 K
 K
 K
 K
\6 6 6 6 6"< 6 6 6 6 6r   