U
q` @ 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)PKeyOPENSSH_AUTH_MAGIC_unpad_openssh)b)SSHExceptionPasswordRequiredExceptionc @ sZ e Zd ZdZdddZdd Zdd Zd d
Zdd Zd
d Z dd Z
dd Zdd ZdS )
Ed25519Keya
Representation of an `Ed25519 `_ 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.
Nc
C s d | _ d }}|d kr&|d k r&t|}|d k rP| j|ddd tj| }nH|d k rt|d}| d|\} }W 5 Q R X n|d k r| d|\} }|s|r| ||}|d kr|d krt
d|| _|| _d S )Nssh-ed25519z ssh-ed25519-cert-v01@openssh.com)msgZkey_typeZ cert_typerZOPENSSHz
need a key)
Zpublic_blobr Z_check_type_and_load_certnaclsigningZ VerifyKey
get_binaryopenZ_read_private_key_parse_signing_key_data
ValueError_signing_key_verifying_key)
selfr
datafilenamepasswordZfile_objZ
verifying_keysigning_keyfZpkformat r :/tmp/pip-target-nv4zd3e_/lib/python/paramiko/ed25519key.py__init__* s, zEd25519Key.__init__c C sp ddl m} t|}|tttkr.td| }| }| }| }|dkrl|sb|dkrtdn6|dkr|st
dt|} | }
| }ntd|dkr||jkrtdg }t|D ]2}
t| }| dkrtd|
| q| }|dkr|}n||j| }tjt||
|d |d |d
d}t|d |d |d |d
||d d t d }||| }tt|}| | krtdg }t|D ]}| dkrtd| }| }tj|d d }|j | kr6|| kr6|dd ks