CertGetCRLFromStore-Funktion (wincrypt.h)

Die CertGetCRLFromStore-Funktion ruft den ersten oder nächsten CRL-Kontext (Certificate Revocation List) aus dem Zertifikatspeicher für den angegebenen Aussteller ab. Die Funktion führt auch die aktivierten Überprüfungsprüfungen für die Zertifikatsperrliste durch. Anstelle dieser Funktion werden die neuen Funktionen zur Überprüfung der Zertifikatkette empfohlen.

Syntax

PCCRL_CONTEXT CertGetCRLFromStore(
  [in]           HCERTSTORE     hCertStore,
  [in, optional] PCCERT_CONTEXT pIssuerContext,
  [in]           PCCRL_CONTEXT  pPrevCrlContext,
  [in, out]      DWORD          *pdwFlags
);

Parameter

[in] hCertStore

Handle eines Zertifikatspeichers.

[in, optional] pIssuerContext

Ein Zeiger auf einen Aussteller CERT_CONTEXT. Der pIssuerContext-Zeiger kann aus diesem Speicher oder einem anderen Speicher stammen oder durch den Aufruf von CertCreateCertificateContext erstellt werden. Wenn NULL für diesen Parameter übergeben wird, werden alle CRLs im Speicher gefunden.

[in] pPrevCrlContext

Ein Zeiger auf eine CRL_CONTEXT. Ein Aussteller kann über mehrere CrLs verfügen. Beispielsweise können Delta-CRLs mithilfe einer X.509 Version 3-Erweiterung generiert werden. Dieser Parameter muss beim ersten Aufruf NULL sein, um die Zertifikatsperrliste abzurufen. Um die nächste Zertifikatsperrliste für den Aussteller abzurufen, wird der Parameter auf die von einem vorherigen Aufruf zurückgegebene CRL_CONTEXT festgelegt. Ein pPrevCrlContext ohne NULL wird von dieser Funktion immer freigegeben, indem CertFreeCRLContext aufgerufen wird, auch bei einem Fehler.

[in, out] pdwFlags

Die folgenden Flagwerte werden definiert, um Überprüfungsprüfungen für die zurückgegebene Zertifikatsperrliste zu aktivieren. Diese Flags können mithilfe eines bitweisen OR-Vorgangs kombiniert werden.

Wert Bedeutung
CERT_STORE_SIGNATURE_FLAG
Verwendet den öffentlichen Schlüssel im Zertifikat des Ausstellers, um die Signatur für die zurückgegebene Zertifikatsperrliste zu überprüfen.
CERT_STORE_TIME_VALIDITY_FLAG
Ruft die aktuelle Uhrzeit ab und überprüft, ob sie innerhalb der Zeit zwischen ThisUpdate und NextUpdate der Zertifikatsperrliste liegt.
CERT_STORE_BASE_CRL_FLAG
Ruft eine Basissperrliste ab.
CERT_STORE_DELTA_CRL_FLAG
Ruft eine Delta-Zertifikatsperrliste ab.
 

Wenn eine aktivierte Überprüfung erfolgreich ist, wird ihr Flag auf Null festgelegt.

Wenn bei einer aktivierten Überprüfungsprüfung ein Fehler auftritt, bleibt ihr Flag bei der Rückgabe festgelegt. Wenn pIssuerContextNULL ist, schlägt ein aktivierter CERT_STORE_SIGNATURE_FLAG immer fehl, und der CERT_STORE_NO_ISSUER_FLAG wird ebenfalls festgelegt. Ausführliche Informationen finden Sie unter Hinweise.

Wenn nur eine der CERT_STORE_BASE_CRL_FLAG oder CERT_STORE_DELTA_CRL_FLAG festgelegt ist, gibt diese Funktion entweder eine Basis- oder Delta-Zertifikatsperrliste zurück, und das entsprechende Basis- oder Deltaflag wird bei der Rückgabe gelöscht. Wenn beide Flags festgelegt sind, wird nur eines der Flags gelöscht.

Bei einem Überprüfungsprüfungsfehler wird weiterhin ein Zeiger auf den ersten oder nächsten CRL_CONTEXT zurückgegeben, und GetLastError wird nicht aktualisiert.

Rückgabewert

Wenn die Funktion erfolgreich ist, ist der Rückgabewert ein Zeiger auf eine schreibgeschützte CRL_CONTEXT.

Wenn die Funktion fehlschlägt und die erste oder nächste Zertifikatsperrliste nicht gefunden wird, ist der Rückgabewert NULL.

Die zurückgegebene CRL_CONTEXT muss durch Aufrufen von CertFreeCRLContext freigegeben werden. Wenn die zurückgegebene CRL_CONTEXT jedoch für pPrevCrlContext bei einem nachfolgenden Aufruf angegeben wird, gibt die Funktion sie frei.

Rufen Sie GetLastError auf, um erweiterte Fehlerinformationen zu erhalten. Es folgen einige mögliche Fehlercodes.

Wert BESCHREIBUNG
E_INVALIDARG
Das Handle im hCertStore-Parameter ist nicht dasselbe wie im CRL-Kontext, auf den der pPrevCrlContext-Parameter verweist, oder ein nicht unterstütztes Flag wurde in pdwFlags festgelegt.
CRYPT_E_NOT_FOUND
Entweder waren keine CrLs im Speicher für den Aussteller vorhanden, oder die Funktion hat das Ende der Liste des Speichers erreicht.

Hinweise

CertDuplicateCRLContext kann aufgerufen werden, um eine doppelte Zertifikatsperrliste zu erstellen.

Die Hexadezimalwerte der Flags können mithilfe eines bitweisen OR-Vorgangs kombiniert werden, um beide Überprüfungen zu aktivieren. Um beispielsweise beide Überprüfungen zu aktivieren, wird der DWORD-Wert , auf den von pdwFlags verwiesen wird, auf den Wert CERT_STORE_SIGNATURE_FLAG | CERT_STORE_TIME_VALIDITY_FLAG. Wenn die CERT_STORE_SIGNATURE_FLAG Überprüfung erfolgreich war, aber CERT_STORE_TIME_VALIDITY_FLAG Überprüfung fehlgeschlagen ist, wird der DWORD-Wert , auf den von pdwFlags verwiesen wird, auf CERT_STORE_TIME_VALIDITY_FLAG festgelegt, wenn die Funktion zurückgibt.

Anforderungen

   
Unterstützte Mindestversion (Client) Windows XP [Desktop-Apps | UWP-Apps]
Unterstützte Mindestversion (Server) Windows Server 2003 [Desktop-Apps | UWP-Apps]
Zielplattform Windows
Kopfzeile wincrypt.h
Bibliothek Crypt32.lib
DLL Crypt32.dll

Weitere Informationen

CRL_CONTEXT

CertCreateCertificateContext

CertDuplicateCRLContext

CertFreeCRLContext

CertGetCRLContextProperty

Funktionen der Zertifikatsperrliste