我有一个X509证书,它是使用OpenSSL创build的,并使用OpenSSL i2d_X509()函数导出到DER blob。
有没有办法将DER证书blob转换成Windows CERT_CONTEXT结构?
我知道,它可以使用临时文件CertOpenStore(CERT_STORE_PROV_FILENAME)和CertEnumCertificatesInStore()函数完成。 但没有使用临时文件找不到任何方法。
得到它了。 它可以使用:: 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);