2016-09-21 3 views
0

Je cherche à convertir la clé EC générée en utilisant le module de cryptographie à leurs chaînes OpenSSH respectives. commeConvertir la clé EC cryptographique au format OpenSSH

ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAhANiNlmyHtBUgaPXG+CtCVK8mQxBUtDjX3/nqqPZAHhduAAAAIE/JNDqLTeq9WVa5XWyU2Y7NJXfV54wakHmsP5gRNeh2 

Voici le code que j'utilise pour la génération de clés EC

from cryptography.hazmat.backends import default_backend 
from cryptography.hazmat.primitives.asymmetric import ec 
key=ec.generate_private_key(ec.SECP256R1(), default_backend()) 

J'ai essayé ce qui suit.

numbers = key.private_numbers() 
opensshpublic = 'ecdsa-sha2-nistp256' + base64.b64encode('nistp256' + numbers.public_numbers.x, numbers.public_numbers.y) 

mais cela ne semble pas fonctionner.

Je suppose qu'il devrait y avoir un moyen facile de le faire mais il me manque quelque chose.

Répondre

0

Cryptographie a ajouté le support pour ce faire en Juin 2016, il est possible comme suit

from cryptography.hazmat.primitives import serialization 
key.public_bytes(serialization.Encoding.OpenSSH, serialization.PublicFormat.OpenSSH) 

cela donne les clés publiques OpenSSH soignées