2016-09-21 4 views
0

Я ищу для преобразования ключа EC, сгенерированного с использованием модуля криптографии, в соответствующие строки OpenSSH. какПреобразование ключа шифрования python EC в формат OpenSSH

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

Это код, который я использую для ЕС генерации ключей

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

Я попробовал следующее.

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

но, похоже, не работает.

Я полагаю, что должен быть простой способ сделать это, но я чего-то не хватает.

ответ

0

Cryptography добавлена ​​поддержка для этого в июне 2016 года, можно следующим образом

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

это дает эти аккуратные OpenSSH открытые ключи