HEX
Server: Apache
System: Linux 185.122.168.184.host.secureserver.net 5.14.0-570.60.1.el9_6.x86_64 #1 SMP PREEMPT_DYNAMIC Wed Nov 5 05:00:59 EST 2025 x86_64
User: barbeatleanalyti (1024)
PHP: 8.1.33
Disabled: NONE
Upload Files
File: //var/opt/nydus/ops/cryptography/hazmat/backends/openssl/__pycache__/dh.cpython-39.pyc
a

�,�h�/�@s�ddlZddlmZmZddlmZddlmZejrBddl	m
Z
dd�dd	�Zdd
d�dd
�ZGdd
�d
ej
�Zed�dd�ZGdd�dej�ZGdd�dej�ZdS)�N)�UnsupportedAlgorithm�_Reasons)�
serialization)�dh)�Backendr��backendcCs�|j}|j}|�|�}|�||jk�|�||j�}|jr�|�d�}|�	||j||j�|�
|d�}|�||j||j�}|�|dk�|S�N�	BIGNUM **r�)�_lib�_ffiZDHparams_dup�openssl_assert�NULL�gcZDH_freeZCRYPTOGRAPHY_IS_LIBRESSL�new�DH_get0_pqg�BN_dupZDH_set0_pqg)�dh_cdatar�lib�ffi�param_cdata�qZq_dup�res�r�Z/opt/nydus/tmp/pip-target-wkfpz8uv/lib64/python/cryptography/hazmat/backends/openssl/dh.py�_dh_params_dups

