CertFindCRLInStore-Funktion (wincrypt.h)
Die CertFindCRLInStore-Funktion sucht den ersten oder nächsten Zertifikatsperrlistenkontext (Certificate Revocation List , CRL) in einem Zertifikatspeicher , der einem Suchkriterium entspricht, das durch den dwFindType-Parameter und den zugeordneten pvFindPara-Parameter festgelegt wurde. Diese Funktion kann in einer Schleife verwendet werden, um alle CRL-Kontexte in einem Zertifikatspeicher zu suchen, die den angegebenen Suchkriterien entsprechen.
Syntax
PCCRL_CONTEXT CertFindCRLInStore(
[in] HCERTSTORE hCertStore,
[in] DWORD dwCertEncodingType,
[in] DWORD dwFindFlags,
[in] DWORD dwFindType,
[in] const void *pvFindPara,
[in] PCCRL_CONTEXT pPrevCrlContext
);
Parameter
[in] hCertStore
Ein Handle des zu durchsuchenden Zertifikatspeichers.
[in] dwCertEncodingType
Dieser Parameter wird derzeit nicht verwendet. Er muss auf 0 (null) festgelegt werden.
[in] dwFindFlags
Wenn dwFindType CRL_FIND_ISSUED_BY ist, wird standardmäßig nur der Ausstellernamensabgleich durchgeführt. Die folgenden Flags können verwendet werden, um zusätzliche Filterungen durchzuführen.
Wert | Bedeutung |
---|---|
|
Sucht nach einer Zertifikatsperrliste, die über eine AKI-Erweiterung (Authority Key Identifier) verfügt. Wenn die Zertifikatsperrliste über eine AKI verfügt, wird nur eine Zertifikatsperrliste zurückgegeben, deren AKI mit dem Aussteller übereinstimmt.
Hinweis Die AKI-Erweiterung verfügt über den OID-Wert ( Object Identifier ) szOID_AUTHORITY_KEY_IDENTIFIER2 und die entsprechende Datenstruktur.
|
|
Verwenden Sie den öffentlichen Schlüssel im Zertifikat des Ausstellers, um die Signatur auf der Zertifikatsperrliste zu überprüfen. Gibt nur eine Zertifikatsperrliste zurück, die über eine gültige Signatur verfügt. |
|
Sucht eine Delta-CRL und gibt sie zurück. |
|
Sucht und gibt eine Basis-Zertifikatsperrliste zurück. |
|
Die Signatur wird nach erfolgreicher Überprüfung auf Stärke überprüft. Dieses Flag gilt nur, wenn der dwFindType-Parameter auf CRL_FIND_ISSUED_FOR festgelegt ist. Sie müssen auch CRL_FIND_ISSUED_BY_SIGNATURE_FLAG festlegen. Bei erfolgreicher Ausführung werden die folgenden Starken Signatureigenschaften für den CRL-Kontext festgelegt:
|
[in] dwFindType
Gibt den Typ der durchgeführten Suche an. Der Wert von dwFindType bestimmt den Datentyp, den Inhalt und die Verwendung des pvFindPara-Parameters . Derzeit definierte Suchtypen und deren pvFindPara-Anforderungen sind wie folgt.
Wert | Bedeutung |
---|---|
|
Keine Suchkriterien. Die nächste Zertifikatsperrliste im Speicher wird zurückgegeben. |
|
Sucht im Speicher nach der nächsten Zertifikatsperrliste, die dem Aussteller im CERT_CONTEXT entspricht. |
|
Sucht auf folgende Weise nach der nächsten Zertifikatsperrliste, die dem CRL_CONTEXT entspricht:
|
|
Sucht im Speicher nach der nächsten Zertifikatsperrliste, die dem Aussteller des Antragstellerzertifikats in der CRL_FIND_ISSUED_FOR_PARA-Struktur entspricht.
Wenn keine Zertifikatsperrliste gefunden wird, sucht im Speicher nach der nächsten Zertifikatsperrliste, die dem Aussteller in der CRL_FIND_ISSUED_FOR_PARA-Struktur entspricht. Hinweis Bei verwendung von zertifikatübergreifenden Zertifikaten stimmt der Antragstellername im Zertifikat des Ausstellers möglicherweise nicht mit dem Ausstellernamen im Antragstellerzertifikat und der entsprechenden Zertifikatsperrliste überein.
|
[in] pvFindPara
Dieser Parameter wird durch den Wert von dwFindType bestimmt. Weitere Informationen finden Sie in der Tabelle weiter oben in diesem Thema.
[in] pPrevCrlContext
Ein Zeiger auf den letzten CRL_CONTEXT, der von dieser Funktion zurückgegeben wurde. Muss NULL sein, um die erste Zertifikatsperrliste im Speicher abzurufen, die die Suchkriterien erfüllt. Nachfolgende CRLs, die die Suchkriterien erfüllen, können gefunden werden, indem pPrevCrlContext auf den PCCRL_CONTEXT-Zeiger festgelegt wird, der von einem vorherigen Aufruf der Funktion zurückgegeben wurde. Beim Suchvorgang werden alle Zertifikatsperrlisten übersprungen, die nicht den Suchkriterien entsprechen oder die zuvor von CertDeleteCRLFromStore aus dem Speicher gelöscht wurden. Diese Funktion gibt die CRL_CONTEXT frei, auf die von Werten dieses Parameters verwiesen wird, die nicht NULL sind.
Rückgabewert
Wenn die Funktion erfolgreich ist, gibt die Funktion einen Zeiger auf einen schreibgeschützten CRL-Kontext zurück. Wenn Sie die Verwendung des zurückgegebenen CRL-Kontexts abgeschlossen haben, geben Sie ihn frei, indem Sie die CertFreeCRLContext-Funktion aufrufen, oder implizit freigeben, indem Sie ihn als pPrevCrlContext-Parameter bei einem nachfolgenden Aufruf der CertFindCRLInStore-Funktion übergeben.
Wenn die Funktion fehlschlägt und keine Zertifikatsperrliste gefunden wird, die den Suchkriterien entspricht, ist der Rückgabewert NULL. Rufen Sie GetLastError auf, um erweiterte Fehlerinformationen zu erhalten. Es folgen einige mögliche Fehlercodes.
Rückgabecode | Beschreibung |
---|---|
|
Das Handle im hCertStore-Parameter ist nicht dasselbe wie im CRL-Kontext, auf den der pPrevCrlContext-Parameter verweist, oder ein ungültiger Suchtyp wurde im dwFindType-Parameter angegeben. |
|
Im Speicher befinden sich keine Zertifikatsperrlisten, es wurde keine Zertifikatsperrliste gefunden, die den Suchkriterien entsprach, oder das Ende der Liste des Speichers wurde erreicht. |
Hinweise
Der zurückgegebene Zeiger wird freigegeben, wenn er bei einem nachfolgenden Aufruf der Funktion als pPrevCrlContext-Parameter übergeben wird. Andernfalls muss der Zeiger explizit durch Aufrufen von CertFreeCRLContext freigegeben werden. Ein pPrevCrlContext , der nicht NULL ist, wird von CertFindCRLInStore immer mithilfe eines Aufrufs von CertFreeCRLContext freigegeben, auch wenn ein Fehler in der Funktion vorliegt.
CertDuplicateCRLContext kann aufgerufen werden, um ein Duplikat des zurückgegebenen Kontexts zu erstellen. Der zurückgegebene CRL-Kontext kann einem anderen Zertifikatspeicher mithilfe von CertAddCRLContextToStore hinzugefügt werden, oder ein Link zu diesem CRL-Kontext kann einem Nichtsammlungsspeicher mithilfe von CertAddCRLLinkToStore hinzugefügt werden.
Anforderungen
Anforderung | Wert |
---|---|
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 |