在python中为curve25519生成33字节的公钥



使用Java的spongycastle,我能够生成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库没有压缩公钥?

spongycastle(Java(和PyNacl(Python(完全是两个不同的库。

PyNacl(Python(和LazySodiumJava(Java(派生自C库libsodium,它们只能生成32位密钥。

我想也许你可以寻找其他Python包,这与spongycastle(Java(是一致的。

最新更新