o
    jX                     @  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 d dlmZ d dlm	Z	 d dl
m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)Encoding)ParameterFormat)PrivateFormat)PublicFormat)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   s/var/www/html/fyndo/pharma/fyndo/venv/lib/python3.10/site-packages/cryptography/hazmat/primitives/_serialization.pyr	      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   len
ValueErrorr   selfr   r   r   r   __init__    s   
z BestAvailableEncryption.__init__N)r   r   r
   r   r   r   r   r   r   r   r          r   c                   @  r   )NoEncryptionNr   r   r   r   r   r"   '   r   r"   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 )$!KeySerializationEncryptionBuilderN_kdf_rounds
_hmac_hash_key_cert_algorithmformatr   r%   
int | Noner&   HashAlgorithm | Noner'   PBES | NonereturnNonec                C  s   || _ || _|| _|| _d S N)_formatr%   r&   r'   )r   r(   r%   r&   r'   r   r   r   r   ,   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 integerr$   )	r%   r   r   r1   	TypeErrorr#   r/   r&   r'   )r   r0   r   r   r   
kdf_rounds:   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 setr$   )	r/   r   PKCS12r3   r&   r   r#   r%   r'   r   r5   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 setr$   )	r/   r   r6   r3   r'   r   r#   r%   r&   r7   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   )r4   r8   r9   )	r   r   r   r   _KeySerializationEncryptionr/   r%   r&   r'   r   r   r   r   buildl   s   z'KeySerializationEncryptionBuilder.build)
r(   r   r%   r)   r&   r*   r'   r+   r,   r-   )r0   r1   r,   r#   )r5   r   r,   r#   )r5   r	   r,   r#   )r   r   r,   r   )r
   r   r   r   r4   r8   r9   r;   r   r   r   r   r#   +   s    


r#   c                   @  s   e Zd ZdddZdS )r:   r(   r   r   r   r4   r)   r8   r*   r9   r+   c                C  s"   || _ || _|| _|| _|| _d S r.   )r/   r   r%   r&   r'   )r   r(   r   r4   r8   r9   r   r   r   r   z   s
   	
z$_KeySerializationEncryption.__init__N)
r(   r   r   r   r4   r)   r8   r*   r9   r+   r    r   r   r   r   r:   y   r!   r:   )
__future__r   abccryptographyr   "cryptography.hazmat.bindings._rustr   r   r   r   %cryptography.hazmat.primitives.hashesr   Enumr	   ABCMetar   r   r"   r#   r:   r   r   r   r   <module>   s   N