o
    ÖèFhi  ã                   @  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   úf/var/www/html/loop/nvenv/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ÿ
ÿ