【发布时间】:2010-07-19 03:49:49
【问题描述】:
我想使用 C 库从 pkcs12 文件中提取 x509 证书和私钥。我发现很多 .net 工具可以做到这一点,但没有找到任何 C 库。我的代码将在 WinPE 环境中运行,所以 .net 将无法运行。
【问题讨论】:
我想使用 C 库从 pkcs12 文件中提取 x509 证书和私钥。我发现很多 .net 工具可以做到这一点,但没有找到任何 C 库。我的代码将在 WinPE 环境中运行,所以 .net 将无法运行。
【问题讨论】:
您可以使用 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。
【讨论】:
Openssl 允许您这样做。如果您知道证书的格式,则可以浏览代码并获取 API 来执行此操作。
具体来说,您必须使用输入文件创建 SSL 上下文并从中提取证书。
【讨论】: