#python #class #cryptography #elliptic-curve #diffie-hellman
#python #класс #криптография #эллиптическая кривая #диффи-Хеллман
Вопрос:
Я использую криптографическую библиотеку python для генерации пары ключей с использованием эллиптической кривой (ECDHE), чтобы позже выполнить обмен ключами Диффи-Хеллмана с устройством.
Я заметил, что public_key, который я получаю, имеет тип class , а точнее, класс EllipticCurvePublicKey .
Я не могу распечатать его на терминале, и когда я это делаю, он, очевидно, печатает его адрес. Но мне нужно, чтобы он был отправлен через буфер на USB-устройство, так как я могу его использовать?
Скопируйте приведенный ниже код для справки:
Генерация ключей:
private_key = ec.generate_private_key(ec.SECP256R1())
public_key = private_key.public_key()
Класс и метод в библиотеке криптографии:
@six.add_metaclass(abc.ABCMeta)
class EllipticCurvePrivateKey(object):
@abc.abstractmethod
def signer(self, signature_algorithm):
@abc.abstractmethod
def exchange(self, algorithm, peer_public_key):
@abc.abstractmethod
def public_key(self):
"""
The EllipticCurvePublicKey for this private key.
"""
Комментарии:
1. Чтобы взять ключевой объект и преобразовать его в байты, используйте это . Чтобы пойти другим путем, от байтов к объекту открытого ключа, используйте модуль сериализации .
2. Спасибо! Я обнаружил, что мне нужно преобразовать его в байты, как вы сказали, и далее декодировать его (из pem в der в открытый ключ).