HEX
Server: LiteSpeed
System: Linux php-prod-1.spaceapp.ru 5.15.0-157-generic #167-Ubuntu SMP Wed Sep 17 21:35:53 UTC 2025 x86_64
User: sport3497 (1034)
PHP: 8.1.33
Disabled: NONE
Upload Files
File: //usr/local/CyberCP/lib/python3.10/site-packages/paramiko/__pycache__/kex_ecdh_nist.cpython-310.pyc
o

�h��@s�dZddlmZmZmZddlmZddlmZddl	m
Z
ddlmZddl
mZddlmZdd	lmZed
d�\ZZdd
�ed
d�D�\ZZGdd�d�ZGdd�de�ZGdd�de�ZdS)zQ
Ephemeral Elliptic Curve Diffie-Hellman (ECDH) key exchange
RFC 5656, Section 4
�)�sha256�sha384�sha512��byte_chr)�Message)�SSHException)�default_backend)�ec)�
serialization)�hexlify�� cCsg|]}t|��qS�r)�.0�crr�I/usr/local/CyberCP/lib/python3.10/site-packages/paramiko/kex_ecdh_nist.py�
<listcomp>src@sLeZdZdZeZe��Zdd�Z	dd�Z
dd�Zdd	�Zd
d�Z
dd
�ZdS)�KexNistp256zecdh-sha2-nistp256cCs||_d|_d|_d|_dS)Nr)�	transport�P�Q_C�Q_S)�selfrrrr�__init__s
zKexNistp256.__init__cCsh|��|jjr|j�t�dSt�}|�t�|�|j	�
tjj
tjj��|j�|�|j�t�dS�N)�_generate_key_pairr�server_mode�_expect_packet�_MSG_KEXECDH_INITr�add_byte�c_MSG_KEXECDH_INIT�
add_stringr�public_bytesr�Encoding�X962�PublicFormat�UncompressedPoint�
_send_message�_MSG_KEXECDH_REPLY)r�mrrr�	start_kex s
��zKexNistp256.start_kexcCsB|jjr
|tkr
|�|�S|jjs|tkr|�|�Std�|���)Nz(KexECDH asked to handle packet type {:d})rrr�_parse_kexecdh_initr)�_parse_kexecdh_replyr�format)r�ptyper*rrr�
parse_next1s

�zKexNistp256.parse_nextcCs:t�|jt��|_|jjr|j��|_dS|j��|_	dSr)
r
�generate_private_key�curver	rrr�
public_keyrr)rrrrr:s
zKexNistp256._generate_key_paircCs>|��}tj�|j|�|_|j����}|j	�
t��|j�}tt
|�d�}t�}|�|jj|jj|jj|jj�|�|�|�|�|�|j�tjjtjj��|�t|��|�|�����}|j�||�|j��� ||jj!�}t�}|�"t#�|�|�|�|j�tjjtjj��|�|�|j�$|�|j�%�dS�N�)&�
get_stringr
�EllipticCurvePublicKey�from_encoded_pointr2rr�get_server_key�asbytesr�exchange�ECDH�intrr�add�remote_version�
local_version�remote_kex_init�local_kex_initr"rr#rr$r%r&r'�	add_mpint�	hash_algo�digest�_set_K_H�
sign_ssh_data�
host_key_typer �c_MSG_KEXECDH_REPLYr(�_activate_outbound)rr*�	Q_C_bytes�K_S�K�hm�H�sigrrrr,AsP��

��
�

��
zKexNistp256._parse_kexecdh_initcCs�|��}|��}tj�|j|�|_|��}|j�t�	�|j�}t
t|�d�}t�}|�
|jj|jj|jj|jj�|�|�|�|j�tjjtjj��|�|�|�|�|j�||�|������|j� ||�|j�!�dSr4)"r6r
r7r8r2r�
get_binaryrr;r<r=rrr>rr@r?rBrAr"rr#rr$r%r&r'rCrFrDr:rE�_verify_keyrJ)rr*rL�	Q_S_bytesrPrMrNrrrr-ns6��
��

z KexNistp256._parse_kexecdh_replyN)�__name__�
__module__�__qualname__�namerrDr
�	SECP256R1r2rr+r0rr,r-rrrrrs	-rc@�eZdZdZeZe��ZdS)�KexNistp384zecdh-sha2-nistp384N)	rTrUrVrWrrDr
�	SECP384R1r2rrrrrZ��rZc@rY)�KexNistp521zecdh-sha2-nistp521N)	rTrUrVrWrrDr
�	SECP521R1r2rrrrr]�r\r]N)�__doc__�hashlibrrr�paramiko.commonr�paramiko.messager�paramiko.ssh_exceptionr�cryptography.hazmat.backendsr	�)cryptography.hazmat.primitives.asymmetricr
�cryptography.hazmat.primitivesr�binasciir�rangerr)r!rIrrZr]rrrr�<module>s{