读RSA私钥(有加密)失败
分不是问题,问题是没分
相关代码如下:
//...
RSA *rsaK;
BIO *BP ;
char FileName[256],PSW[80];
//...
PEM_write_bio_RSAPrivateKey(BP,rsaK,EVP_des_ede3_cbc(),NULL,0,NULL,NULL);//私钥文件是这个函数写的
//...
//下面的读取不成功
cout<<"请输入要读取的私钥文件名"<<endl;
cin>>FileName;
BP=BIO_new(BIO_s_file());
BIO_read_filename(BP,FileName);
cout<<"请输入加密私钥文件的密钥"<<endl;
cin>>PSW;
rsaK=PEM_read_bio_RSAPrivateKey(BP,NULL,NULL,PSW);
if(rsaK==NULL){//出错地方,rsaK==NULL恒成立- -!
cout<<"Error Occured - -!"<<endl;
BIO_free(BP);
RSA_free(rsaK);
return -1;
}
...
[解决办法]
没有填充方式参数?
[解决办法]
rsaK=PEM_read_bio_RSAPrivateKey(BP,NULL,NULL,PSW); // 这样调用对吗?
[解决办法]
唉,你发了这么多帖,我就直接COPY了
你的代码里少了一句:
OpenSSL_add_all_algorithms();//加载各种加解密算法