是否有任何openssl api函数可以将PKCS7文件转换为PEM。我能够使用PKCS12_parse()函数将PKCS12文件转换为PEM,该函数在给定密码的情况下返回密钥和证书。 pkcs7没有类似的功能。
我的pkcs7输入只有二进制格式的证书。我可以使用命令
进行转换openssl pkcs7 -inform DER -in input.p7b -printcerts -text
如何在C程序中执行此操作?我可以把它读成像这样的PKCS7结构
FILE* fp;
if (!(fp = fopen("ca.p7b", "rb"))) {
fprintf(stderr, "Error reading input pkcs7 file\n" );
exit(1);
}
PKCS7 *p7;
p7 = d2i_PKCS7_fp(cafp, NULL);
答案 0 :(得分:1)
经过一些谷歌搜索后,我能够做到这一点。
if(p7->d.sign->cert != NULL){
PEM_write_X509(fp, sk_X509_value(p7->d.sign->cert, 0));
}
其中p7是指向pkcs7结构的指针,fp是指向PEM文件的文件指针