【问题标题】:Extract x509 cert and private key from pkcs12 file从 pkcs12 文件中提取 x509 证书和私钥
【发布时间】:2010-07-19 03:49:49
【问题描述】:

我想使用 C 库从 pkcs12 文件中提取 x509 证书和私钥。我发现很多 .net 工具可以做到这一点,但没有找到任何 C 库。我的代码将在 WinPE 环境中运行,所以 .net 将无法运行。

【问题讨论】:

    标签: c pkcs#12


    【解决方案1】:

    您可以使用 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。

    【讨论】:

      【解决方案2】:

      Openssl 允许您这样做。如果您知道证书的格式,则可以浏览代码并获取 API 来执行此操作。

      具体来说,您必须使用输入文件创建 SSL 上下文并从中提取证书。

      【讨论】:

      • 您不需要创建 SSL 上下文来解析 PKCS#12 文件。
      【解决方案3】:

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-11-13
        • 2013-09-03
        • 1970-01-01
        • 1970-01-01
        • 2011-04-02
        • 2012-02-25
        • 1970-01-01
        相关资源
        最近更新 更多