r�
_DHParameters)r�returncCst||�}t||�S�N)rr)rrrrrr�_dh_cdata_to_parameters"s
r c@sPeZdZdd�dd�Zejd�dd�Zejd�dd	�Ze	j
e	jed
�dd�Z
d
S)rrrcCs||_||_dSr)�_backend�	_dh_cdata)�selfrrrrr�__init__(sz_DHParameters.__init__�rcCs�|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)Nr
r��p�gr)r!r
rr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_key��encoding�formatrcCs&|tjjurtd��|tjjur(td��|jj�	d�}|jj
�|j|jjj
||jjj
�|d|jjj
kr�|jj
js�tdtj��|tjjur�|d|jjj
kr�|jj
j}q�|jj
j}n>|tjjur�|d|jjj
kr�|jj
j}q�|jj
j}ntd��|j��}|||j�}|j�|dk�|j�|�S)Nz!OpenSSH encoding is not supportedz%Only PKCS3 serialization is supportedr
r�'DH X9.42 serialization is not supportedz/encoding must be an item from the Encoding enumr)r�EncodingZOpenSSH�	TypeError�ParameterFormatZPKCS3�
ValueErrorr!r
rrrr"r�Cryptography_HAS_EVP_PKEY_DHXrr�UNSUPPORTED_SERIALIZATIONZPEMZPEM_write_bio_DHxparamsZPEM_write_bio_DHparamsZDERZCryptography_i2d_DHxparams_bioZi2d_DHparams_bioZ_create_mem_bio_gcrZ
_read_mem_bio)r#r0r1rZ	write_bioZbiorrrr�parameter_bytesAs:����
z_DHParameters.parameter_bytesN)�__name__�
__module__�__qualname__r$rr*r,�DHPrivateKeyr.rr3r5�bytesr9rrrrr's�r%cCsL|j�d�}|j�|||jj|jj�|�|d|jjk�|j�|d�S)Nr
r)r
rrrrrZBN_num_bits)rrr'rrr�_get_dh_num_bitslsr?c@s�eZdZdd�dd�Zeed�dd��Zejd�dd	�Z	ej
ed
�dd�Ze
d
d�dd�Zej
d�dd�Zejd�dd�Zejejejed�dd�Zd
S)�
_DHPrivateKeyrrcCs&||_||_||_|jj�|�|_dSr)r!r"�	_evp_pkeyrZDH_size�_key_size_bytes�r#rr�evp_pkeyrrrr$tsz_DHPrivateKey.__init__r%cCst|j|j�Sr)r?r!r"r-rrr�key_sizezsz_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)Nr
rr&�r,�y)�public_numbers�x)r!r
rrrr"rrr)�DH_get0_keyr�DHPrivateNumbers�DHPublicNumbersr*)r#r'r(rr+�pub_keyZpriv_keyrrr�private_numbers~s2���z_DHPrivateKey.private_numbers)�peer_public_keyrcCsVt|t�std��|jj�|j|jjj�}|j�	||jjjk�|jj�
||jjj�}|jj�|�}|j�	|dk�|jj�
||j�}|�|dk�|jj�d�}|jj�||jjj|�}|�|dk�|j�	|ddk�|jj�d|d�}|jj�|||�}|j�	|dk�|jj�||d�dd�}|jt|�}|dk�rRd||}|S)Nz%peer_public_key must be a DHPublicKeyrzsize_t *rzunsigned char[]�)�
isinstance�_DHPublicKeyr4r!rZEVP_PKEY_CTX_newrAr
rrrZEVP_PKEY_CTX_freeZEVP_PKEY_derive_initZEVP_PKEY_derive_set_peer�_exchange_assertrZEVP_PKEY_derive�bufferrB�len)r#rO�ctxrZkeylen�buf�key�padrrr�exchange�s6
���
z_DHPrivateKey.exchangeN)�okrcCs|s|j��}td|��dS)NzError computing shared key.)r!Z_consume_errors_with_textr6)r#r[Zerrors_with_textrrrrS�s
�z_DHPrivateKey._exchange_assertcCs�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!r
rrrJrrrZDH_set0_keyZ_dh_cdata_to_evp_pkeyrR)r#rrMZpub_key_duprrDrrr�
public_key�s��z_DHPrivateKey.public_keycCst|j|j�Sr�r r"r!r-rrr�
parameters�sz_DHPrivateKey.parameters)r0r1�encryption_algorithmrcCs�|tjjurtd��|jjjsl|jj�d�}|jj�	|j
|jjj||jjj�|d|jjjkrltdt
j��|j�|||||j|j
�S)Nz0DH private keys support only PKCS8 serializationr
rr2)r�
PrivateFormatZPKCS8r6r!rr7r
rrr"rrrr8Z_private_key_bytesrA)r#r0r1r_rrrr�
private_bytes�s2�
���z_DHPrivateKey.private_bytes)r:r;r<r$�property�intrErrKrN�DHPublicKeyr>rZ�boolrSr\�DHParametersr^rr3r`ZKeySerializationEncryptionrarrrrr@ss$�r@c@sbeZdZdd�dd�Zeed�dd��Zejd�dd	�Z	ej
d�d
d�Zej
ejed�d
d�ZdS)rRrrcCs&||_||_||_t|j|j�|_dSr)r!r"rAr?�_key_size_bitsrCrrrr$�sz_DHPublicKey.__init__r%cCs|jSr)rgr-rrrrEsz_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)Nr
rr&rF)
r!r
rrrr"rrr)rJrrLr*)r#r'r(rr+rMrrrrHs,���z_DHPublicKey.public_numberscCst|j|j�Srr]r-rrrr^ sz_DHPublicKey.parametersr/cCs�|tjjurtd��|jjjsl|jj�d�}|jj�	|j
|jjj||jjj�|d|jjjkrltdt
j��|j�||||jd�S)Nz>DH public keys support only SubjectPublicKeyInfo serializationr
rr2)r�PublicFormatZSubjectPublicKeyInfor6r!rr7r
rrr"rrrr8Z_public_key_bytesrA)r#r0r1rrrr�public_bytes#s(�
���z_DHPublicKey.public_bytesN)r:r;r<r$rbrcrErrLrHrfr^rr3rhr>rirrrrrR�s�rR)�typingZcryptography.exceptionsrrZcryptography.hazmat.primitivesrZ)cryptography.hazmat.primitives.asymmetricr�
TYPE_CHECKINGZ,cryptography.hazmat.backends.openssl.backendrrr rfrrcr?r=r@rdrRrrrr�<module>sE