o
    "“i  ã                   @  sÜ   d dl mZ d dlZd dlmZ d dlmZ G dd„ dejƒZG dd„ dejƒZ	G d	d
„ d
ejƒZ
G dd„ dejƒZG dd„ dejƒZG dd„ dejd�ZG dd„ deƒZG dd„ deƒZG dd„ dƒZG dd„ deƒZdS )é    )ÚannotationsN)Úutils)ÚHashAlgorithmc                   @  s   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© r   r   úm/var/www/html/premium_crap/venv/lib/python3.10/site-packages/cryptography/hazmat/primitives/_serialization.pyr      s    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      ó    r   c                   @  s*   e Zd ZdZdZdZdZdZddd	„Zd
S )ÚPrivateFormatÚPKCS8ÚTraditionalOpenSSLr   r   ÚPKCS12ÚreturnÚ!KeySerializationEncryptionBuilderc                 C  s    | 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   )Úselfr   r   r   Úencryption_builder%   s
   ÿz PrivateFormat.encryption_builderN)r   r   )	r   r   r   r   r   r   r   r   r   r   r   r   r   r      s    r   c                   @  r   )Ú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   .   r   r   c                   @  s   e Zd ZdZdS )ÚParameterFormatÚPKCS3N)r   r   r   r%   r   r   r   r   r$   7   s    r$   c                   @  ó   e Zd ZdS )ÚKeySerializationEncryptionN©r   r   r   r   r   r   r   r'   ;   ó    r'   )Ú	metaclassc                   @  s   e Zd Zddd„ZdS )ÚBestAvailableEncryptionÚpasswordÚbytesc                 C  s(   t |tƒrt|ƒdkrtdƒ‚|| _d S )Nr   ú!Password must be 1 or more bytes.)Ú
isinstancer-   Úlenr   r,   ©r   r,   r   r   r   Ú__init__@   s   
z BestAvailableEncryption.__init__N)r,   r-   ©r   r   r   r2   r   r   r   r   r+   ?   ó    r+   c                   @  r&   )ÚNoEncryptionNr(   r   r   r   r   r5   G   r)   r5   c                   @  sH   e Zd Zddddœddd„Zd dd„Zd!dd„Zd"dd„Zd#dd„ZdS )$r   N©Ú_kdf_roundsÚ
_hmac_hashÚ_key_cert_algorithmÚformatr   r7   ú
int | Noner8   úHashAlgorithm | Noner9   úPBES | Noner   ÚNonec                C  s   || _ || _|| _|| _d S ©N)Ú_formatr7   r8   r9   )r   r:   r7   r8   r9   r   r   r   r2   L   s   
z*KeySerializationEncryptionBuilder.__init__ÚroundsÚintc                 C  sJ   | j d ur	tdƒ‚t|tƒstdƒ‚|dk rtdƒ‚t| j|| j| jd�S )Nzkdf_rounds already setzkdf_rounds must be an integeré   z%kdf_rounds must be a positive integerr6   )	r7   r   r/   rB   Ú	TypeErrorr   r@   r8   r9   )r   rA   r   r   r   Ú
kdf_roundsZ   s   

üz,KeySerializationEncryptionBuilder.kdf_roundsÚ	algorithmr   c                 C  s<   | j tjur
tdƒ‚| jd urtdƒ‚t| j | j|| jd�S )Nz2hmac_hash only supported with PrivateFormat.PKCS12zhmac_hash already setr6   )	r@   r   r   rD   r8   r   r   r7   r9   ©r   rF   r   r   r   Ú	hmac_hashk   s   ÿ
üz+KeySerializationEncryptionBuilder.hmac_hashr   c                 C  s<   | j tjur
tdƒ‚| jd urtdƒ‚t| j | j| j|d�S )Nz;key_cert_algorithm only supported with PrivateFormat.PKCS12zkey_cert_algorithm already setr6   )	r@   r   r   rD   r9   r   r   r7   r8   rG   r   r   r   Úkey_cert_algorithm|   s   ÿ
üz4KeySerializationEncryptionBuilder.key_cert_algorithmr,   r-   r'   c                 C  s8   t |tƒrt|ƒdkrtdƒ‚t| j|| j| j| jd�S )Nr   r.   )rE   rH   rI   )	r/   r-   r0   r   Ú_KeySerializationEncryptionr@   r7   r8   r9   r1   r   r   r   ÚbuildŒ   s   ûz'KeySerializationEncryptionBuilder.build)
r:   r   r7   r;   r8   r<   r9   r=   r   r>   )rA   rB   r   r   )rF   r   r   r   )rF   r   r   r   )r,   r-   r   r'   )r   r   r   r2   rE   rH   rI   rK   r   r   r   r   r   K   s    ú


r   c                   @  s   e Zd Zddd„ZdS )rJ   r:   r   r,   r-   rE   r;   rH   r<   rI   r=   c                C  s"   || _ || _|| _|| _|| _d S r?   )r@   r,   r7   r8   r9   )r   r:   r,   rE   rH   rI   r   r   r   r2   š   s
   	
z$_KeySerializationEncryption.__init__N)
r:   r   r,   r-   rE   r;   rH   r<   rI   r=   r3   r   r   r   r   rJ   ™   r4   rJ   )Ú
__future__r   ÚabcÚcryptographyr   Ú%cryptography.hazmat.primitives.hashesr   ÚEnumr   r   r   r   r$   ÚABCMetar'   r+   r5   r   rJ   r   r   r   r   Ú<module>   s   		N