从pkcs12文件中提取x509证书和私钥

时间:2010-07-19 03:49:49

标签: c pkcs#12

我想使用C lib从pkcs12文件中提取x509证书和私钥。我找到了很多.net utils来做这件事,但没有找到任何C库。我的代码将在WinPE环境中运行,因此.net将无法运行。

3 个答案:

答案 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)

OpenSSL似乎能够在Windows上运行,是否与Windows PE相似,以至于OpenSSL有机会工作?

之前我也使用过BeeCrypt,它也支持pkcs#12,并声称可以在许多版本的Windows上运行。