Server : LiteSpeed
System : Linux server51.dnsbootclub.com 4.18.0-553.62.1.lve.el8.x86_64 #1 SMP Mon Jul 21 17:50:35 UTC 2025 x86_64
User : nandedex ( 1060)
PHP Version : 8.1.33
Disable Function : NONE
Directory :  /opt/cppython/lib/python3.8/site-packages/paramiko/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]


Current File : //opt/cppython/lib/python3.8/site-packages/paramiko/__pycache__/rsakey.cpython-38.pyc
U

P��gz�@sxdZddlmZmZddlmZddlmZmZddl	m
Z
mZddlm
Z
ddlmZddlmZGd	d
�d
e�ZdS)z
RSA keys.
�)�InvalidSignature�UnsupportedAlgorithm)�default_backend)�hashes�
serialization)�rsa�padding)�Message)�PKey)�SSHExceptionc@s�eZdZdZdZejejejejejejd�Z	d)dd�Z
edd��Ze
d	d
��Ze
dd��Zd
d�Zdd�Ze
dd��Zdd�Zdd�Zdd�Zd*dd�Zdd�Zd+dd�Zd,dd �Zed-d!d"��Zd#d$�Zd%d&�Zd'd(�ZdS).�RSAKeyzZ
    Representation of an RSA key which can be used to sign and verify SSH2
    data.
    �ssh-rsa)r
�ssh-rsa-cert-v01@openssh.comzrsa-sha2-256z!rsa-sha2-256-cert-v01@openssh.comzrsa-sha2-512z!rsa-sha2-512-cert-v01@openssh.comNcCs�d|_d|_|dk	r$|�||�dS|dk	r<|�||�dS|dkrT|dk	rTt|�}|dk	rd||_n2|j||jdd�tj|�	�|�	�d��
t��|_dS)Nr)�msgZkey_typeZ	cert_type��e�n)�keyZpublic_blob�_from_private_key�_from_private_key_filer	Z_check_type_and_load_cert�namer�RSAPublicNumbersZ	get_mpint�
public_keyr)�selfr�data�filename�passwordr�file_obj�r�</opt/cppython/lib/python3.8/site-packages/paramiko/rsakey.py�__init__1s.	���zRSAKey.__init__cCst|j���S�N)�list�HASHES�keys)�clsrrr�identifiersRszRSAKey.identifierscCs|jjSr!)r�key_size�rrrr�sizeVszRSAKey.sizecCs(t|jtj�r|j��jS|j��SdSr!)�
isinstancerr�
RSAPrivateKeyZprivate_numbers�public_numbersr(rrrr,ZszRSAKey.public_numberscCs6t�}|�|j�|�|jj�|�|jj�|��Sr!)r	�
add_stringrZ	add_mpintr,rr�asbytes)r�mrrrr.as
zRSAKey.asbytescCs|��jddd�S)N�utf8�ignore)�errors)r.�decoder(rrr�__str__hszRSAKey.__str__cCs|��|jj|jjfSr!)�get_namer,rrr(rrr�_fieldsmszRSAKey._fieldscCs|jSr!)rr(rrrr5qszRSAKey.get_namecCs|jSr!)r)r(rrr�get_bitstszRSAKey.get_bitscCst|jtj�Sr!)r*rrr+r(rrr�can_signwszRSAKey.can_signcCsR|dkr|j}|jj|t��|j|�d�}t�}|�|�dd��|�|�|S)N)r�	algorithmz-cert-v01@openssh.com�)	rr�signr�PKCS1v15r#r	r-�replace)rrr9�sigr/rrr�
sign_ssh_datazs
�
zRSAKey.sign_ssh_datacCs�|��}||jkrdS|j}t|tj�r0|��}|��}|jt	|�d}|dkrfd|dd|}z |�
||t��|j|��Wnt
k
r�YdSXdSdS)NF�r��T)Zget_textr#rr*rr+rZ
get_binaryr'�len�verifyrr<r)rrrZ
sig_algorithmrr;�diffrrr�verify_ssh_sig�s(

�zRSAKey.verify_ssh_sigcCs|j||jtjj|d�dS�N)r)Z_write_private_key_filerr�
PrivateFormat�TraditionalOpenSSL)rrrrrr�write_private_key_file�s�zRSAKey.write_private_key_filecCs|j||jtjj|d�dSrG)Z_write_private_keyrrrHrI)rrrrrr�write_private_key�s�zRSAKey.write_private_keycCstjd|t�d�}t|d�S)a$
        Generate a new private RSA key.  This factory function can be used to
        generate a new host key or authentication key.

        :param int bits: number of bits the generated key should be.
        :param progress_func: Unused
        :return: new `.RSAKey` private key
        i)Zpublic_exponentr'�backend)r)rZgenerate_private_keyrr)�bitsZ
progress_funcrrrr�generate�s
�zRSAKey.generatecCs|�d||�}|�|�dS�NZRSA)Z_read_private_key_file�_decode_key)rrrrrrrr�szRSAKey._from_private_key_filecCs|�d||�}|�|�dSrO)Z_read_private_keyrP)rrrrrrrr�szRSAKey._from_private_keyc
Cs�|\}}||jkr`ztj|dt�d�}Wq�tttfk
r\}ztt|���W5d}~XYq�Xnl||j	kr�|�
|d�\}}}}}}	tj||d�}
tj
||	|||d||	d||
d��t��}n
|�|�t|tj�s�t�||_dS)N)rrLZiiiiiir�)�p�q�dZdmp1Zdmq1�iqmpr,)Z_PRIVATE_KEY_FORMAT_ORIGINALrZload_der_private_keyr�
ValueError�	TypeErrorrr�strZ_PRIVATE_KEY_FORMAT_OPENSSHZ_uint32_cstruct_unpackrrZRSAPrivateNumbersZprivate_keyZ_got_bad_key_format_idr*r+�AssertionErrorr)rrZpkformatrrrrTrUrRrSr,rrrrP�s6
�
 


��

zRSAKey._decode_key)NNNNNN)N)N)N)N)�__name__�
__module__�__qualname__�__doc__rr�SHA1�SHA256�SHA512r#r �classmethodr&�propertyr)r,r.r4r6r5r7r8r?rFrJrK�staticmethodrNrrrPrrrrr!sL��
!






rN)r]Zcryptography.exceptionsrrZcryptography.hazmat.backendsrZcryptography.hazmat.primitivesrrZ)cryptography.hazmat.primitives.asymmetricrrZparamiko.messager	Z
paramiko.pkeyr
Zparamiko.ssh_exceptionrrrrrr�<module>s

F1le Man4ger