HEX
Server: Apache/2.4.52 (Ubuntu)
System: Linux spn-python 5.15.0-89-generic #99-Ubuntu SMP Mon Oct 30 20:42:41 UTC 2023 x86_64
User: arjun (1000)
PHP: 8.1.2-1ubuntu2.20
Disabled: NONE
Upload Files
File: //lib/python3/dist-packages/cryptography/hazmat/primitives/asymmetric/__pycache__/dh.cpython-38.pyc
U

�)%a��@s�ddlZddlZddlmZddlmZddlmZdZddd�dd	�Z	Gd
d�de
�ZGdd
�d
e
�ZGdd�de
�Z
Gdd�dejd�ZeZGdd�dejd�ZeZGdd�dejd�ZeZdS)�N)�utils)�_get_backend)�
serializationi�DHParameters��returncCst|�}|�||�S�N)r�generate_dh_parameters)�	generator�key_size�backend�r
�N/usr/lib/python3/dist-packages/cryptography/hazmat/primitives/asymmetric/dh.py�generate_parameterssrc@s^eZdZdeeejed�dd�Zdd�Zdd�Zdd	d
�Z	e
�d�Ze
�d�Z
e
�d
�ZdS)�DHParameterNumbersN)�p�g�qcCsvt|t�rt|t�std��|dk	r6t|t�s6td��|dkrFtd��|��tkr`td�t���||_||_||_	dS)Nzp and g must be integerszq must be integer or None�z!DH generator must be 2 or greaterz#p (modulus) must be at least {}-bit)
�
isinstance�int�	TypeError�
ValueError�
bit_length�_MIN_MODULUS_SIZE�format�_p�_g�_q)�selfrrrr
r
r�__init__s�zDHParameterNumbers.__init__cCs2t|t�stS|j|jko0|j|jko0|j|jkSr)rr�NotImplementedrrr�r�otherr
r
r�__eq__)s
"�zDHParameterNumbers.__eq__cCs
||kSrr
r"r
r
r�__ne__1szDHParameterNumbers.__ne__cCst|�}|�|�Sr)r�load_dh_parameter_numbers�rrr
r
r�
parameters4szDHParameterNumbers.parametersrrr)N)N)�__name__�
__module__�__qualname__r�typing�Optionalr r$r%r(r�read_only_propertyrrrr
r
r
rrs


rc@sNeZdZed�dd�Zdd�Zdd�Zdd	d
�dd�Ze�	d
�Z
e�	d�ZdS)�DHPublicNumbers)�parameter_numberscCs4t|t�std��t|t�s$td��||_||_dS)Nzy must be an integer.z5parameters must be an instance of DHParameterNumbers.)rrrr�_y�_parameter_numbers)r�yr0r
r
rr >s

�zDHPublicNumbers.__init__cCs&t|t�stS|j|jko$|j|jkSr)rr/r!r1r2r"r
r
rr$Js


�zDHPublicNumbers.__eq__cCs
||kSrr
r"r
r
rr%SszDHPublicNumbers.__ne__N�DHPublicKeyrcCst|�}|�|�Sr)r�load_dh_public_numbersr'r
r
r�
public_keyVszDHPublicNumbers.public_keyr1r2)N)r)r*r+rr r$r%r6rr.r3r0r
r
r
rr/=s	
r/c@sNeZdZed�dd�Zdd�Zdd�Zdd	d
�dd�Ze�	d
�Z
e�	d�ZdS)�DHPrivateNumbers)�public_numberscCs4t|t�std��t|t�s$td��||_||_dS)Nzx must be an integer.z6public_numbers must be an instance of DHPublicNumbers.)rrrr/�_x�_public_numbers)r�xr8r
r
rr _s

�zDHPrivateNumbers.__init__cCs&t|t�stS|j|jko$|j|jkSr)rr7r!r9r:r"r
r
rr$ks


�zDHPrivateNumbers.__eq__cCs
||kSrr
r"r
r
rr%tszDHPrivateNumbers.__ne__N�DHPrivateKeyrcCst|�}|�|�Sr)r�load_dh_private_numbersr'r
r
r�private_keywszDHPrivateNumbers.private_keyr:r9)N)r)r*r+r/r r$r%r>rr.r8r;r
r
r
rr7^s	
r7c@sLeZdZejdd�dd��Zejdded�dd	��Zejed�d
d��Z	dS)
rr<rcCsdS)z7
        Generates and returns a DHPrivateKey.
        Nr
�rr
r
r�generate_private_key�sz!DHParameters.generate_private_key�serialization.Encodingzserialization.ParameterFormat��encodingrrcCsdS)z=
        Returns the parameters serialized as bytes.
        Nr
�rrCrr
r
r�parameter_bytes�szDHParameters.parameter_bytescCsdS)z/
        Returns a DHParameterNumbers.
        Nr
r?r
r
rr0�szDHParameters.parameter_numbersN)
r)r*r+�abc�abstractmethodr@�bytesrErr0r
r
r
rrs�	)�	metaclassc@s`eZdZejed�dd��Zejed�dd��Z	eje
d�dd��Zejdd	ed
�dd��Z
d
S)r4rcCsdS�z6
        The bit length of the prime modulus.
        Nr
r?r
r
rr�szDHPublicKey.key_sizecCsdS)zJ
        The DHParameters object associated with this public key.
        Nr
r?r
r
rr(�szDHPublicKey.parameterscCsdS)z,
        Returns a DHPublicNumbers.
        Nr
r?r
r
rr8�szDHPublicKey.public_numbersrAzserialization.PublicFormatrBcCsdS�z6
        Returns the key serialized as bytes.
        Nr
rDr
r
r�public_bytes�szDHPublicKey.public_bytesN)r)r*r+rF�abstractpropertyrrrGrr(r/r8rHrLr
r
r
rr4�s�r4c@s�eZdZejed�dd��Zejed�dd��Z	eje
d�dd��Zejeed�d	d
��Z
ejed�dd��Zejd
dded�dd��ZdS)r<rcCsdSrJr
r?r
r
rr�szDHPrivateKey.key_sizecCsdS)zC
        The DHPublicKey associated with this private key.
        Nr
r?r
r
rr6�szDHPrivateKey.public_keycCsdS)zK
        The DHParameters object associated with this private key.
        Nr
r?r
r
rr(�szDHPrivateKey.parameters)�peer_public_keyrcCsdS)zn
        Given peer's DHPublicKey, carry out the key exchange and
        return shared key as bytes.
        Nr
)rrNr
r
r�exchange�szDHPrivateKey.exchangecCsdS)z-
        Returns a DHPrivateNumbers.
        Nr
r?r
r
r�private_numbers�szDHPrivateKey.private_numbersrAzserialization.PrivateFormatz(serialization.KeySerializationEncryption)rCr�encryption_algorithmrcCsdSrKr
)rrCrrQr
r
r�
private_bytes�szDHPrivateKey.private_bytesN)r)r*r+rFrMrrrGr4r6rr(rHrOr7rPrRr
r
r
rr<�s �r<)N)rFr,�cryptographyr�cryptography.hazmat.backendsr�cryptography.hazmat.primitivesrrr�objectrr/r7�ABCMetarZDHParametersWithSerializationr4ZDHPublicKeyWithSerializationr<ZDHPrivateKeyWithSerializationr
r
r
r�<module>s'!!,