U
    ˆjH  ã                   @  sÂ   d dl mZ d dlZd dlmZ d dlm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¡ dS )é    )ÚannotationsN)Úopenssl)Ú_serializationc                   @  sL   e Z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dS )ÚDHParametersÚDHPrivateKey©Úreturnc                 C  s   dS )z7
        Generates and returns a DHPrivateKey.
        N© ©Úselfr	   r	   úP/tmp/pip-unpacked-wheel-cr19813o/cryptography/hazmat/primitives/asymmetric/dh.pyÚgenerate_private_key   s    z!DHParameters.generate_private_keyú_serialization.Encodingz_serialization.ParameterFormatÚbytes©ÚencodingÚformatr   c                 C  s   dS )z=
        Returns the parameters serialized as bytes.
        Nr	   ©r   r   r   r	   r	   r   Úparameter_bytes   s    zDHParameters.parameter_bytesÚDHParameterNumbersc                 C  s   dS )z/
        Returns a DHParameterNumbers.
        Nr	   r
   r	   r	   r   Úparameter_numbers%   s    zDHParameters.parameter_numbersN)Ú__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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„ƒZ
ejd dœdd„ƒZejdd dœdd„ƒZdS )ÚDHPublicKeyÚintr   c                 C  s   dS ©z6
        The bit length of the prime modulus.
        Nr	   r
   r	   r	   r   Úkey_size1   s    zDHPublicKey.key_sizer   c                 C  s   dS )zJ
        The DHParameters object associated with this public key.
        Nr	   r
   r	   r	   r   Ú
parameters8   s    zDHPublicKey.parametersÚDHPublicNumbersc                 C  s   dS )z,
        Returns a DHPublicNumbers.
        Nr	   r
   r	   r	   r   Úpublic_numbers>   s    zDHPublicKey.public_numbersr   z_serialization.PublicFormatr   r   c                 C  s   dS ©z6
        Returns the key serialized as bytes.
        Nr	   r   r	   r	   r   Úpublic_bytesD   s    zDHPublicKey.public_bytesÚobjectÚbool)Úotherr   c                 C  s   dS )z"
        Checks equality.
        Nr	   )r   r(   r	   r	   r   Ú__eq__N   s    zDHPublicKey.__eq__c                 C  s   dS ©z!
        Returns a copy.
        Nr	   r
   r	   r	   r   Ú__copy__T   s    zDHPublicKey.__copy__Údict©Úmemor   c                 C  s   dS ©z&
        Returns a deep copy.
        Nr	   ©r   r.   r	   r	   r   Ú__deepcopy__Z   s    zDHPublicKey.__deepcopy__N)r   r   r   Úpropertyr   r   r    r!   r#   r%   r)   r+   r1   r	   r	   r	   r   r   0   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„ƒ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ejdd dœdd„ƒZdS )r   r   r   c                 C  s   dS r   r	   r
   r	   r	   r   r    f   s    zDHPrivateKey.key_sizer   c                 C  s   dS )zC
        The DHPublicKey associated with this private key.
        Nr	   r
   r	   r	   r   Ú
public_keym   s    zDHPrivateKey.public_keyr   c                 C  s   dS )zK
        The DHParameters object associated with this private key.
        Nr	   r
   r	   r	   r   r!   s   s    zDHPrivateKey.parametersr   )Úpeer_public_keyr   c                 C  s   dS )zn
        Given peer's DHPublicKey, carry out the key exchange and
        return shared key as bytes.
        Nr	   )r   r4   r	   r	   r   Úexchangey   s    zDHPrivateKey.exchangeÚDHPrivateNumbersc                 C  s   dS )z-
        Returns a DHPrivateNumbers.
        Nr	   r
   r	   r	   r   Úprivate_numbers€   s    zDHPrivateKey.private_numbersr   z_serialization.PrivateFormatz)_serialization.KeySerializationEncryption)r   r   Úencryption_algorithmr   c                 C  s   dS r$   r	   )r   r   r   r8   r	   r	   r   Úprivate_bytes†   s    zDHPrivateKey.private_bytesc                 C  s   dS r*   r	   r
   r	   r	   r   r+   ‘   s    zDHPrivateKey.__copy__r,   r-   c                 C  s   dS r/   r	   r0   r	   r	   r   r1   —   s    zDHPrivateKey.__deepcopy__N)r   r   r   r2   r   r   r    r3   r!   r5   r7   r9   r+   r1   r	   r	   r	   r   r   e   s"   
r   )Ú
__future__r   r   Z"cryptography.hazmat.bindings._rustr   Zrust_opensslZcryptography.hazmat.primitivesr   ZdhZgenerate_parametersr6   r"   r   ÚABCMetar   ZDHParametersWithSerializationÚregisterr   ZDHPublicKeyWithSerializationr   ZDHPrivateKeyWithSerializationr	   r	   r	   r   Ú<module>   s    19