o
    Vhi                     @  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 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)utilsc                   @  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   /var/www/html/construction_image-detection-poc/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                   @  sp   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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   
parameters/   r   zDSAPrivateKey.parametersdatabytes	algorithm+asym_utils.Prehashed | hashes.HashAlgorithmc                 C  r
   )z 
        Signs the data
        Nr   )r   r   r!   r   r   r   sign5   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_bytesE   r   zDSAPrivateKey.private_bytesNr   r   )r   r   r   r   )r   r    r!   r"   r   r    )r   r$   )r&   r'   r(   r)   r*   r+   r   r    )r   r   r   propertyr   r   r   r   r   r#   r%   r-   r   r   r   r   r	   !   s    	r	   c                   @  sp   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dS )%r   r   r   c                 C  r
   r   r   r   r   r   r   r   V   r   zDSAPublicKey.key_sizer   c                 C  r
   )zK
        The DSAParameters object associated with this public key.
        Nr   r   r   r   r   r   ]   r   zDSAPublicKey.parametersDSAPublicNumbersc                 C  r
   )z-
        Returns a DSAPublicNumbers.
        Nr   r   r   r   r   public_numbersc   r   zDSAPublicKey.public_numbersr&   r'   r(   _serialization.PublicFormatr    c                 C  r
   r,   r   )r   r&   r(   r   r   r   public_bytesi   r   zDSAPublicKey.public_bytes	signaturer   r!   r"   Nonec                 C  r
   )z5
        Verifies the signature of the data.
        Nr   )r   r5   r   r!   r   r   r   verifys   r   zDSAPublicKey.verifyotherobjectboolc                 C  r
   )z"
        Checks equality.
        Nr   )r   r8   r   r   r   __eq__~   r   zDSAPublicKey.__eq__Nr.   r/   )r   r1   )r&   r'   r(   r3   r   r    )r5   r    r   r    r!   r"   r   r6   )r8   r9   r   r:   )r   r   r   r0   r   r   r   r   r2   r4   r7   r;   r   r   r   r   r   U   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   r<   r   r   r   rA      s   rA   c                 C  s   t | }| S N)rA   r   )r   r<   r   r   r   r   r      s   r   rB   )r   r   r<   r=   r   r   )r   r   r<   r=   r   r	   )
__future__r   r   typing"cryptography.hazmat.bindings._rustr   r?   cryptography.hazmat.primitivesr   r   )cryptography.hazmat.primitives.asymmetricr   
asym_utilsABCMetar   DSAParametersWithNumbersregisterr@   r	   DSAPrivateKeyWithSerializationr   DSAPublicKeyWithSerializationr$   r1   r   rA   r   r   r   r   r   <module>   s,   00
