gpt4 book ai didi

c - 为什么我无法使用 PEM_read_RSAPublicKey 读取 openssl 生成的 RSA 公钥?

转载 作者:太空狗 更新时间:2023-10-29 16:32:01 24 4
gpt4 key购买 nike

我正在尝试像这样读取使用 openssl 生成的 RSA 公钥:

Private Key:
openssl genrsa -out mykey.pem 1024

Public Key afterwards:
openssl rsa -in mykey.pem -pubout > somewhere.pub

然后我尝试阅读:

FILE *keyfile = fopen("somewhere.pub", "r");
RSA *rsa_pub = PEM_read_RSAPublicKey(keyfile, NULL, NULL, NULL);
//rsa_pub == NULL!

当我读取私钥时它起作用了

FILE *keyfile = fopen("mykey.pem", "r");
RSA *rsa_pri = PEM_read_RSAPrivateKey(keyfile, NULL, NULL, NULL);
//all good

有什么想法吗?

我读到 openssl 生成 RSA 公钥的 X509 key 。但我什至无法加载 X509 公钥。

谢谢

最佳答案

您可以尝试 PEM_read_RSA_PUBKEY() 而不是 PEM_read_RSAPublicKey()

这都是关于格式的。

openssl默认生成的公钥文件格式是PEM格式。

PEM_read_RSA_PUBKEY() 读取 PEM 格式。 PEM_read_RSAPublicKey() 读取 PKCS#1 格式。

因此,如果您想坚持使用 PEM_read_RSAPublicKey(),您可以通过在生成公钥。

关于c - 为什么我无法使用 PEM_read_RSAPublicKey 读取 openssl 生成的 RSA 公钥?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7818117/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com