o
    j                     @  s   d dl mZ d dlZd dlZd dlmZ d dlmZm	Z	 d dl
mZ d dlmZ G dd dejd	ZeZeejj G d
d dejd	ZeZeejj G dd dejd	ZeZeejj ejjZejjZejjZ	ddddZ	ddddZdS )    )annotationsN)openssl)_serializationhashes)utils)Bufferc                   @  s,   e Zd Zejd	ddZejd
ddZdS )DSAParametersreturnDSAPrivateKeyc                 C     dS )z8
        Generates and returns a DSAPrivateKey.
        N selfr   r   s/var/www/html/fyndo/pharma/fyndo/venv/lib/python3.10/site-packages/cryptography/hazmat/primitives/asymmetric/dsa.pygenerate_private_key       z"DSAParameters.generate_private_keyDSAParameterNumbersc                 C  r   )z0
        Returns a DSAParameterNumbers.
        Nr   r   r   r   r   parameter_numbers   r   zDSAParameters.parameter_numbersNr	   r
   )r	   r   )__name__
__module____qualname__abcabstractmethodr   r   r   r   r   r   r      s
    r   )	metaclassc                   @  s   e Zd Zeejd$ddZejd%ddZejd&d	d
Zejd'ddZ	ejd(ddZ
ejd)ddZejd*ddZejd+d!d"Zd#S ),r
   r	   intc                 C  r   z6
        The bit length of the prime modulus.
        Nr   r   r   r   r   key_size#   r   zDSAPrivateKey.key_sizeDSAPublicKeyc                 C  r   )zD
        The DSAPublicKey associated with this private key.
        Nr   r   r   r   r   
public_key*   r   zDSAPrivateKey.public_keyr   c                 C  r   )zL
        The DSAParameters object associated with this private key.
        Nr   r   r   r   r   
parameters0   r   zDSAPrivateKey.parametersdatar   	algorithm+asym_utils.Prehashed | hashes.HashAlgorithmbytesc                 C  r   )z 
        Signs the data
        Nr   )r   r!   r"   r   r   r   sign6   r   zDSAPrivateKey.signDSAPrivateNumbersc                 C  r   )z.
        Returns a DSAPrivateNumbers.
        Nr   r   r   r   r   private_numbers@   r   zDSAPrivateKey.private_numbersencoding_serialization.Encodingformat_serialization.PrivateFormatencryption_algorithm)_serialization.KeySerializationEncryptionc                 C  r   z6
        Returns the key serialized as bytes.
        Nr   )r   r(   r*   r,   r   r   r   private_bytesF   r   zDSAPrivateKey.private_bytesc                 C  r   z!
        Returns a copy.
        Nr   r   r   r   r   __copy__Q   r   zDSAPrivateKey.__copy__memodictc                 C  r   z&
        Returns a deep copy.
        Nr   r   r2   r   r   r   __deepcopy__W   r   zDSAPrivateKey.__deepcopy__Nr	   r   r	   r   r	   r   )r!   r   r"   r#   r	   r$   )r	   r&   )r(   r)   r*   r+   r,   r-   r	   r$   r   )r2   r3   r	   r
   )r   r   r   propertyr   r   r   r   r    r%   r'   r/   r1   r6   r   r   r   r   r
   "   s$    	
r
   c                   @  s   e Zd Zeejd&ddZejd'ddZejd(d	d
Zejd)ddZ	ejd*ddZ
ejd+ddZejd,dd Zejd-d#d$Zd%S ).r   r	   r   c                 C  r   r   r   r   r   r   r   r   c   r   zDSAPublicKey.key_sizer   c                 C  r   )zK
        The DSAParameters object associated with this public key.
        Nr   r   r   r   r   r    j   r   zDSAPublicKey.parametersDSAPublicNumbersc                 C  r   )z-
        Returns a DSAPublicNumbers.
        Nr   r   r   r   r   public_numbersp   r   zDSAPublicKey.public_numbersr(   r)   r*   _serialization.PublicFormatr$   c                 C  r   r.   r   )r   r(   r*   r   r   r   public_bytesv   r   zDSAPublicKey.public_bytes	signaturer   r!   r"   r#   Nonec                 C  r   )z5
        Verifies the signature of the data.
        Nr   )r   r?   r!   r"   r   r   r   verify   r   zDSAPublicKey.verifyotherobjectboolc                 C  r   )z"
        Checks equality.
        Nr   )r   rB   r   r   r   __eq__   r   zDSAPublicKey.__eq__c                 C  r   r0   r   r   r   r   r   r1      r   zDSAPublicKey.__copy__r2   r3   c                 C  r   r4   r   r5   r   r   r   r6      r   zDSAPublicKey.__deepcopy__Nr7   r9   )r	   r;   )r(   r)   r*   r=   r	   r$   )r?   r   r!   r   r"   r#   r	   r@   )rB   rC   r	   rD   r8   )r2   r3   r	   r   )r   r   r   r:   r   r   r   r    r<   r>   rA   rE   r1   r6   r   r   r   r   r   b   s$    	
r   r   r   backend
typing.Anyr	   c                 C  s   | dvrt dtj| S )N)i   i   i   i   z0Key size must be 1024, 2048, 3072, or 4096 bits.)
ValueErrorrust_openssldsagenerate_parameters)r   rF   r   r   r   rK      s   rK   c                 C  s   t | }| S N)rK   r   )r   rF   r    r   r   r   r      s   r   rL   )r   r   rF   rG   r	   r   )r   r   rF   rG   r	   r
   )
__future__r   r   typing"cryptography.hazmat.bindings._rustr   rI   cryptography.hazmat.primitivesr   r   )cryptography.hazmat.primitives.asymmetricr   
asym_utilscryptography.utilsr   ABCMetar   DSAParametersWithNumbersregisterrJ   r
   DSAPrivateKeyWithSerializationr   DSAPublicKeyWithSerializationr&   r;   r   rK   r   r   r   r   r   <module>   s.   <<
