U
    ʹhu                     @  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dddZdddddddZdS )    )annotationsN)openssl)_serializationhashes)utils)Bufferc                   @  s4   e Zd ZejddddZejddddZdS )	DSAParametersDSAPrivateKeyreturnc                 C  s   dS )z8
        Generates and returns a DSAPrivateKey.
        N selfr   r   S./venv/lib/python3.8/site-packages/cryptography/hazmat/primitives/asymmetric/dsa.pygenerate_private_key   s    z"DSAParameters.generate_private_keyDSAParameterNumbersc                 C  s   dS )z0
        Returns a DSAParameterNumbers.
        Nr   r   r   r   r   parameter_numbers   s    zDSAParameters.parameter_numbersN)__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dZejddddZejddd	d
ZejddddddZ	ejddddZ
ejdddddddZejd dddZdS )r	   intr
   c                 C  s   dS z6
        The bit length of the prime modulus.
        Nr   r   r   r   r   key_size#   s    zDSAPrivateKey.key_sizeDSAPublicKeyc                 C  s   dS )zD
        The DSAPublicKey associated with this private key.
        Nr   r   r   r   r   
public_key*   s    zDSAPrivateKey.public_keyr   c                 C  s   dS )zL
        The DSAParameters object associated with this private key.
        Nr   r   r   r   r   
parameters0   s    zDSAPrivateKey.parametersr   +asym_utils.Prehashed | hashes.HashAlgorithmbytes)data	algorithmr   c                 C  s   dS )z 
        Signs the data
        Nr   )r   r!   r"   r   r   r   sign6   s    zDSAPrivateKey.signDSAPrivateNumbersc                 C  s   dS )z.
        Returns a DSAPrivateNumbers.
        Nr   r   r   r   r   private_numbers@   s    zDSAPrivateKey.private_numbers_serialization.Encodingz_serialization.PrivateFormatz)_serialization.KeySerializationEncryption)encodingformatencryption_algorithmr   c                 C  s   dS z6
        Returns the key serialized as bytes.
        Nr   )r   r'   r(   r)   r   r   r   private_bytesF   s    zDSAPrivateKey.private_bytesc                 C  s   dS z!
        Returns a copy.
        Nr   r   r   r   r   __copy__Q   s    zDSAPrivateKey.__copy__N)r   r   r   propertyr   r   r   r   r   r#   r%   r+   r-   r   r   r   r   r	   "   s   	
r	   c                   @  s   e Zd ZeejddddZejddddZejddd	d
ZejddddddZ	ejdddddddZ
ejdddddZejd dddZdS )r   r   r
   c                 C  s   dS r   r   r   r   r   r   r   ]   s    zDSAPublicKey.key_sizer   c                 C  s   dS )zK
        The DSAParameters object associated with this public key.
        Nr   r   r   r   r   r   d   s    zDSAPublicKey.parametersDSAPublicNumbersc                 C  s   dS )z-
        Returns a DSAPublicNumbers.
        Nr   r   r   r   r   public_numbersj   s    zDSAPublicKey.public_numbersr&   z_serialization.PublicFormatr    )r'   r(   r   c                 C  s   dS r*   r   )r   r'   r(   r   r   r   public_bytesp   s    zDSAPublicKey.public_bytesr   r   None)	signaturer!   r"   r   c                 C  s   dS )z5
        Verifies the signature of the data.
        Nr   )r   r3   r!   r"   r   r   r   verifyz   s    zDSAPublicKey.verifyobjectbool)otherr   c                 C  s   dS )z"
        Checks equality.
        Nr   )r   r7   r   r   r   __eq__   s    zDSAPublicKey.__eq__c                 C  s   dS r,   r   r   r   r   r   r-      s    zDSAPublicKey.__copy__N)r   r   r   r.   r   r   r   r   r0   r1   r4   r8   r-   r   r   r   r   r   \   s   	
r   r   z
typing.Any)r   backendr   c                 C  s   | dk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   r9   r   r   r   r=      s    r=   c                 C  s   t | }| S )N)r=   r   )r   r9   r   r   r   r   r      s    r   )N)N)Z
__future__r   r   typingZ"cryptography.hazmat.bindings._rustr   r;   Zcryptography.hazmat.primitivesr   r   Z)cryptography.hazmat.primitives.asymmetricr   Z
asym_utilsZcryptography.utilsr   ABCMetar   ZDSAParametersWithNumbersregisterr<   r	   ZDSAPrivateKeyWithSerializationr   ZDSAPublicKeyWithSerializationr$   r/   r   r=   r   r   r   r   r   <module>   s,   66 
 