使用 OpenSSL 生成 ed25519 公钥

Generating public ed25519 key with OpenSSL

提问人:Szyszka947 提问时间:5/7/2022 最后编辑:Szyszka947 更新时间:9/25/2022 访问量:19602

问:

我正在使用此命令生成私钥 ed25519 密钥:

openssl genpkey -algorithm ed25519 -out private.pem

这是示例结果:

-----BEGIN PRIVATE KEY-----
MC4CAQAwBQYDK2VwBCIEIAYIsKL0xkTkAXDhUN6eDheqODEOGyFZ04jsgFNCFxZf
-----END PRIVATE KEY-----

所以我想根据这个私钥生成一个公钥,我这样做是这样的:

openssl pkey -in private.pem -out public.pem

但是使用此命令,我仍然得到一个私钥,如下所示:

-----BEGIN PRIVATE KEY-----
MC4CAQAwBQYDK2VwBCIEIAYIsKL0xkTkAXDhUN6eDheqODEOGyFZ04jsgFNCFxZf
-----END PRIVATE KEY-----

此外,此私钥和“公钥”不是 32 字节,而是 64 字节。我的命令有什么问题?

OpenSSL 密钥对 ED25519

评论

3赞 Topaco 5/7/2022
缺少 -pubout 选项。
0赞 Szyszka947 5/7/2022
哦,谢谢。但是你知道为什么这是 60 个字节而不是 32 个字节吗?同样,私钥的长度为 64 个字节,而不是 32 个字节。
3赞 Topaco 5/7/2022
您的公钥具有 X.509/SPKI 格式。其中包含的原始密钥大小为 32 字节,请在 ASN.1 解析器中检查密钥,例如 lapo.it/asn1js。同样,这同样适用于具有 PKCS#8 格式的私钥
1赞 Sergey Ponomarev 6/25/2022
您看到的是 Base64 编码的 ASN.1 证书(称为 PEM 格式)。您可以以原始二进制格式生成证书:。生成的文件为 48 字节。现在您可以使用 keystore-explorer.org 然后单击“检查证书”,选择证书(pem 或 der),没有任何密码,因此只需单击 Enter,您就会看到证书详细信息。单击 ASN 和 HEX 编码密钥,它是原始字节openssl genpkey -algorithm ed25519 -outform DER -out test25519.derOCTET STRING
1赞 Sergey Ponomarev 6/25/2022
也可能是有用的 mta.openssl.org/pipermail/openssl-users/2018-March/007777.html

答:

1赞 Alexred 7/26/2022 #1

该问题与下一代 pubkey openssl ed25519 重复,并且已经给出了答案。

openssl pkey -in ed25519key.pem -pubout

11赞 Danny G 9/25/2022 #2

这将以文件形式返回公钥。

openssl pkey -in private.pem -pubout -out public.pem