1
回答
openssl中RSA函数读取公钥长度不对的问题
注册华为云得mate10,2.9折抢先购!>>>   
我的嵌入式程序用到了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:公钥文件可以确定是没有问题的

举报
钱多多
发帖于3年前 1回/848阅
顶部