File: //usr/local/CyberPanel/lib/python3.10/site-packages/paramiko/__pycache__/ed25519key.cpython-310.pyc
o
�h! � @ 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 @ sf e Zd ZdZdZ ddd�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 u r|d urt|�}|d ur)| j|| jdd� tj�|�� �}n.|d urKt|d��}| � d|�\} }W d � n1 sEw Y n|d urW| � d|�\} }|s[|ra| �
||�}|d u rm|d u rmtd��|| _|| _
d S )Nz ssh-ed25519-cert-v01@openssh.com)�msg�key_type� cert_type�r�OPENSSHz
need a key)�public_blobr �_check_type_and_load_cert�name�nacl�signing� VerifyKey�
get_binary�open�_read_private_key�_parse_signing_key_data�
ValueError�_signing_key�_verifying_key)
�selfr �data�filename�password�file_obj�
verifying_key�signing_key�f�pkformat� r'