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

�h��	@s�dZddlZddlmZddlZddlmZmZmZm	Z	ddl
mZddlm
Z
mZmZmZmZddlmZmZmZeeefZedeefZd	Zd
ZGdd�de�Zd
edefdd�Zdededeedeefdd�ZdS)zSSH keysign client�N)�Path)�Iterable�Sequence�Union�cast�)�FilePath)�Byte�String�UInt32�PacketDecodeError�	SSHPacket)�SSHKey�
SSHKeyPair�SSHCertificate�)z/opt/local/libexecz/usr/local/libexecz/usr/libexecz/usr/libexec/opensshz/usr/lib/opensshcs@eZdZdZdededef�fdd�Zdedefd	d
�Z	�Z
S)�SSHKeySignKeyPairz9Surrogate for a key where signing is done via ssh-keysign�keysign_path�sock_fd�key_or_certcsH|j}|jdd�}|j}|��}t��||||||�||_||_dS)Nr)�	algorithm�sig_algorithms�public_data�get_comment_bytes�super�__init__�
_keysign_path�_sock_fd)�selfrrrrrr�comment��	__class__��F/usr/local/CyberPanel/lib/python3.10/site-packages/asyncssh/keysign.pyr/s�
zSSHKeySignKeyPair.__init__�data�returnc�s��tj|jtjtjtj|jgd�IdH}ttt�t	|j�t|��}|�
|�IdH\}}|r9|����}t
|��z't|�}|��}|��t|�}|��}	|��}
|��|	tkr^t
d��|
WStylt
d�d�w)z5Use ssh-keysign to sign a block of data with this key)�stdin�stdout�stderr�pass_fdsNzunexpected versionzinvalid response)�asyncio�create_subprocess_execr�
subprocess�PIPErr
r	�KEYSIGN_VERSIONr�communicate�decode�strip�
ValueErrorr
�
get_string�	check_end�get_byter)rr$�proc�requestr'r(�error�packet�resp�version�sigr"r"r#�
sign_async<s4�
��
�zSSHKeySignKeyPair.sign_async)�__name__�
__module__�__qualname__�__doc__�str�int�_KeySignKeyr�bytesr=�
__classcell__r"r"r r#r,s
�
r�pathr%cCs\|durtD]}t|d�}|��rt|�Sqtd��|r&ttt|����s*td��t|�S)z%Return path to ssh-keysign executableTzssh-keysignzKeysign not found)�_DEFAULT_KEYSIGN_DIRSr�existsr2rrrB)rG�keysign_dirr"r"r#�find_keysign]s
�rKrr�keyscs��fdd�|D�S)z/Return keypair objects which invoke ssh-keysigncsg|]}t��|��qSr")r)�.0�key�rrr"r#�
<listcomp>ssz$get_keysign_keys.<locals>.<listcomp>r")rrrLr"rOr#�get_keysign_keysnsrQ) rAr*�pathlibrr,�typingrrrr�miscrr9r	r
rrr
�
public_keyrrrrD�bool�KeySignPathr.rHrrBrKrCrQr"r"r"r#�<module>s&1
��