2016-06-21 18 views
1

Ich habe ein X509-Zertifikat, das mit OpenSSL erstellt und in den Blob mit OpenSSL i2d_X509() -Funktion exportiert wurde.Konvertieren DER-codierten X509-Zertifikat-Puffer in Windows CERT_CONTEXT Struktur

Gibt es eine Möglichkeit, DER-Zertifikat Blob in Windows CERT_CONTEXT Struktur zu konvertieren?

Ich weiß, dass es mit der temporären Datei, CertOpenStore (CERT_STORE_PROV_FILENAME) und CertEnumCertificatesInStore() Funktionen getan werden könnte. Aber ohne temporäre Datei konnte kein Weg gefunden werden.

Antwort

1

Ich habe es. Es kann getan werden, mit :: CertCreateCertificateContext Funktion:

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);