原因:
真机调试IOS支付宝功能GDB出现 rsa_private read error : private key is NULL提示
调试iOS 支付宝SDK的时候,运行demo,把
Partner(合作商户 ID)
Seller(账户 ID)
RSA public key(支付宝公钥)
RSA private key(商户私钥)
都放到plist文件了,运行的时候,报错 rsa_private read error : private key isNULL
我确定的是RSA private key肯定是有的,调试了下
在
bio_private= BIO_new(BIO_s_file());
BIO_read_filename(bio_private,private_key_file_path);
rsa_private= PEM_read_bio_RSAPrivateKey(bio_private, NULL, NULL,"");
if(rsa_private != nil) {
这里,rsa_private 返回空, private_key_file_path 这些值都是有的
解决方法:
将私钥转成PKCS8替换一下原私钥即可
4. 生成PKCS8 编码的私钥
输入命令“pkcs8 -topk8 -inform PEM -in rsa_private_key.pem -outform PEM -nocrypt”并回车,当前界面中会直接显示出生成结果:
右键点击 openssl 窗口上边边缘,选择“编辑→标记”,选中要复制的文字: (就是中间那一块,包括---BEGIN PRIVATE KEY---和---END PRIVATE KEY---)
此时继续右键点击 openssl 窗口上边边缘,选择“编辑→复制”,把复制的内容粘 贴进一个新的记事本中,可随意命名,只要知道这个是 PKCS8 格式的私钥即可(请 妥善保存该文件)。