o
    àý°j¡  ã                   @  s¶  d dl mZ d dlZd dlmZ d dlmZ d dlm	Z	 dZ
ejjZejjZejjZejj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ZeZejeee
ejdd� ejeee
ejdd� ejeee
ejdd� ejeee
ejdd� ejeee
ejdd� ejeee
ejdd� ejeee
ejdd� ejeee
ejdd� ejeee
ejdd� ejeee
ejdd� dS )é    )ÚannotationsN)Úutils)Úopenssl)Ú_serializationz‘Diffie-Hellman over finite fields (FFDH) is deprecated and support will be removed in a future release. Use a more modern key exchange algorithm.c                   @  s<   e Zd Zejddd„ƒZejdd
d„ƒZejddd„ƒZdS )ÚDHParametersÚreturnÚDHPrivateKeyc                 C  ó   dS )z7
        Generates and returns a DHPrivateKey.
        N© ©Úselfr
   r
   úŸ/root/aizidognhua/tmp/workspace/projects/ec89d86c-575f-41c9-af57-ac45cbdbf775/venv/lib/python3.10/site-packages/cryptography/hazmat/primitives/asymmetric/dh.pyÚgenerate_private_key   ó    z!DHParameters.generate_private_keyÚencodingú_serialization.EncodingÚformatú_serialization.ParameterFormatÚbytesc                 C  r	   )z=
        Returns the parameters serialized as bytes.
        Nr
   ©r   r   r   r
   r
   r   Úparameter_bytes"   r   zDHParameters.parameter_bytesÚDHParameterNumbersc                 C  r	   )z/
        Returns a DHParameterNumbers.
        Nr
   r   r
   r
   r   Úparameter_numbers,   r   zDHParameters.parameter_numbersN©r   r   )r   r   r   r   r   r   )r   r   )Ú__name__Ú
__module__Ú__qualname__ÚabcÚabstractmethodr   r   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 )%ÚDHPublicKeyr   Úintc                 C  r	   ©z6
        The bit length of the prime modulus.
        Nr
   r   r
   r
   r   Úkey_size8   r   zDHPublicKey.key_sizer   c                 C  r	   )zJ
        The DHParameters object associated with this public key.
        Nr
   r   r
   r
   r   Ú
parameters?   r   zDHPublicKey.parametersÚDHPublicNumbersc                 C  r	   )z,
        Returns a DHPublicNumbers.
        Nr
   r   r
   r
   r   Úpublic_numbersE   r   zDHPublicKey.public_numbersr   r   r   ú_serialization.PublicFormatr   c                 C  r	   ©z6
        Returns the key serialized as bytes.
        Nr
   r   r
   r
   r   Úpublic_bytesK   r   zDHPublicKey.public_bytesÚotherÚobjectÚboolc                 C  r	   )z"
        Checks equality.
        Nr
   )r   r*   r
   r
   r   Ú__eq__U   r   zDHPublicKey.__eq__c                 C  r	   ©z!
        Returns a copy.
        Nr
   r   r
   r
   r   Ú__copy__[   r   zDHPublicKey.__copy__ÚmemoÚdictc                 C  r	   ©z&
        Returns a deep copy.
        Nr
   ©r   r0   r
   r
   r   Ú__deepcopy__a   r   zDHPublicKey.__deepcopy__N©r   r!   ©r   r   )r   r%   )r   r   r   r'   r   r   )r*   r+   r   r,   ©r   r    )r0   r1   r   r    )r   r   r   Úpropertyr   r   r#   r$   r&   r)   r-   r/   r4   r
   r
   r
   r   r    7   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#   m   r   zDHPrivateKey.key_sizer    c                 C  r	   )zC
        The DHPublicKey associated with this private key.
        Nr
   r   r
   r
   r   Ú
public_keyt   r   zDHPrivateKey.public_keyr   c                 C  r	   )zK
        The DHParameters object associated with this private key.
        Nr
   r   r
   r
   r   r$   z   r   zDHPrivateKey.parametersÚpeer_public_keyr   c                 C  r	   )zn
        Given peer's DHPublicKey, carry out the key exchange and
        return shared key as bytes.
        Nr
   )r   r:   r
   r
   r   Úexchange€   r   zDHPrivateKey.exchangeÚDHPrivateNumbersc                 C  r	   )z-
        Returns a DHPrivateNumbers.
        Nr
   r   r
   r
   r   Úprivate_numbers‡   r   zDHPrivateKey.private_numbersr   r   r   ú_serialization.PrivateFormatÚencryption_algorithmú)_serialization.KeySerializationEncryptionc                 C  r	   r(   r
   )r   r   r   r?   r
   r
   r   Úprivate_bytes�   r   zDHPrivateKey.private_bytesc                 C  r	   r.   r
   r   r
   r
   r   r/   ˜   r   zDHPrivateKey.__copy__r0   r1   c                 C  r	   r2   r
   r3   r
   r
   r   r4   ž   r   zDHPrivateKey.__deepcopy__Nr5   r7   r6   )r:   r    r   r   )r   r<   )r   r   r   r>   r?   r@   r   r   r   )r0   r1   r   r   )r   r   r   r8   r   r   r#   r9   r$   r;   r=   rA   r/   r4   r
   r
   r
   r   r   l   s$    
r   Úgenerate_parameters)Únamer<   r%   r   ÚDHParametersWithSerializationÚDHPublicKeyWithSerializationÚDHPrivateKeyWithSerialization)Ú
__future__r   r   Úcryptographyr   Ú"cryptography.hazmat.bindings._rustr   Úrust_opensslÚcryptography.hazmat.primitivesr   Ú_FFDH_DEPRECATION_MSGÚdhrB   r<   r%   r   ÚABCMetar   rD   Úregisterr    rE   r   rF   Ú_DHPublicKeyÚ_DHPrivateKeyÚ
deprecatedr   ÚDeprecatedIn50r
   r
   r
   r   Ú<module>   s¸   ÿ19ûûûûûûûûû
û