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

�h� �@s�dZddlmZmZmZmZddlmZmZm	Z	m
Z
ddlmZm
Z
ddlmZddlmZmZmZddlmZmZmZdd	lmZmZdd
lmZeeeeeefZeeeeefZGdd�de�Zed
ed�edd
deed�ejD]Z ee d�qudS)z!DSA public key encryption handler�)�Optional�Tuple�Union�cast�)�ASN1DecodeError�ObjectIdentifier�
der_encode�
der_decode)�
DSAPrivateKey�DSAPublicKey)�all_ints)�MPInt�String�	SSHPacket)�SSHKey�SSHOpenSSHCertificateV01�KeyExportError)�register_public_key_alg�register_certificate_alg)�register_x509_certificate_algc@s�eZdZUdZeeefed<dZdZ	dZ
ed�ZefZ
defZee
�Zded	efd
d�Zd	efdd
�Zeded	dfdd��Zeded	efdd��Zeded	efdd��Zeded	eefdd��Zeded	eefdd��Z ededed	eefdd��Z!ededed	eefdd ��Z"ed!e#d	efd"d#��Z$ed!e#d	efd$d%��Z%d	efd&d'�Z&d	efd(d)�Z'd	e(eeffd*d+�Z)d	e(eeffd,d-�Z*d	efd.d/�Z+d	efd0d1�Z,d	efd2d3�Z-ded4ed	efd5d6�Z.ded4ed!e#d	efd7d8�Z/d9S):�_DSAKeyz%Handler for DSA public key encryption�_key�ssh-dss�sha256sDSAz1.2.840.10040.4.1sx509v3-�other�returncCs^t|t|��o.|jj|jjko.|jj|jjko.|jj|jjko.|jj|jjko.|jj|jjkS�N)�
isinstance�typer�p�q�g�y�x)�selfr�r&�?/usr/local/CyberCP/lib/python3.10/site-packages/asyncssh/dsa.py�__eq__3s�����z_DSAKey.__eq__cCs&t|jj|jj|jj|jj|jjf�Sr)�hashrr r!r"r#r$�r%r&r&r'�__hash__>s�z_DSAKey.__hash__�	algorithmcCs|tjdd��S)zGenerate a new DSA private keyi)�key_size)r�generate)�clsr,r&r&r'r.Bsz_DSAKey.generate�
key_paramscCs*tt|�\}}}}}|t�|||||��S)zConstruct a DSA private key)r�_PrivateKeyArgsr�	construct)r/r0r r!r"r#r$r&r&r'�make_privateJsz_DSAKey.make_privatecCs&tt|�\}}}}|t�||||��S)zConstruct a DSA public key)r�_PublicKeyArgsrr2)r/r0r r!r"r#r&r&r'�make_publicRsz_DSAKey.make_public�key_datacCs@t|t�rt|�dkrt|�r|ddkrtt|dd��SdS)z&Decode a PKCS#1 format DSA private key�rrN)r�tuple�lenr
rr1)r/r6r&r&r'�decode_pkcs1_privateZs�z_DSAKey.decode_pkcs1_privatecCs:t|t�rt|�dkrt|�r|\}}}}||||fSdS)z%Decode a PKCS#1 format DSA public key�N)rr8r9r
)r/r6r#r r!r"r&r&r'�decode_pkcs1_publices�z_DSAKey.decode_pkcs1_public�
alg_params�datacCsrzt|�}Wn
tyYdSwt|t�r7t|�dkr7t|�r7t|t�r7|\}}}t|||�}|||||fSdS)z&Decode a PKCS#8 format DSA private keyN�)r
rrr8r9r
�int�pow)r/r=r>r$r r!r"r#r&r&r'�decode_pkcs8_privateqs���
z_DSAKey.decode_pkcs8_privatecCsdzt|�}Wn
tyYdSwt|t�r0t|�dkr0t|�r0t|t�r0|\}}}||||fSdS)z%Decode a PKCS#8 format DSA public keyNr?)r
rrr8r9r
r@)r/r=r>r#r r!r"r&r&r'�decode_pkcs8_public�s���
z_DSAKey.decode_pkcs8_public�packetcCs6|��}|��}|��}|��}|��}|||||fS)z$Decode an SSH format DSA private key��	get_mpint)r/rDr r!r"r#r$r&r&r'�decode_ssh_private�sz_DSAKey.decode_ssh_privatecCs,|��}|��}|��}|��}||||fS)z#Decode an SSH format DSA public keyrE)r/rDr r!r"r#r&r&r'�decode_ssh_public�s
z_DSAKey.decode_ssh_publiccCs4|jjstd��d|jj|jj|jj|jj|jjfS)z&Encode a PKCS#1 format DSA private key�Key is not privater)rr$rr r!r"r#r*r&r&r'�encode_pkcs1_private�s
�z_DSAKey.encode_pkcs1_privatecCs|jj|jj|jj|jjfS)z%Encode a PKCS#1 format DSA public key)rr#r r!r"r*r&r&r'�encode_pkcs1_public�sz_DSAKey.encode_pkcs1_publiccCs2|jjstd��|jj|jj|jjft|jj�fS)z&Encode a PKCS#8 format DSA private keyrI)rr$rr r!r"r	r*r&r&r'�encode_pkcs8_private�s"z_DSAKey.encode_pkcs8_privatecCs"|jj|jj|jjft|jj�fS)z%Encode a PKCS#8 format DSA public key)rr r!r"r	r#r*r&r&r'�encode_pkcs8_public�s"z_DSAKey.encode_pkcs8_publiccCsL|jjstd��d�t|jj�t|jj�t|jj�t|jj�t|jj�f�S)z$Encode an SSH format DSA private keyrI�)	rr$r�joinrr r!r"r#r*r&r&r'�encode_ssh_private�s
�z_DSAKey.encode_ssh_privatecCs2d�t|jj�t|jj�t|jj�t|jj�f�S)z#Encode an SSH format DSA public keyrN)rOrrr r!r"r#r*r&r&r'�encode_ssh_public�s�z_DSAKey.encode_ssh_publiccCs|jjstd��t|jj�S)z1Encode DSA certificate private key data for agentrI)rr$rrr*r&r&r'�encode_agent_cert_private�sz!_DSAKey.encode_agent_cert_private�
sig_algorithmcCsT|jjstd��t|j�|d��}ttttf|�\}}t|�	dd�|�	dd��S)z6Compute an SSH-encoded signature of the specified datazPrivate key needed for signing�sha1��big)
rr$�
ValueErrorr
�signrrr@r�to_bytes)r%r>rS�sig�r�sr&r&r'�sign_ssh�s
z_DSAKey.sign_sshcCs`|��}|��t|�dkrdSt�|dd�d�}t�|dd�d�}|j�|t||f�d�S)z5Verify an SSH-encoded signature of the specified data�(FNrUrVrT)�
get_string�	check_endr9r@�
from_bytesr�verifyr	)r%r>rSrDrZr[r\r&r&r'�
verify_ssh�sz_DSAKey.verify_sshN)0�__name__�
__module__�__qualname__�__doc__rrr�__annotations__r,�default_x509_hash�pem_namer�	pkcs8_oid�sig_algorithms�x509_algorithms�set�all_sig_algorithms�object�boolr(r@r+�classmethod�bytesr.rr3r5rr1r:r4r<rBrCrrGrHrJrKrrLrMrPrQrRr]rcr&r&r&r'r&sn

�
�����
	

��rrFsssh-dss-cert-v01@openssh.comN)!rg�typingrrrr�asn1rrr	r
�cryptorr�miscr
rDrrr�
public_keyrrrrrrr@r1r4rrm�algr&r&r&r'�<module>s(W�
