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

�h�/�@s�UdZddlmZmZmZmZmZddlmZm	Z	m
Z
mZddlmZm
Z
ddlmZmZmZddlmZddlmZmZmZdd	lmZmZdd
lmZmZddlmZmZddlmZeeeee fefZ!eeefZ"e
d
�Z#ddddd�Z$iZ%eee
fe&d<iZ'ee
efe&d<Gdd�de�Z(dD]2\Z)Z*de)Z+e+dZ,de+Z-e
e*�Z.e.e%e)<e)e'e.<ee+e(de+f�ede+e,e(ed�ee-d�q�dS)z#ECDSA public key encryption handler�)�Dict�Optional�Tuple�Union�cast�)�ASN1DecodeError�	BitString�ObjectIdentifier�TaggedDERObject)�
der_encode�
der_decode)�	CryptoKey�ECDSAPrivateKey�ECDSAPublicKey)�lookup_ec_curve_by_params)�MPInt�String�	SSHPacket)�SSHKey�SSHOpenSSHCertificateV01)�KeyImportError�KeyExportError)�register_public_key_alg�register_certificate_alg)�register_x509_certificate_algz1.2.840.10045.1.1�sha256�sha384�sha512)�1.3.132.0.10�nistp256�nistp384�nistp521�	_alg_oids�_alg_oid_mapcseZdZUdZeeefed<dZdZ	e
d�Zdef�fdd�Z
d	ed
efdd�Zd
efd
d�Zeded
efdd��Zeded
dfdd��Zeded
efdd��Zeded
efdd��Zeded
eefdd��Zeded
eefdd��Zededed
eefd d!��Zededed
eefd"d#��Z ed$e!d
efd%d&��Z"ed$e!d
efd'd(��Z#d
efd)d*�Z$d
efd+d,�Z%d
efd-d.�Z&d
e'eeffd/d0�Z(d
e'eeffd1d2�Z)d
efd3d4�Z*d
efd5d6�Z+d
efd7d8�Z,ded9ed
efd:d;�Z-ded9ed$e!d
efd<d=�Z.�Z/S)>�_ECKeyz0Handler for elliptic curve public key encryption�_keyrsECz1.2.840.10045.2.1�keycs^t��|�d|jj|_|jf|_d|jf|_t|j�|_t	|jj|_
t|jj|_dS)N�ecdsa-sha2-�x509v3-)
�super�__init__r&�curve_id�	algorithm�sig_algorithms�x509_algorithms�set�all_sig_algorithmsr#�_alg_oid�
_hash_algs�	_hash_alg)�selfr'��	__class__��A/usr/local/CyberCP/lib/python3.10/site-packages/asyncssh/ecdsa.pyr+=s
z_ECKey.__init__�other�returncCsNt|t|��o&|jj|jjko&|jj|jjko&|jj|jjko&|jj|jjkS�N)�
isinstance�typer&r,�x�y�d)r5r:r8r8r9�__eq__Hs����z
_ECKey.__eq__cCs t|jj|jj|jj|jjf�Sr<)�hashr&r,r?r@rA�r5r8r8r9�__hash__Rs�z_ECKey.__hash__�
alg_paramsc	
Cspt|t�rzt|}W|Stytd|���d�wt|t�r�t|�dkr�|ddkr�t|dt�r�t|d�dkr�|ddtkr�t|dt�r�t|d�dkr�t|dt�r�t|ddt�r�t|ddt�r�t|dt	�r�|dd}t	�
|ddd	�}t	�
|ddd	�}|d}|d}zt|||||�}W|Sty�}ztt
|��d�d}~wwtd
��)z5Look up an EC curve matching the specified parameterszUnknown elliptic curve OID N�rr����bigzInvalid EC curve parameters)r=r
r$�KeyErrorr�tuple�len�PRIME_FIELD�bytes�int�
from_bytesr�
ValueError�str)	�clsrFr,�p�a�b�point�n�excr8r8r9�
_lookup_curveVsL

���� ��������z_ECKey._lookup_curver-cCs|t�|dd���S)zGenerate a new EC private key�N)r�generate)rUr-r8r8r9r^wsz_ECKey.generate�
key_paramscCs8tt|�\}}}t|t�rt�|d�}|t�|||��S)zConstruct an EC private keyrK)r�_PrivateKeyArgsr=rPrQrRr�	construct)rUr_r,�
private_value�public_valuer8r8r9�make_private�s�

