
    .Phu                       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ej        	          ZeZe                    ej        j                    G d
 dej        	          ZeZe                    ej        j                    G d dej        	          ZeZe                    ej        j                   ej        j        Zej        j        Zej        j        Z	 dddZ	 dddZdS )    )annotationsN)openssl)_serializationhashes)utils)Bufferc                  R    e Zd Zej        dd            Zej        dd            ZdS )	DSAParametersreturnDSAPrivateKeyc                    dS )z8
        Generates and returns a DSAPrivateKey.
        N selfs    m/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/cryptography/hazmat/primitives/asymmetric/dsa.pygenerate_private_keyz"DSAParameters.generate_private_key             DSAParameterNumbersc                    dS )z0
        Returns a DSAParameterNumbers.
        Nr   r   s    r   parameter_numberszDSAParameters.parameter_numbers   r   r   Nr   r   )r   r   )__name__
__module____qualname__abcabstractmethodr   r   r   r   r   r
   r
      sZ           
 	     r   r
   )	metaclassc                     e Zd Zeej        dd                        Zej        dd            Zej        dd            Zej        dd            Z	ej        dd            Z
ej        dd            Zej        dd            ZdS ) r   r   intc                    dS z6
        The bit length of the prime modulus.
        Nr   r   s    r   key_sizezDSAPrivateKey.key_size#   r   r   DSAPublicKeyc                    dS )zD
        The DSAPublicKey associated with this private key.
        Nr   r   s    r   
public_keyzDSAPrivateKey.public_key*   r   r   r
   c                    dS )zL
        The DSAParameters object associated with this private key.
        Nr   r   s    r   
parameterszDSAPrivateKey.parameters0   r   r   datar   	algorithm+asym_utils.Prehashed | hashes.HashAlgorithmbytesc                    dS )z 
        Signs the data
        Nr   )r   r)   r*   s      r   signzDSAPrivateKey.sign6   r   r   DSAPrivateNumbersc                    dS )z.
        Returns a DSAPrivateNumbers.
        Nr   r   s    r   private_numberszDSAPrivateKey.private_numbers@   r   r   encoding_serialization.Encodingformat_serialization.PrivateFormatencryption_algorithm)_serialization.KeySerializationEncryptionc                    dS z6
        Returns the key serialized as bytes.
        Nr   )r   r2   r4   r6   s       r   private_byteszDSAPrivateKey.private_bytesF   r   r   c                    dS z!
        Returns a copy.
        Nr   r   s    r   __copy__zDSAPrivateKey.__copy__Q   r   r   Nr   r    r   r$   r   r
   )r)   r   r*   r+   r   r,   )r   r/   )r2   r3   r4   r5   r6   r7   r   r,   r   )r   r   r   propertyr   r   r#   r&   r(   r.   r1   r:   r=   r   r   r   r   r   "   s           X
 	   
 	   
 	    	   
 	    	     r   r   c                     e Zd Zeej        dd                        Zej        dd            Zej        dd            Zej        dd            Z	ej        dd            Z
ej        d d            Zej        d!d            ZdS )"r$   r   r    c                    dS r"   r   r   s    r   r#   zDSAPublicKey.key_size]   r   r   r
   c                    dS )zK
        The DSAParameters object associated with this public key.
        Nr   r   s    r   r(   zDSAPublicKey.parametersd   r   r   DSAPublicNumbersc                    dS )z-
        Returns a DSAPublicNumbers.
        Nr   r   s    r   public_numberszDSAPublicKey.public_numbersj   r   r   r2   r3   r4   _serialization.PublicFormatr,   c                    dS r9   r   )r   r2   r4   s      r   public_byteszDSAPublicKey.public_bytesp   r   r   	signaturer   r)   r*   r+   Nonec                    dS )z5
        Verifies the signature of the data.
        Nr   )r   rK   r)   r*   s       r   verifyzDSAPublicKey.verifyz   r   r   otherobjectboolc                    dS )z"
        Checks equality.
        Nr   )r   rO   s     r   __eq__zDSAPublicKey.__eq__   r   r   c                    dS r<   r   r   s    r   r=   zDSAPublicKey.__copy__   r   r   Nr>   r@   )r   rE   )r2   r3   r4   rH   r   r,   )rK   r   r)   r   r*   r+   r   rL   )rO   rP   r   rQ   r?   )r   r   r   rA   r   r   r#   r(   rG   rJ   rN   rS   r=   r   r   r   r$   r$   \   s           X
 	   
 	   
 	    	    	   
 	     r   r$   r#   r    backend
typing.Anyr   c                f    | 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#   rU   s     r   r[   r[      s6     ///KLLL//999r   c                H    t          |           }|                                S N)r[   r   )r#   rU   r(   s      r   r   r      s#     %X..J**,,,r   r]   )r#   r    rU   rV   r   r
   )r#   r    rU   rV   r   r   )
__future__r   r   typing"cryptography.hazmat.bindings._rustr   rY   cryptography.hazmat.primitivesr   r   )cryptography.hazmat.primitives.asymmetricr   
asym_utilscryptography.utilsr   ABCMetar
   DSAParametersWithNumbersregisterrZ   r   DSAPrivateKeyWithSerializationr$   DSAPublicKeyWithSerializationr/   rE   r   r[   r   r   r   r   <module>rj      s  
 # " " " " " 



  F F F F F F A A A A A A A A I I I I I I % % % % % %    ck     )    |'5 6 6 63 3 3 3 3ck 3 3 3 3l "/    |'5 6 6 63 3 3 3 3S[ 3 3 3 3l !-    l&3 4 4 4 $6 #4 "&:  *.: : : : : *.- - - - - - -r   