我想使用C lib从pkcs12文件中提取x509证书和私钥。我找到了很多.net utils来做这件事,但没有找到任何C库。我的代码将在WinPE环境中运行,因此.net将无法运行。
答案 0 :(得分:2)
您可以使用OpenSSL执行此操作。函数d2i_PKCS12_fp()
可用于将PKCS#12文件加载到PKCS12
对象中,函数PKCS12_parse()
可用于解析生成的对象以提取证书和私钥:
PKCS12 *d2i_PKCS12_fp(FILE *fp, PKCS12 **p12);
int PKCS12_parse(PKCS12 *p12, const char *pass, EVP_PKEY **pkey, X509 **cert, STACK_OF(X509) **ca);
有关详细信息,请参阅PKCS12_parse()
man page。
答案 1 :(得分:0)
Openssl允许您这样做。如果您知道证书的格式,则可以浏览代码并获取API。
具体而言,您必须使用输入文件创建SSL上下文并从中提取证书。
答案 2 :(得分:0)