o
    Þ­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                   @  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	   úi/var/www/html/CropPilot/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_size1   r   zDHPublicKey.key_sizer   c                 C  r   )zJ
        The DHParameters object associated with this public key.
        Nr	   r
   r	   r	   r   Ú
parameters8   r   zDHPublicKey.parametersÚDHPublicNumbersc                 C  r   )z,
        Returns a DHPublicNumbers.
        Nr	   r
   r	   r	   r   Úpublic_numbers>   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_bytesD   r   zDHPublicKey.public_bytesÚotherÚobjectÚboolc                 C  r   )z"
        Checks equality.
        Nr	   )r   r)   r	   r	   r   Ú__eq__N   r   zDHPublicKey.__eq__c                 C  r   ©z!
        Returns a copy.
        Nr	   r
   r	   r	   r   Ú__copy__T   r   zDHPublicKey.__copy__ÚmemoÚdictc                 C  r   ©z&
        Returns a deep copy.
        Nr	   ©r   r/   r	   r	   r   Ú__deepcopy__Z   r   zDHPublicKey.__deepcopy__N©r   r    ©r   r   )r   r$   )r   r   r   r&   r   r   )r)   r*   r   r+   ©r   r   )r/   r0   r   r   )r   r   r   Úpropertyr   r   r"   r#   r%   r(   r,   r.   r3   r	   r	   r	   r   r   0   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"   f   r   zDHPrivateKey.key_sizer   c                 C  r   )zC
        The DHPublicKey associated with this private key.
        Nr	   r
   r	   r	   r   Ú
public_keym   r   zDHPrivateKey.public_keyr   c                 C  r   )zK
        The DHParameters object associated with this private key.
        Nr	   r
   r	   r	   r   r#   s   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   r9   r	   r	   r   Úexchangey   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__r/   r0   c                 C  r   r1   r	   r2   r	   r	   r   r3   —   r   zDHPrivateKey.__deepcopy__Nr4   r6   r5   )r9   r   r   r   )r   r;   )r   r   r   r=   r>   r?   r   r   r   )r/   r0   r   r   )r   r   r   r7   r   r   r"   r8   r#   r:   r<   r@   r.   r3   r	   r	   r	   r   r   e   s$    
r   )Ú
__future__r   r   Ú"cryptography.hazmat.bindings._rustr   Úrust_opensslÚcryptography.hazmat.primitivesr   ÚdhÚgenerate_parametersr;   r$   r   ÚABCMetar   ÚDHParametersWithSerializationÚregisterr   ÚDHPublicKeyWithSerializationr   ÚDHPrivateKeyWithSerializationr	   r	   r	   r   Ú<module>   s"   19