File: //usr/local/CyberPanel/lib64/python3.10/site-packages/asyncssh/__pycache__/keysign.cpython-310.pyc
o
�h� � @ s� d Z ddlZddlmZ ddlZddlmZmZmZm Z ddl
mZ ddlm
Z
mZmZmZmZ ddlmZmZmZ eeef Zedeef Zd Zd
ZG dd� de�Zd
edefdd�Zdededee dee fdd�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/opensshc s@ e Zd ZdZdededef� fdd�Zdedefd d
�Z � Z
S )�SSHKeySignKeyPairz9Surrogate for a key where signing is done via ssh-keysign�keysign_path�sock_fd�key_or_certc sH |j }|jd d� }|j}|�� }t� �||||||� || _|| _d S )Nr )� algorithm�sig_algorithms�public_data�get_comment_bytes�super�__init__�
_keysign_path�_sock_fd)�selfr r r r r r �comment�� __class__� �F/usr/local/CyberPanel/lib/python3.10/site-packages/asyncssh/keysign.pyr / s �
zSSHKeySignKeyPair.__init__�data�returnc � s� �t j| jtjtjtj| jgd�I dH }ttt�t | j� t|� �}|�
|�I dH \}}|r9|�� �� }t
|��z't|�}|�� }|�� t|�}|�� } |�� }
|�� | tkr^t
d��|
W S tyl t
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�PIPEr r
r �KEYSIGN_VERSIONr �communicate�decode�strip�
ValueErrorr
�
get_string� check_end�get_byter )r r$ �proc�requestr'