o
    "“iu  ã                   @  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   úm/var/www/html/premium_crap/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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__N©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   r   Úpropertyr   r   r   r   r    r%   r'   r/   r1   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d!S ))r   r	   r   c                 C  r   r   r   r   r   r   r   r   ]   r   zDSAPublicKey.key_sizer   c                 C  r   )zK
        The DSAParameters object associated with this public key.
        Nr   r   r   r   r   r    d   r   zDSAPublicKey.parametersÚDSAPublicNumbersc                 C  r   )z-
        Returns a DSAPublicNumbers.
        Nr   r   r   r   r   Úpublic_numbersj   r   zDSAPublicKey.public_numbersr(   r)   r*   ú_serialization.PublicFormatr$   c                 C  r   r.   r   )r   r(   r*   r   r   r   Úpublic_bytesp   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   Úverifyz   r   zDSAPublicKey.verifyÚotherÚobjectÚboolc                 C  r   )z"
        Checks equality.
        Nr   )r   r=   r   r   r   Ú__eq__…   r   zDSAPublicKey.__eq__c                 C  r   r0   r   r   r   r   r   r1   ‹   r   zDSAPublicKey.__copy__Nr2   r4   )r	   r6   )r(   r)   r*   r8   r	   r$   )r:   r   r!   r   r"   r#   r	   r;   )r=   r>   r	   r?   r3   )r   r   r   r5   r   r   r   r    r7   r9   r<   r@   r1   r   r   r   r   r   \   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   rA   r   r   r   rF   š   s   rF   c                 C  s   t | ƒ}| ¡ S ©N)rF   r   )r   rA   r    r   r   r   r   £   s   r   rG   )r   r   rA   rB   r	   r   )r   r   rA   rB   r	   r
   )Ú
__future__r   r   ÚtypingÚ"cryptography.hazmat.bindings._rustr   rD   Úcryptography.hazmat.primitivesr   r   Ú)cryptography.hazmat.primitives.asymmetricr   Ú
asym_utilsÚcryptography.utilsr   ÚABCMetar   ÚDSAParametersWithNumbersÚregisterrE   r
   ÚDSAPrivateKeyWithSerializationr   ÚDSAPublicKeyWithSerializationr&   r6   r   rF   r   r   r   r   r   Ú<module>   s.   66ÿ
ÿ