将DER编码的X509证书缓冲区转换为Windows cert_context结构

Convert DER encoded X509 certificate buffer to windows CERT_CONTEXT structure

本文关键字:Windows cert 结构 context 转换 缓冲区 编码 DER X509 证书      更新时间:2023-10-16

我有一个x509证书,该证书是使用openssl创建的,并使用openssl i2d_x509()函数导出到der blob。

有什么方法可以将der证书斑点转换为Windows cert_context结构?

我知道,可以使用临时文件,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);