|
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__/ |
U
P��g! � @ sx d dl Z d dlmZ d dlmZ d dlZd dlmZ d dl m
Z
mZmZ d dl
mZ d dlmZmZ G dd � d e
�ZdS )
� N)�default_backend)�Cipher)�Message)�PKey�OPENSSH_AUTH_MAGIC�_unpad_openssh)�b)�SSHException�PasswordRequiredExceptionc @ sd e Zd ZdZdZddd�Zdd� Zdd � Zed
d� �Z dd
� Z
dd� Zdd� Zddd�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
C s� d | _ d }}|d kr&|d k r&t|�}|d k rR| j|| jdd� tj�|�� �}nH|d k r�t|d��}| � d|�\} }W 5 Q R X n|d k r�| � d|�\} }|s�|r�| �
||�}|d kr�|d kr�td��|| _|| _
d S )Nz ssh-ed25519-cert-v01@openssh.com)�msgZkey_typeZ cert_type�rZOPENSSHz
need a key)Zpublic_blobr Z_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__c C st ddl m} 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 ||d d � �t� d
��� }|�|�|�� }tt|��}|� � |� � k�r�td��g }t|�D ]�}|�� | j
k�r�td��|�� }|�� }tj�|d d� �}|j�� | k�r:|| k�r:|dd � k�s@n t�|�|� |�� �q�t|�dk�rltd��|d S )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�lenr r �get_textr Zget_intr
Z_cipher_info�ranger �appendr"