�z_ECKey.make_privatecCstt|�\}}|t�||��S)zConstruct an EC public key)r�_PublicKeyArgsrra)rUr_r,rcr8r8r9�make_public�sz_ECKey.make_public�key_datacCs�t|t�rdt|�dkrd|ddkrdt|dt�rdt|dt�rd|djdkrd|dj}|d}t|�dkrZt|dt�rZ|djdkrZt|djt�rZ|djjdkrZ|djj}nd}|�	|�||fSdS)z%Decode a PKCS#1 format EC private keyrHrrrI�N)
r=rMrNrPr�tag�valuer	�unusedr\)rUrgrF�private_key�
public_keyr8r8r9�decode_pkcs1_private�s$�
��z_ECKey.decode_pkcs1_privatecC�td��)z$Decode a PKCS#1 format EC public keyz'PKCS#1 not supported for EC public keys)r)rUrgr8r8r9�decode_pkcs1_public�sz_ECKey.decode_pkcs1_public�datacCs�zt|�}Wntyd}Ynwt|t�rct|�dkrc|ddkrct|dt�rc|d}t|�dkrYt|dt�rY|djdkrYt|djt	�rY|djj
dkrY|djj}nd}|�|�||fSdS)z%Decode a PKCS#8 format EC private keyNrrrHrh)r
rr=rMrNrPrrirjr	rkr\)rUrFrqrgrlrmr8r8r9�decode_pkcs8_private�s&���z_ECKey.decode_pkcs8_privatecCst|t�r|�|�|fSdS)z$Decode a PKCS#8 format EC public keyN)r=r
r\)rUrFrqr8r8r9�decode_pkcs8_public�s
z_ECKey.decode_pkcs8_public�packetcCs"|��}|��}|��}|||fS)z#Decode an SSH format EC private key)�
get_string�	get_mpint)rUrtr,rmrlr8r8r9�decode_ssh_private�s
z_ECKey.decode_ssh_privatecCs|��}|��}||fS)z"Decode an SSH format EC public key)ru)rUrtr,rmr8r8r9�decode_ssh_public�sz_ECKey.decode_ssh_publiccCstdt|jj��S)z2Encode an EC public key blob as a tagged bitstringr)rr	r&rcrDr8r8r9�encode_public_tagged�sz_ECKey.encode_public_taggedcCs,|jjstd��d|jjtd|j�|��fS)z%Encode a PKCS#1 format EC private key�Key is not privaterr)r&rbrrr2ryrDr8r8r9�encode_pkcs1_private�s
�z_ECKey.encode_pkcs1_privatecCro)z$Encode a PKCS#1 format EC public keyz*PKCS#1 is not supported for EC public keys)rrDr8r8r9�encode_pkcs1_public�sz_ECKey.encode_pkcs1_publiccCs,|jjstd��|jtd|jj|��f�fS)z%Encode a PKCS#8 format EC private keyrzr)r&rbrr2rryrDr8r8r9�encode_pkcs8_privates
�z_ECKey.encode_pkcs8_privatecCs|j|jjfS)z$Encode a PKCS#8 format EC public key)r2r&rcrDr8r8r9�encode_pkcs8_publicsz_ECKey.encode_pkcs8_publiccCs8|jjstd��d�t|jj�t|jj�t|jj�f�S)z#Encode an SSH format EC private keyrzrh)r&rAr�joinrr,rcrrDr8r8r9�encode_ssh_privates

�z_ECKey.encode_ssh_privatecCsd�t|jj�t|jj�f�S)z"Encode an SSH format EC public keyrh)rrr&r,rcrDr8r8r9�encode_ssh_publics
�z_ECKey.encode_ssh_publiccCs|jjstd��t|jj�S)z3Encode ECDSA certificate private key data for agentrz)r&rArrrDr8r8r9�encode_agent_cert_private!sz _ECKey.encode_agent_cert_private�
sig_algorithmcCsN|jjstd��t|j�||j��}ttttf|�\}}t	t
|�t
|��S)z6Compute an SSH-encoded signature of the specified datazPrivate key needed for signing)r&rbrSr
�signr4rrrQrr)r5rqr��sig�r�sr8r8r9�sign_ssh)s
z_ECKey.sign_sshcCsJ|��}|��t|�}|��}|��}|��|j�|t||f�|j�S)z5Verify an SSH-encoded signature of the specified data)ru�	check_endrrvr&�verifyrr4)r5rqr�rtr�r�r�r8r8r9�
verify_ssh5sz_ECKey.verify_ssh)0�__name__�
__module__�__qualname__�__doc__rrr�__annotations__�default_x509_hash�pem_namer
�	pkcs8_oidrr+�object�boolrBrQrE�classmethodrPr\r^rrdrfrr`rnrerprrrsrrwrxryr{r|rr}r~r�r�r�r�r��
__classcell__r8r8r6r9r%4sn

 ������		
	

��r%))r"z1.3.132.0.35)r!z1.3.132.0.34)r z1.2.840.10045.3.1.7)rz1.3.132.0.10r(s-cert-v01@openssh.comr)TN)/r��typingrrrrr�asn1rr	r
rrr
�cryptorrrrrtrrrrmrrrrrrrrPrQr`rerOr3r#r�r$r%�	_curve_id�_oid_str�
_algorithm�_cert_algorithm�_x509_algorithm�_oidr8r8r8r9�<module>sJ���