openssl中RSA函数读取公钥长度不对的问题

发布于 2021-11-27 23:51:53 字数 835 浏览 805 评论 1

我的嵌入式程序用到了openssl库中的RSA相关的函数,进行加密解密。

但是在最开始的初始化环节,读取公钥时就出现了问题,应该读取的 key 长度为 320 字节,但是print 显示读取了 316 字节,相关代码如下:

if((fp = fopen(“public_key.pem”, "rb")) == NULL) {
ERR("failed to open file %s.", “public_key.pem”);
return -1;
}

if((public_key = PEM_read_RSA_PUBKEY(fp, NULL, NULL, NULL)) == NULL) {
fclose(fp);
ERR("failed to read public key from file.");
return -1;
}
fclose(fp);

flen =RSA_size(public_key);


if(flen != 320) {
RSA_free(public_key);
ERR("public key length is invalid, must be 2560 bits.");
return -1;
}

上述代码就是 fopen、PEM_read_RSA_PUBKEY、RSA_size 三个库函数,应该没什么问题吧?

ps:由于是在mips嵌入式环境下运行程序,所以是交叉编译了openssl,用网上的小程序试了下,没问题

ps:公钥文件可以确定是没有问题的

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

檐上三寸雪 2021-12-01 02:33:11

找到原因了,开发板制造商提供了64bit和32bit两种交叉编译器,我用64bit编译产生上述错误,用32bit就可以了

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文