HEX
Server: Apache
System: Linux scp1.abinfocom.com 5.4.0-216-generic #236-Ubuntu SMP Fri Apr 11 19:53:21 UTC 2025 x86_64
User: confeduphaar (1010)
PHP: 8.1.33
Disabled: exec,passthru,shell_exec,system
Upload Files
File: //lib/python3/dist-packages/cryptography/hazmat/backends/openssl/__pycache__/dh.cpython-38.pyc
U

�e�]>*�@s�ddlmZmZmZddlmZddlmZmZddl	m
Z
ddlmZdd�Z
dd	�Ze�ej�Gd
d�de��Zdd
�Zdd�Ze�ej�Gdd�de��Ze�ej�Gdd�de��ZdS)�)�absolute_import�division�print_function)�utils)�UnsupportedAlgorithm�_Reasons)�
serialization)�dhcCs�|j}|j}|�|�}|�||jk�|�||j�}|jr�|�d�}|�	||j||j�|�
|d�}|�||j||j�}|�|dk�|S�N�	BIGNUM **r�)�_lib�_ffiZDHparams_dup�openssl_assert�NULL�gcZDH_freeZ"CRYPTOGRAPHY_OPENSSL_LESS_THAN_102�new�DH_get0_pqg�BN_dupZDH_set0_pqg)�dh_cdata�backend�libZffi�param_cdata�qZq_dup�res�r�I/usr/lib/python3/dist-packages/cryptography/hazmat/backends/openssl/dh.py�_dh_params_dup
s

