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/lib64/python3.10/site-packages/asyncssh/__pycache__/kex_rsa.cpython-310.pyc
o

�hU�@sdZddlmZmZddlmZmZmZddlm	Z	m
Z
ddlmZm
Z
mZddlmZmZddlmZmZmZdd	lmZmZdd
lmZmZddlmZer^ddlmZmZdd
lmZdZ dZ!dZ"Gdd�de	�Z#dedddfdedddffD]\Z$Z%Z&Z'Z(e
e$e#e%e&e'fe(�qzdS)zRSA key exchange handler�)�sha1�sha256)�
TYPE_CHECKING�Optional�cast�)�Kex�register_kex_alg)�HashType�KeyExchangeFailed�
ProtocolError)�get_symbol_names�	randrange)�MPInt�String�	SSHPacket)�KeyImportError�SSHKey)�decode_ssh_public_key�generate_private_key)�RSAKey)�
SSHConnection�SSHClientConnection)�SSHServerConnection��� c
s�eZdZdZee�d�Zdedddede	de	f
�fd	d
�Z
dd
d�Zdefdd�Zde	de	de
ddfdd�Zde	de	de
ddfdd�Zde	de	de
ddfdd�ZeeeeeeiZ�ZS)�_KexRSAzHandler for RSA key exchange�
MSG_KEXRSA�alg�connr�hash_alg�key_size�	hash_sizecsNt��|||�||_d|d|d>|_d|_d|_d|_d|_d|_dS)Nr��1�r)	�super�__init__�	_key_size�_k_limit�_host_key_data�
_trans_key�_trans_key_data�_k�_encrypted_k)�selfrr r!r"r#��	__class__��C/usr/local/CyberCP/lib/python3.10/site-packages/asyncssh/kex_rsa.pyr(4s
z_KexRSA.__init__�returnNc�sp�|j��r6td|j�}|��}|dusJ�|j|_td|jd�|_|jj|_	|�
tt|j�t|j	��dSdS)zStart RSA key exchangerNzssh-rsa)r")
�_conn�	is_serverr�get_server_host_key�public_datar+rr)r,r-�send_packet�MSG_KEXRSA_PUBKEYr)r0�server_conn�host_keyr3r3r4�startCs�
�
��z
_KexRSA.startcCs`|��}|�|j���|�t|j��|�t|j��|�t|j��|�t|j	��|�
�S)z@Compute a hash of key information associated with the connection)�	_hash_alg�updater6�get_hash_prefixrr+r-r/rr.�digest)r0�hash_objr3r3r4�
_compute_hashSsz_KexRSA._compute_hash�_pkttype�_pktid�packetcCs�|j��r	td��|��|_|��|_|��zt|j�}Wnty*td�d�wt	t
|�}t|j�|_
t	t|�t|j
�|j��|_|�tt|j��dS)zProcess a KEXRSA pubkey messagezUnexpected KEXRSA pubkey msgzInvalid KEXRSA pubkey msgN)r6r7r�
get_stringr+r-�	check_endrrrrrr*r.�bytes�encryptr�	algorithmr/r:�MSG_KEXRSA_SECRETr)r0rErFrG�pubkey�	trans_keyr3r3r4�_process_pubkey^s



�
�z_KexRSA._process_pubkeyc
Cs�|j��r	td��|��|_|��tt|j�}|�	|j|j
�}|s&td��t|�}|�
�|_|��td|j�}|��}|dusCJ�|��}|�|�}	|�tt|	��|j�t|j�|�dS)zProcess a KEXRSA secret messagezUnexpected KEXRSA secret msgzKey exchange decryption failedrN)r6�	is_clientrrHr/rIrrr,�decryptrLrr�	get_mpintr.r8rD�signr:�MSG_KEXRSA_DONEr�send_newkeysr)
r0rErFrGrO�decrypted_kr<r=�h�sigr3r3r4�_process_secretus$



z_KexRSA._process_secretcCsn|j��r	td��|��}|��td|j�}|�|j�}|��}|�	||�s+t
d��|j�t|j
�|�dS)zProcess a KEXRSA done messagezUnexpected KEXRSA done msgrzKey exchange hash mismatchN)r6r7rrHrIr�validate_server_host_keyr+rD�verifyrrVrr.)r0rErFrGrY�client_connr=rXr3r3r4�
_process_done�s
z_KexRSA._process_done)r5N)�__name__�
__module__�__qualname__�__doc__r
�globals�_handler_namesrJr
�intr(r>rDrrPrZr^r;rMrU�_packet_handlers�
__classcell__r3r3r1r4r/s:��

�
�
�
�
�
��rsrsa2048-sha256i�Tsrsa1024-sha1i�FN))rb�hashlibrr�typingrrr�kexrr	�miscr
rrr
rrGrrr�
public_keyrrrr�rsar�
connectionrrrr;rMrUr�_namer?r)�
_hash_size�_defaultr3r3r3r4�<module>s0���