是否有任何 openssl api 函数可以将 PKCS7 文件转换为 PEM。我能够使用 PKCS12_parse() 函数将 PKCS12 文件转换为 PEM,该函数在给定密码的情况下返回 key 和证书。 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);
最佳答案
经过一些谷歌搜索后,我能够做到这一点。
if(p7->d.sign->cert != NULL){
PEM_write_X509(fp, sk_X509_value(p7->d.sign->cert, 0));
}
其中 p7 是指向 pkcs7 结构的指针,fp 是指向 PEM 文件的文件指针
关于c++ - 是否有任何 OpenSSL 函数可以将 PKCS7 文件转换为 PEM,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2023046/