rcCst||�}t||�S�N)r�
_DHParameters)rrrrrr�_dh_cdata_to_parameterss
r c@s,eZdZdd�Zdd�Zdd�Zdd�Zd	S)
rcCs||_||_dSr)�_backend�	_dh_cdata)�selfrrrrr�__init__&sz_DHParameters.__init__cCs�|jj�d�}|jj�d�}|jj�d�}|jj�|j|||�|j�|d|jjjk�|j�|d|jjjk�|d|jjjkr�d}n|j�|d�}t	j
|j�|d�|j�|d�|d�S)Nrr��p�gr)r!rrr
rr"rr�
_bn_to_intr	�DHParameterNumbers)r#r&r'r�q_valrrr�parameter_numbers*s�z_DHParameters.parameter_numberscCs|j�|�Sr)r!Zgenerate_dh_private_key�r#rrr�generate_private_key;sz"_DHParameters.generate_private_keycCs~|tjjk	rtd��|jjjsl|jj�d�}|jj�	|j
|jjj||jjj�|d|jjjkrltdt
j��|j�|||j
�S)Nz%Only PKCS3 serialization is supportedrr�'DH X9.42 serialization is not supported)rZParameterFormatZPKCS3�
ValueErrorr!r
�Cryptography_HAS_EVP_PKEY_DHXrrrr"rrr�UNSUPPORTED_SERIALIZATIONZ_parameter_bytes�r#�encoding�formatrrrr�parameter_bytes>s*�
���z_DHParameters.parameter_bytesN)�__name__�
__module__�__qualname__r$r+r-r5rrrrr$srcCs,|j}|�|d�|j|j��td��dS)Nrz.Public key value is invalid for this exchange.)r
rZ_lib_reason_matchZ
ERR_LIB_DHZDH_R_INVALID_PUBKEYr/)�errorsrrrrr�_handle_dh_compute_key_errorUs��r:cCsL|j�d�}|j�|||jj|jj�|�|d|jjk�|j�|d�S)Nrr)rrr
rrrZBN_num_bits)rrr&rrr�_get_dh_num_bitsas
�r;c@sHeZdZdd�Zedd��Zdd�Zdd�Zd	d
�Zdd�Z	d
d�Z
dS)�
_DHPrivateKeycCs&||_||_||_|jj�|�|_dSr)r!r"�	_evp_pkeyr
ZDH_size�_key_size_bytes�r#rr�evp_pkeyrrrr$lsz_DHPrivateKey.__init__cCst|j|j�Sr)r;r!r"r,rrr�key_sizersz_DHPrivateKey.key_sizecCsT|jj�d�}|jj�d�}|jj�d�}|jj�|j|||�|j�|d|jjjk�|j�|d|jjjk�|d|jjjkr�d}n|j�|d�}|jj�d�}|jj�d�}|jj�	|j||�|j�|d|jjjk�|j�|d|jjjk�t
jt
jt
j
|j�|d�|j�|d�|d�|j�|d�d�|j�|d�d�S)Nrrr%�r+�y)�public_numbers�x)r!rrr
rr"rrr(�DH_get0_keyr	ZDHPrivateNumbers�DHPublicNumbersr))r#r&r'rr*�pub_keyZpriv_keyrrr�private_numbersvs2���z_DHPrivateKey.private_numberscCs�|jj�d|j�}|jj�d�}|jj�|j||jjj�|j�|d|jjjk�|jj�	||d|j�}|dkr�|j�
�}t||j�S|j�|dk�|jj�|�d|�}|jt
|�}|dkr�d||}|SdS)Nzunsigned char[]rr���r�)r!rrr>r
rFr"rrZDH_compute_keyZ_consume_errorsr:�buffer�len)r#Zpeer_public_keyZbufrHrr9�keyZpadrrr�exchange�s(��
z_DHPrivateKey.exchangecCs�t|j|j�}|jj�d�}|jj�|j||jjj�|j�|d|jjjk�|jj�	|d�}|j�||jjjk�|jj�
|||jjj�}|j�|dk�|j�|�}t|j||�Sr
)
rr"r!rrr
rFrrrZDH_set0_keyZ_dh_cdata_to_evp_pkey�_DHPublicKey)r#rrHZpub_key_duprr@rrr�
public_key�s �
�z_DHPrivateKey.public_keycCst|j|j�Sr�r r"r!r,rrr�
parameters�sz_DHPrivateKey.parameterscCs�|tjjk	rtd��|jjjsl|jj�d�}|jj�	|j
|jjj||jjj�|d|jjjkrltdt
j��|j�||||j|j
�S)Nz0DH private keys support only PKCS8 serializationrrr.)rZ
PrivateFormatZPKCS8r/r!r
r0rrrr"rrrr1Z_private_key_bytesr=)r#r3r4Zencryption_algorithmrrrr�
private_bytes�s.�
���z_DHPrivateKey.private_bytesN)r6r7r8r$�propertyrArIrOrQrSrTrrrrr<js
r<c@s8eZdZdd�Zedd��Zdd�Zdd�Zd	d
�ZdS)rPcCs&||_||_||_t|j|j�|_dSr)r!r"r=r;�_key_size_bitsr?rrrr$�sz_DHPublicKey.__init__cCs|jSr)rVr,rrrrA�sz_DHPublicKey.key_sizecCs|jj�d�}|jj�d�}|jj�d�}|jj�|j|||�|j�|d|jjjk�|j�|d|jjjk�|d|jjjkr�d}n|j�|d�}|jj�d�}|jj�	|j||jjj�|j�|d|jjjk�t
jt
j|j�|d�|j�|d�|d�|j�|d�d�S)Nrrr%rB)
r!rrr
rr"rrr(rFr	rGr))r#r&r'rr*rHrrrrD�s.���z_DHPublicKey.public_numberscCst|j|j�SrrRr,rrrrS�sz_DHPublicKey.parameterscCs�|tjjk	rtd��|jjjsl|jj�d�}|jj�	|j
|jjj||jjj�|d|jjjkrltdt
j��|j�||||jd�S)Nz>DH public keys support only SubjectPublicKeyInfo serializationrrr.)rZPublicFormatZSubjectPublicKeyInfor/r!r
r0rrrr"rrrr1Z_public_key_bytesr=r2rrr�public_bytess.�
���z_DHPublicKey.public_bytesN)	r6r7r8r$rUrArDrSrWrrrrrP�s
rPN)Z
__future__rrrZcryptographyrZcryptography.exceptionsrrZcryptography.hazmat.primitivesrZ)cryptography.hazmat.primitives.asymmetricr	rr Zregister_interfaceZDHParametersWithSerialization�objectrr:r;ZDHPrivateKeyWithSerializationr<ZDHPublicKeyWithSerializationrPrrrr�<module>s
0	
n