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__/ed25519key.cpython-38.pyc
U

P��g!�@sxddlZddlmZddlmZddlZddlmZddl	m
Z
mZmZddl
mZddlmZmZGdd	�d	e
�ZdS)
�N)�default_backend)�Cipher)�Message)�PKey�OPENSSH_AUTH_MAGIC�_unpad_openssh)�b)�SSHException�PasswordRequiredExceptionc@sdeZdZdZdZddd�Zdd�Zdd	�Zed
d��Z	dd
�Z
dd�Zdd�Zddd�Z
dd�ZdS)�
Ed25519Keya
    Representation of an `Ed25519 <https://ed25519.cr.yp.to/>`_ key.

    .. note::
        Ed25519 key support was added to OpenSSH in version 6.5.

    .. versionadded:: 2.2
    .. versionchanged:: 2.3
        Added a ``file_obj`` parameter to match other key classes.
    zssh-ed25519Nc
	Cs�d|_d}}|dkr&|dk	r&t|�}|dk	rR|j||jdd�tj�|���}nH|dk	r�t|d��}|�	d|�\}	}W5QRXn|dk	r�|�	d|�\}	}|s�|r�|�
||�}|dkr�|dkr�td��||_||_
dS)Nz ssh-ed25519-cert-v01@openssh.com)�msgZkey_typeZ	cert_type�rZOPENSSHz
need a key)Zpublic_blobrZ_check_type_and_load_cert�name�nacl�signingZ	VerifyKey�
get_binary�openZ_read_private_key�_parse_signing_key_data�
ValueError�_signing_key�_verifying_key)
�selfr�data�filename�passwordZfile_objZ
verifying_key�signing_key�fZpkformat�r�@/opt/cppython/lib/python3.8/site-packages/paramiko/ed25519key.py�__init__,s,�zEd25519Key.__init__cCstddlm}t|�}|�tt��tkr.td��|��}|��}|��}|�	�}|dkrl|sb|dkr�td��n6|dkr�|s�t
d��t|�}	|	��}
|	�	�}ntd��|dkr�||jkr�td��g}t|�D]4}
t|���}|��|j
kr�td��|�|���q�|��}|dk�r|}n||j|}tjt|�|
|d|d|d	d
�}t|d|d|d��|d||dd��t�d
���}|�|�|��}tt|��}|�	�|�	�k�r�td��g}t|�D]�}|��|j
k�r�td��|��}|��}tj�|dd��}|j��|k�r:||k�r:|dd�k�s@nt�|�|�|���q�t|�dk�rltd��|dS)Nr)�	TransportzInvalid key�none�bcryptzPrivate key file is encryptedzkey-sizez
block-sizeT)r�saltZdesired_key_bytes�roundsZignore_few_rounds�class�mode)�backend� �)Zparamiko.transportr r�	get_bytes�lenrr	�get_textrZget_intr
Z_cipher_info�ranger�appendr"�kdfrrr�	decryptor�update�finalizerrrZ
SigningKey�
verify_key�encode�AssertionError)rrrr �messageZ
ciphernameZkdfnameZ
kdfoptionsZnum_keysr/Zbcrypt_saltZ
bcrypt_roundsZpublic_keys�_ZpubkeyZprivate_ciphertextZprivate_data�cipher�keyr0Zsigning_keys�i�publicZkey_datarrrrrIs�
�


�	�
��
�

�
z"Ed25519Key._parse_signing_key_datacCs@|��r|jj}n|j}t�}|�|j�|�|���|��S�N)	�can_signrr3rr�
add_stringrr4�asbytes)r�v�mrrrr?�s
zEd25519Key.asbytescCs$|��r|jj}n|j}|��|fSr<)r=rr3r�get_name)rr@rrr�_fields�s
zEd25519Key._fieldscCs|jSr<)r�rrrrrB�szEd25519Key.get_namecCsdS)N�rrDrrr�get_bits�szEd25519Key.get_bitscCs
|jdk	Sr<)rrDrrrr=�szEd25519Key.can_signcCs*t�}|�|j�|�|j�|�j�|Sr<)rr>rr�sign�	signature)rr�	algorithmrArrr�
sign_ssh_data�szEd25519Key.sign_ssh_datacCsL|��|jkrdSz|j�||���Wntjjk
rBYdSXdSdS)NFT)r,rr�verifyrr�
exceptionsZBadSignatureError)rrrrrr�verify_ssh_sig�szEd25519Key.verify_ssh_sig)NNNNN)N)�__name__�
__module__�__qualname__�__doc__rrrr?�propertyrCrBrFr=rJrMrrrrrs"�
`


r)r"Zcryptography.hazmat.backendsrZ&cryptography.hazmat.primitives.ciphersrZnacl.signingrZparamiko.messagerZ
paramiko.pkeyrrrZ
paramiko.utilrZparamiko.ssh_exceptionr	r
rrrrr�<module>s

F1le Man4ger