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__/sk_eddsa.cpython-310.pyc
o

�h��@s�dZddlmZddlmZmZmZddlmZm	Z	ddl
mZmZm
Z
mZddlmZmZmZddlmZmZdd	lmZdd
lmZmZmZmZeeeeeefZeeefZGdd�de�Z e	ryeee �ed
e d�edd
de ed�dSdS)z'U2F EdDSA public key encryption handler�)�sha256)�Optional�Tuple�cast�)�EdDSAPublicKey�ed25519_available)�Byte�String�UInt32�	SSHPacket)�KeyExportError�SSHKey�SSHOpenSSHCertificateV01)�register_public_key_alg�register_certificate_alg)�register_sk_alg)�SSH_SK_ED25519�SSH_SK_USER_PRESENCE_REQD�	sk_enroll�sk_signcsneZdZUdZeed<dZefZee�Z	dZ
		d6ded	ed
e
deedef
�fd
d�
Zdedefdd�Zde
fdd�Zedddddd�ded	ededeedededdfdd��Zed edefd!d"��Zed edefd#d$��Zed%edefd&d'��Zed%edefd(d)��Zdefd*d+�Zdefd,d-�Zdefd.d/�Z d0ed1edefd2d3�Z!d0ed1ed%edefd4d5�Z"�Z#S)7�
_SKEd25519Keyz-Handler for U2F Ed25519 public key encryption�_key�sk-ssh-ed25519@openssh.comTrN��public_value�application�flags�
key_handle�reservedcsDt��t�d|��||_t|�d����|_||_	||_
||_dS)Nsed25519�utf-8)�super�__init__r�	construct�_applicationr�encode�digest�	_app_hash�_flags�_key_handle�	_reserved)�selfrrrrr��	__class__��D/usr/local/CyberCP/lib/python3.10/site-packages/asyncssh/sk_eddsa.pyr"0s
z_SKEd25519Key.__init__�other�returncCsNt|t|��o&|jj|jjko&|j|jko&|j|jko&|j|jko&|j|jkS�N)�
isinstance�typerrr$r(r)r*)r+r0r.r.r/�__eq__;s�
�
�
�
�z_SKEd25519Key.__eq__cCst|jj|j|j|j|jf�Sr2)�hashrrr$r(r)r*�r+r.r.r/�__hash__Fs�z_SKEd25519Key.__hash__zssh:�AsyncSSHF)r�user�pin�resident�touch_required�	algorithmr:r;r<r=c
Cs0|rtnd}tt||||�\}}	|||||	d�S)z&Generate a new U2F Ed25519 private keyrr)rrr)
�clsr>rr:r;r<r=rrrr.r.r/�generateJs
	�z_SKEd25519Key.generate�
key_paramscCs$tt|�\}}}}}||||||�S)z#Construct a U2F Ed25519 private key)r�_PrivateKeyArgs)r?rArrrrrr.r.r/�make_privateZs�z_SKEd25519Key.make_privatecCstt|�\}}|||�S)z"Construct a U2F Ed25519 public key)r�_PublicKeyArgs)r?rArrr.r.r/�make_publiccs
z_SKEd25519Key.make_public�packetcCs<|��}|���d�}|��}|��}|��}|||||fS)z,Decode an SSH format U2F Ed25519 private keyr )�
get_string�decode�get_byte)r?rFrrrrrr.r.r/�decode_ssh_privateksz _SKEd25519Key.decode_ssh_privatecCs|��}|���d�}||fS)z+Decode an SSH format U2F Ed25519 public keyr )rGrH)r?rFrrr.r.r/�decode_ssh_publicwsz_SKEd25519Key.decode_ssh_publiccCsF|jdur	td��d�t|jj�t|j�t|j�t|j�t|j	�f�S)z,Encode an SSH format U2F Ed25519 private keyNzKey is not privater)
r)r
�joinr
rrr$r	r(r*r7r.r.r/�encode_ssh_private�s
�z _SKEd25519Key.encode_ssh_privatecCsd�t|jj�t|j�f�S)z+Encode an SSH format U2F Ed25519 public keyr)rLr
rrr$r7r.r.r/�encode_ssh_public�s�z_SKEd25519Key.encode_ssh_publiccCs|��S)z9Encode U2F Ed25519 certificate private key data for agent)rMr7r.r.r/�encode_agent_cert_private�sz'_SKEd25519Key.encode_agent_cert_private�data�
sig_algorithmcCsF|jdur	td��t||j|j|j�\}}}}t|�t|�t|�S)z6Compute an SSH-encoded signature of the specified dataNzKey handle needed for signing)r)�
ValueErrorrr$r(r
r	r)r+rPrQr�counter�sig�_r.r.r/�sign_ssh�s
�z_SKEd25519Key.sign_sshcCs^|��}|��}|��}|��|jr|t@sdS|j�|jt	|�t
|�t|���|�S)z5Verify an SSH-encoded signature of the specified dataF)
rGrI�
get_uint32�	check_end�_touch_requiredrr�verifyr'r	rrr&)r+rPrQrFrTrrSr.r.r/�
verify_ssh�s�
��z_SKEd25519Key.verify_ssh)rNr)$�__name__�
__module__�__qualname__�__doc__r�__annotations__r>�sig_algorithms�set�all_sig_algorithms�use_executor�bytes�str�intrr"�object�boolr5r8�classmethodr@rrCrErrBrJrDrKrMrNrOrVr[�
__classcell__r.r.r,r/r&sh
����
�������


��rrTs#sk-ssh-ed25519-cert-v01@openssh.comN)!r_�hashlibr�typingrrr�cryptorrrFr	r
rr�
public_keyr
rrrrr�skrrrrrerfrgrBrDrr.r.r.r/�<module>s*
��