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: xnsbb3110 (1041)
PHP: 8.1.33
Disabled: NONE
Upload Files
File: //usr/local/CyberCP/lib/python3.10/site-packages/asyncssh/__pycache__/encryption.cpython-310.pyc
o

�h�*�@sHUdZddlmZmZmZmZmZddlmZm	Z	m
Z
mZddlm
Z
mZmZddlmZeeeeeeefZeeeedeffZgZeeed<gZeeed	<iZeed
<Gdd�d�ZGdd
�d
e�ZGdd�de�ZGdd�de�ZGdd�de�Z dedeedededdf
dd�Z!deefdd�Z"deefdd�Z#	 dLded!edefd"d#�Z$	 	$dMded%ed&ed!ed'ed(edefd)d*�Z%d+e d,d-fd.ed/d-fd0ed1d-fd2ed3d-fd4ed5d-fd6ed7d-fd8ed9d$fd:ed;d$fd<ed=d$fd>ed?d$fd@edAd$fdBedCd$fdDedEd$fdFedGd$fdHedId$fdJedKd$ffZ&e&D]Z'e!e'��qdS)Nz!Symmetric key encryption handlers�)�Dict�List�Optional�Tuple�Type�)�BasicCipher�	GCMCipher�ChachaCipher�get_cipher_params)�MAC�get_mac_params�get_mac)�UInt64�
Encryption�	_enc_algs�_default_enc_algs�_enc_paramsc@s�eZdZdZe		ddededededed	ed
dfdd��Zeded
e	e
e
effd
d��Zde
deded
e	eeffdd�Zde
dede
d
e	eeffdd�Z
de
dedede
ded
eefdd�ZdS)rz.Parent class for SSH packet encryption objects�F�cipher_name�key�iv�mac_alg�mac_key�etm�returncC�t�)z,Construct a new SSH packet encryption object��NotImplementedError��clsrrrrrr�r!�F/usr/local/CyberCP/lib/python3.10/site-packages/asyncssh/encryption.py�new*szEncryption.newcCst|�S)�=Get parameters of the MAC algorithm used with this encryption)r
�r rr!r!r"r
1szEncryption.get_mac_params�seq�header�packetcCr��Encrypt and sign an SSH packetr��selfr&r'r(r!r!r"�encrypt_packet7�zEncryption.encrypt_packet�first_block�
header_lencCr)�Decrypt an SSH packet headerr�r,r&r/r0r!r!r"�decrypt_header=r.zEncryption.decrypt_header�first�rest�maccCr)�1Verify the signature of and decrypt an SSH packetr�r,r&r4r5r0r6r!r!r"�decrypt_packetCr.zEncryption.decrypt_packetN�rrF)�__name__�
__module__�__qualname__�__doc__�classmethod�str�bytes�boolr#r�intr
r-r3rr9r!r!r!r"r's>����
�

�
�

����c@s�eZdZdZdedefdd�Ze		dded	e	d
e	de	de	d
e
ddfdd��Zdede	de	de
e	e	ffdd�Zdede	dede
e	e	ffdd�Zdede	de	dede	dee	fdd�ZdS) �BasicEncryptionzShim for basic encryption�cipherr6cCs||_||_dS�N)�_cipher�_mac)r,rEr6r!r!r"�__init__Ms
zBasicEncryption.__init__rFrrrrrrrc	Cs.t|||�}t||�}|rt||�S|||�S)z>Construct a new SSH packet encryption object for basic ciphers)rr�
ETMEncryption)	r rrrrrrrEr6r!r!r"r#Qs



zBasicEncryption.newr&r'r(cCs0||}|jr|j�||�nd}|j�|�|fS)r*r)rH�signrG�encrypt)r,r&r'r(r6r!r!r"r-^szBasicEncryption.encrypt_packetr/r0cCs|j�|�}||d|�fS�r1N)rG�decryptr2r!r!r"r3gszBasicEncryption.decrypt_headerr4r5cCs0||j�|�}|j�|||�r||d�SdS�r7N)rGrNrH�verify�r,r&r4r5r0r6r(r!r!r"r9oszBasicEncryption.decrypt_packetNr:)r;r<r=r>rrrIr?r@rArBr#rCrr-r3rr9r!r!r!r"rDJs<����
�

�
	�

����rDc
@szeZdZdZdedededeeeffdd�Zdeded	edeeeffd
d�Zdeded
ed	edede	efdd�Z
dS)rJz$Shim for encrypt-then-mac encryptionr&r'r(rcCs"||j�|�}||j�||�fSr))rGrLrHrKr+r!r!r"r-~szETMEncryption.encrypt_packetr/r0cC�||d|�fSrMr!r2r!r!r"r3��zETMEncryption.decrypt_headerr4r5r6cCs0||}|j�|||�r|j�||d��SdSrO)rHrPrGrNrQr!r!r"r9�szETMEncryption.decrypt_packetN)r;r<r=r>rCrArr-r3rr9r!r!r!r"rJ{s&
�

