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

钱多多 发布于 2015/07/02 11:53
阅读 910
收藏 0
我的嵌入式程序用到了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_PUBKEYRSA_size 三个库函数,应该没什么问题吧?

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

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

加载中
0
钱多多
找到原因了,开发板制造商提供了64bit和32bit两种交叉编译器,我用64bit编译产生上述错误,用32bit就可以了
返回顶部
顶部