使用 OpenSSL 从 Ed25519 私钥中提取公钥?

使用 OpenSSL 从 Ed25519 私钥中提取公钥?

可以通过执行以下操作生成 Ed25519 私钥openssl genpkey -algorithm ed25519 -outform PEM -out private.pem。我的问题是...使用 OpenSSL 是否有办法从私钥获取公钥?

使用 RSA 私钥,您可以执行openssl rsa -in private.pem -pubout。这将给出一个与 RFC5280 中的 SubjectPublicKeyInfo 相对应的密钥(至少对我来说是这样)。

但是我如何才能获得与 Ed25519 密钥类似的公钥呢?我想我可以用私钥生成 CSR,然后从 CSR 中获取它,但这似乎需要做很多工作。当然,这比运行单个命令要费力得多……

答案1

格式与 RSA 命令相同,但使用 pkey 命令:

openssl pkey -in private.pem -pubout

-----BEGIN PUBLIC KEY-----
MCowBQYDK2VwAyEABhjHE6AOa33q2JGlVk9OjICRp2S6d9nUJh0Xr6PUego=
-----END PUBLIC KEY-----

您还可以这样做来查看从私钥文件中检测到的算法以及密钥的原始字节:

openssl pkey -in private.pem -pubout -text

-----BEGIN PUBLIC KEY-----
MCowBQYDK2VwAyEABhjHE6AOa33q2JGlVk9OjICRp2S6d9nUJh0Xr6PUego=
-----END PUBLIC KEY-----
ED25519 Private-Key:
priv:
    55:a9:89:ff:76:ae:c9:4f:51:dd:ee:63:80:a5:ae:
    e7:4a:e9:1d:a6:99:85:a3:09:38:04:a7:12:1c:10:
    7b:71
pub:
    06:18:c7:13:a0:0e:6b:7d:ea:d8:91:a5:56:4f:4e:
    8c:80:91:a7:64:ba:77:d9:d4:26:1d:17:af:a3:d4:
    7a:0a

相关内容