CertAddCRLLinkToStore-Funktion (wincrypt.h)
Die CertAddCRLLinkToStore-Funktion fügt einen Link in einem Speicher zu einem Zertifikatsperrlistenkontext (Certificate Revocation List , CRL) in einem anderen Speicher hinzu. Anstatt ein Duplikat der Zertifikatsperrliste zu erstellen und hinzuzufügen, fügt diese Funktion einen Link zum ursprünglichen CRL-Kontext hinzu.
Syntax
BOOL CertAddCRLLinkToStore(
[in] HCERTSTORE hCertStore,
[in] PCCRL_CONTEXT pCrlContext,
[in] DWORD dwAddDisposition,
[out, optional] PCCRL_CONTEXT *ppStoreContext
);
Parameter
[in] hCertStore
Handle eines Zertifikatspeichers, in dem der Link hinzugefügt werden soll.
[in] pCrlContext
Ein Zeiger auf die zu verknüpfende 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 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 ein neuer Link 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, werden die ThisUpdate-Zeiten für die ZERTIFIKATsperrlisten verglichen. Wenn die vorhandene Zertifikatsperrliste eine ThisUpdate-Zeit hat, die kleiner ist als die ThisUpdate-Zeit in der neuen Zertifikatsperrliste, wird die alte Verknüpfung 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 ein neuer Link hinzugefügt. |
|
Wenn ein Link zur entsprechenden Zertifikatsperrliste vorhanden ist, wird dieser vorhandene Link gelöscht, und ein neuer Link wird erstellt und dem Speicher hinzugefügt. Wenn keine übereinstimmende Zertifikatsperrliste oder ein Link zu einer übereinstimmenden Zertifikatsperrliste vorhanden ist, wird ein neuer Link hinzugefügt. |
|
Wenn eine übereinstimmende Zertifikatsperrliste oder ein Link zu einer übereinstimmenden Zertifikatsperrliste vorhanden ist, wird diese vorhandene Verknüpfung verwendet. Die Funktion schlägt nicht fehl, aber es wird keine neue Verknüpfung hinzugefügt. Wenn keine entsprechende Zertifikatsperrliste oder ein Link zu einer Zertifikatsperrliste vorhanden ist, wird ein neuer Link hinzugefügt. |
[out, optional] ppStoreContext
Ein Zeiger auf einen Zeiger einer Kopie des erstellten Links. Der ppStoreContext-Parameter kann NULL sein, um anzugeben, dass keine Kopie des Links erforderlich ist. Wenn eine Kopie des Links erstellt wird, muss diese Kopie mit 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. Rufen Sie GetLastError auf, um erweiterte Fehlerinformationen zu erhalten. Es folgen einige mögliche Fehlercodes.
Rückgabecode | Beschreibung |
---|---|
|
Für eine dwAddDisposition von CERT_STORE_ADD_NEW ist die CTL bereits im Speicher vorhanden. |
|
Im dwAddDisposition-Parameter wurde ein ungültiger Dispositionswert angegeben. |
Hinweise
Da der Link Zugriff auf einen ursprünglichen Zertifikatsperrlistenkontext ermöglicht, ändert das Festlegen einer erweiterten Eigenschaft im kontext der verknüpften Zertifikatsperrliste diese erweiterte Eigenschaft am ursprünglichen Speicherort der Zertifikatsperrliste und in allen anderen Links zu dieser Zertifikatsperrliste.
Einem Speicher, der als Sammlung geöffnet wird, können keine Links hinzugefügt werden. Als Sammlungen geöffnete Stores umfassen alle Geschäfte, die mit CertOpenSystemStore oder CertOpenStore mit CERT_STORE_PROV_SYSTEM oder CERT_STORE_PROV_COLLECTION geöffnet wurden. Weitere Informationen finden Sie unter CertAddStoreToCollection.
Wenn Links verwendet werden und CertCloseStore mit CERT_CLOSE_STORE_FORCE_FLAG aufgerufen wird, muss der Speicher, der Links verwendet, geschlossen werden, bevor der Speicher mit den ursprünglichen Kontexten geschlossen werden kann. Wenn CERT_CLOSE_STORE_FORCE_FLAG nicht verwendet wird, können die beiden Filialen in beiden Reihenfolge geschlossen werden.
Verwenden Sie die CertDeleteCRLFromStore-Funktion , um den CRL-Kontextlink aus dem Zertifikatspeicher zu entfernen.
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 |