openssl中RSA函数读取公钥长度不对的问题
我的嵌入式程序用到了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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
找到原因了,开发板制造商提供了64bit和32bit两种交叉编译器,我用64bit编译产生上述错误,用32bit就可以了