�
�

����rJc@��eZdZdZdefdd�Ze		d!deded	ed
edede	d
dfdd��Z
ed
ed
eeee	ffdd��Z
dededed
eeeffdd�Zdededed
eeeffdd�Zdededededed
eefdd�Zd S)"�
GCMEncryptionzShim for GCM encryptionrEcC�
||_dSrF�rG�r,rEr!r!r"rI��
zGCMEncryption.__init__rFrrrrrrrcCs|t|||��S)z<Construct a new SSH packet encryption object for GCM ciphers)r	rr!r!r"r#�szGCMEncryption.newcC�dS�r$)r�Tr!r%r!r!r"r
�r.zGCMEncryption.get_mac_paramsr&r'r(cCs|j�||�Sr))rG�encrypt_and_signr+r!r!r"r-�szGCMEncryption.encrypt_packetr/r0cCrRrMr!r2r!r!r"r3�rSzGCMEncryption.decrypt_headerr4r5r6cCs$|j�|d|�||d�||�SrO)rG�verify_and_decryptr8r!r!r"r9�s�zGCMEncryption.decrypt_packetNr:)r;r<r=r>r	rIr?r@rArBr#rrCr
r-r3rr9r!r!r!r"rU�s@����
�

�
�

����rUc@rT)"�ChachaEncryptionz%Shim for chacha20-poly1305 encryptionrEcCrVrFrWrXr!r!r"rI�rYzChachaEncryption.__init__rFrrrrrrrcCs|t|��S)z?Construct a new SSH packet encryption object for Chacha ciphers)r
rr!r!r"r#�szChachaEncryption.newcCrZr[r!r%r!r!r"r
�r.zChachaEncryption.get_mac_paramsr&r'r(cCs|j�||t|��Sr))rGr]rr+r!r!r"r-�szChachaEncryption.encrypt_packetr/r0cCs||j�|d|�t|��fSrM)rGr3rr2r!r!r"r3�s
��zChachaEncryption.decrypt_headerr4r5r6cCs*|j�|d|�||d�|t|�|�SrO)rGr^rr8r!r!r"r9�s�zChachaEncryption.decrypt_packetNr:)r;r<r=r>r
rIr?r@rArBr#rrCr
r-r3rr9r!r!r!r"r_�s@����
�

�
�

����r_�enc_alg�
encryptionr�defaultrNcCsJzt|�Wn
tyYdSwt�|�|rt�|�||ft|<dS)z Register an encryption algorithmN)r�KeyErrorr�appendrr)r`rarrbr!r!r"�register_encryption_alg�s�

recC�tS)z&Return supported encryption algorithms)rr!r!r!r"�get_encryption_algs��rgcCrf)z$Return default encryption algorithms)rr!r!r!r"�get_default_encryption_algs�rhrirrc
Cs:t|\}}t|�\}}}|�|�\}}}	||||||	fS)z1Get parameters of an encryption and MAC algorithm)rrr
)
r`rrar�enc_keysize�
enc_ivsize�
enc_blocksize�mac_keysize�mac_hashsizerr!r!r"�get_encryption_paramss�roFrrrrcCs t|\}}|�||||||�S)z:Return an object which can encrypt and decrypt SSH packets)rr#)r`rrrrrrarr!r!r"�get_encryptionsrpschacha20-poly1305@openssh.comzchacha20-poly1305Tsaes256-gcm@openssh.comz
aes256-gcmsaes128-gcm@openssh.comz
aes128-gcms
aes256-ctrz
aes256-ctrs
aes192-ctrz
aes192-ctrs
aes128-ctrz
aes128-ctrs
aes256-cbcz
aes256-cbcs
aes192-cbcz
aes192-cbcs
aes128-cbcz
aes128-cbcs3des-cbczdes3-cbcsblowfish-cbczblowfish-cbcscast128-cbczcast128-cbcsseed-cbc@ssh.comzseed-cbcs
arcfour256�
arcfour256s
arcfour128�
arcfour128sarcfour�arcfour)rr:)(r>�typingrrrrr�cryptorr	r
rr6rr
rr(rrCrB�
_EncParamsrAr@�
_EncParamsMapr�__annotations__rrrrDrJrUr_rergrirorp�
_enc_alg_list�
_enc_alg_argsr!r!r!r"�<module>s�#1'*��
���
����
�
�����������������#