【问题标题】:Convert DER encoded X509 certificate buffer to windows CERT_CONTEXT structure将 DER 编码的 X509 证书缓冲区转换为 windows CERT_CONTEXT 结构
【发布时间】:2016-06-21 15:35:41
【问题描述】:

我有一个 X509 证书,它是使用 OpenSSL 创建并使用 OpenSSL i2d_X509() 函数导出到 DER blob。

有没有办法将 DER 证书 blob 转换为 Windows CERT_CONTEXT 结构?

我知道,它可以使用临时文件、CertOpenStore(CERT_STORE_PROV_FILENAME) 和 CertEnumCertificatesInStore() 函数来完成。但是不使用临时文件找不到任何方法。

【问题讨论】:

    标签: c++ windows openssl cryptoapi


    【解决方案1】:

    知道了。 可以使用 ::CertCreateCertificateContext 函数来完成:

    std::vector<BYTE> certificate;
    // ... acquire DER encoded certificate using i2d_X509()
    // ...
    PCCERT_CONTEXT context = ::CertCreateCertificateContext(
        X509_ASN_ENCODING | PKCS_7_ASN_ENCODING, 
        certificate.data(), 
        certificate.size());
    // ...
    // ...
    ::CertFreeCertificateContext(context);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-03-13
      • 2018-04-19
      • 1970-01-01
      • 2015-07-21
      • 2022-08-05
      相关资源
      最近更新 更多