Сгенерируйте 33-байтовый открытый ключ для curve25519 в python

Используя spongycastle Java, я могу сгенерировать curve25519 закрытые ключи (32 байта) и открытые ключи (33 байта).

Точно так же для Python я использую библиотеку Nacl для curve25519, но здесь сгенерированный открытый ключ имеет размер только 32 байта. В открытом ключе отсутствует один байт координаты y.

from nacl.public import PrivateKey
import binascii

privKey = PrivateKey.generate()
pubKey = privKey.public_key

print("privKey:", binascii.hexlify(bytes(privKey)))
print("pubKey: ", binascii.hexlify(bytes(pubKey)))

есть предложения, почему библиотека Nacl не сжимает открытый ключ?


person user3531900    schedule 20.07.2020    source источник


Ответы (1)


spongycastle (Java) и PyNacl (Python) - это две совершенно разные библиотеки.

PyNacl (Python) и LazySodiumJava (Java) являются производными от библиотеки C libsodium, они могут генерировать только 32-битный ключ.

Думаю, вы могли бы поискать другие пакеты Python, которые совместимы с spongycastle (Java).

person nil    schedule 13.08.2020