CertAddCRLContextToStore-Funktion (wincrypt.h)
Die CertAddCRLContextToStore-Funktion fügt dem angegebenen Zertifikatspeicher einen Zertifikatsperrlistenkontext (Certificate Revocation List, CRL) hinzu.
Syntax
BOOL CertAddCRLContextToStore(
[in] HCERTSTORE hCertStore,
[in] PCCRL_CONTEXT pCrlContext,
[in] DWORD dwAddDisposition,
[out, optional] PCCRL_CONTEXT *ppStoreContext
);
Parameter
[in] hCertStore
Handle eines Zertifikatspeichers.
[in] pCrlContext
Ein Zeiger auf die hinzuzufügende CRL_CONTEXT-Struktur .
[in] dwAddDisposition
Gibt die Aktion an, die ausgeführt werden soll, wenn eine übereinstimmende Zertifikatsperrliste oder ein Link zu einer übereinstimmenden Zertifikatsperrliste bereits im Speicher vorhanden ist. Derzeit definierte Dispositionswerte und deren Verwendungen sind wie folgt:
Wert | Bedeutung |
---|---|
|
Führt keine Überprüfung auf eine vorhandene übereinstimmende Zertifikatsperrliste oder einen Link zu einer übereinstimmenden Zertifikatsperrliste durch. Dem Speicher wird immer eine neue Zertifikatsperrliste hinzugefügt. Dies kann zu Duplikaten in einem Speicher führen. |
|
Wenn eine übereinstimmende Zertifikatsperrliste oder ein Link zu einer übereinstimmenden Zertifikatsperrliste vorhanden ist, schlägt der Vorgang fehl. GetLastError gibt den CRYPT_E_EXISTS Code zurück. |
|
Wenn eine übereinstimmende Zertifikatsperrliste oder ein Link zu einer übereinstimmenden Zertifikatsperrliste vorhanden ist, vergleicht die Funktion die ThisUpdate-Zeiten für die CRLs. Wenn die vorhandene Zertifikatsperrliste eine ThisUpdate-Zeit hat, die kleiner ist als die ThisUpdate-Zeit in der neuen Zertifikatsperrliste, wird die alte Zertifikatsperrliste oder der alte Link wie durch CERT_STORE_ADD_REPLACE_EXISTING ersetzt. Wenn die vorhandene Zertifikatsperrliste eine ThisUpdate-Zeit aufweist, die größer oder gleich der ThisUpdate-Zeit in der hinzuzufügenden CRL ist, schlägt die Funktion fehl, da GetLastError den CRYPT_E_EXISTS Code zurückgibt.
Wenn eine übereinstimmende Zertifikatsperrliste oder ein Link zu einer übereinstimmenden Zertifikatsperrliste nicht im Speicher gefunden wird, wird dem Speicher eine neue Zertifikatsperrliste hinzugefügt. |
|
Die Aktion ist identisch mit der für CERT_STORE_ADD_NEWER. Wenn eine ältere Zertifikatsperrliste ersetzt wird, werden die Eigenschaften der älteren Zertifikatsperrliste in die Ersatz-Zertifikatsperrliste integriert. |
|
Wenn eine übereinstimmende Zertifikatsperrliste oder ein Link zu einer übereinstimmenden Zertifikatsperrliste vorhanden ist, wird die vorhandene Zertifikatsperrliste oder der vorhandene Link gelöscht, und eine neue Zertifikatsperrliste wird erstellt und dem Speicher hinzugefügt. Wenn eine übereinstimmende Zertifikatsperrliste oder ein Link zu einer übereinstimmenden Zertifikatsperrliste nicht vorhanden ist, wird eine hinzugefügt. |
|
Wenn eine entsprechende Zertifikatsperrliste im Speicher vorhanden ist, wird der vorhandene Kontext gelöscht, bevor der neue Kontext erstellt und hinzugefügt wird. Der hinzugefügte Kontext erbt Eigenschaften von der vorhandenen Zertifikatsperrliste. |
|
Wenn eine übereinstimmende Zertifikatsperrliste oder ein Link zu einer übereinstimmenden Zertifikatsperrliste vorhanden ist, wird diese vorhandene Zertifikatsperrliste verwendet, und Eigenschaften aus der neuen Zertifikatsperrliste werden hinzugefügt. Die Funktion schlägt nicht fehl, aber es wird keine neue Zertifikatsperrliste hinzugefügt. Wenn ppCertContext nicht NULL ist, wird der vorhandene Kontext dupliziert.
Wenn keine übereinstimmende Zertifikatsperrliste oder ein Link zu einer übereinstimmenden Zertifikatsperrliste vorhanden ist, wird eine neue Zertifikatsperrliste hinzugefügt. |
[out, optional] ppStoreContext
Ein Zeiger auf einen Zeiger auf den decodierten CRL-Kontext. Dies ist ein optionaler Parameter, der NULL sein kann, was angibt, dass die aufrufende Anwendung keine Kopie der hinzugefügten oder vorhandenen Zertifikatsperrliste benötigt. Wenn eine Kopie erstellt wird, muss dieser Kontext mithilfe von CertFreeCRLContext freigegeben werden.
Rückgabewert
Wenn die Funktion erfolgreich ist, ist der Rückgabewert TRUE.
Wenn die Funktion fehlschlägt, ist der Rückgabewert FALSE. Fehler aus den aufgerufenen Funktionen CertAddEncodedCRLToStore und CertSetCRLContextProperty können an diese Funktion weitergegeben werden.
Rufen Sie GetLastError auf, um erweiterte Fehlerinformationen zu erhalten. Es folgen einige mögliche Fehlercodes.
Rückgabecode | Beschreibung |
---|---|
|
Dieser Fehler wird zurückgegeben, wenn CERT_STORE_ADD_NEW festgelegt ist und die Zertifikatsperrliste bereits im Speicher vorhanden ist oder wenn CERT_STORE_ADD_NEWER festgelegt ist und eine Zertifikatsperrliste im Speicher vorhanden ist, deren ThisUpdate-Datum größer oder gleich dem ThisUpdate-Datum in der hinzuzufügenden Zertifikatsperrliste ist. |
|
Der dwAddDisposition-Parameter hat einen ungültigen Dispositionswert angegeben. |
Hinweise
Der CRL-Kontext wird mit CertDuplicateCRLContext nicht dupliziert. Stattdessen wird eine neue Kopie erstellt und dem Speicher hinzugefügt. Zusätzlich zum Kopieren der codierten Zertifikatsperrliste kopiert die Funktion die Eigenschaften des Kontexts.
Um den CRL-Kontext aus dem Zertifikatspeicher zu entfernen, verwenden Sie die CertDeleteCRLFromStore-Funktion .
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 |