o
    àý°j‚  ã                   @  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   ú /root/aizidognhua/tmp/workspace/projects/ec89d86c-575f-41c9-af57-ac45cbdbf775/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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__ÚmemoÚdictc                 C  r   ©z&
        Returns a deep copy.
        Nr   ©r   r2   r   r   r   Ú__deepcopy__W   r   zDSAPrivateKey.__deepcopy__N©r	   r   ©r	   r   ©r	   r   )r!   r   r"   r#   r	   r$   )r	   r&   )r(   r)   r*   r+   r,   r-   r	   r$   r   )r2   r3   r	   r
   )r   r   r   Úpropertyr   r   r   r   r    r%   r'   r/   r1   r6   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ejd-d#d$„ƒZd%S ).r   r	   r   c                 C  r   r   r   r   r   r   r   r   c   r   zDSAPublicKey.key_sizer   c                 C  r   )zK
        The DSAParameters object associated with this public key.
        Nr   r   r   r   r   r    j   r   zDSAPublicKey.parametersÚDSAPublicNumbersc                 C  r   )z-
        Returns a DSAPublicNumbers.
        Nr   r   r   r   r   Úpublic_numbersp   r   zDSAPublicKey.public_numbersr(   r)   r*   ú_serialization.PublicFormatr$   c                 C  r   r.   r   )r   r(   r*   r   r   r   Úpublic_bytesv   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   Úverify€   r   zDSAPublicKey.verifyÚotherÚobjectÚboolc                 C  r   )z"
        Checks equality.
        Nr   )r   rB   r   r   r   Ú__eq__‹   r   zDSAPublicKey.__eq__c                 C  r   r0   r   r   r   r   r   r1   ‘   r   zDSAPublicKey.__copy__r2   r3   c                 C  r   r4   r   r5   r   r   r   r6   —   r   zDSAPublicKey.__deepcopy__Nr7   r9   )r	   r;   )r(   r)   r*   r=   r	   r$   )r?   r   r!   r   r"   r#   r	   r@   )rB   rC   r	   rD   r8   )r2   r3   r	   r   )r   r   r   r:   r   r   r   r    r<   r>   rA   rE   r1   r6   r   r   r   r   r   b   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   rF   r   r   r   rK   ¦   s   rK   c                 C  s   t | ƒ}| ¡ S ©N)rK   r   )r   rF   r    r   r   r   r   ¯   s   r   rL   )r   r   rF   rG   r	   r   )r   r   rF   rG   r	   r
   )Ú
__future__r   r   ÚtypingÚ"cryptography.hazmat.bindings._rustr   rI   Úcryptography.hazmat.primitivesr   r   Ú)cryptography.hazmat.primitives.asymmetricr   Ú
asym_utilsÚcryptography.utilsr   ÚABCMetar   ÚDSAParametersWithNumbersÚregisterrJ   r
   ÚDSAPrivateKeyWithSerializationr   ÚDSAPublicKeyWithSerializationr&   r;   r   rK   r   r   r   r   r   Ú<module>   s.   <<ÿ
ÿ