使用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(是一致的。