CertAddEncodedCRLToStore-Funktion (wincrypt.h)

Die CertAddEncodedCRLToStore-Funktion erstellt einen Zertifikatsperrlistenkontext (Certificate Revocation List , CRL) aus einer codierten Zertifikatsperrliste und fügt ihn dem Zertifikatspeicher hinzu. Die Funktion erstellt eine Kopie des CRL-Kontexts, bevor sie dem Speicher hinzugefügt wird.

Syntax

BOOL CertAddEncodedCRLToStore(
  [in]            HCERTSTORE    hCertStore,
  [in]            DWORD         dwCertEncodingType,
  [in]            const BYTE    *pbCrlEncoded,
  [in]            DWORD         cbCrlEncoded,
  [in]            DWORD         dwAddDisposition,
  [out, optional] PCCRL_CONTEXT *ppCrlContext
);

Parameter

[in] hCertStore

Handle eines Zertifikatspeichers.

[in] dwCertEncodingType

Gibt den verwendeten Codierungstyp an. Es ist immer akzeptabel, sowohl den Zertifikat- als auch den Nachrichtencodierungstyp anzugeben, indem sie mit einem bitweisen OR-Vorgang kombiniert werden, wie im folgenden Beispiel gezeigt:

X509_ASN_ENCODING | PKCS_7_ASN_ENCODING Derzeit definierte Codierungstypen sind:

  • X509_ASN_ENCODING
  • PKCS_7_ASN_ENCODING

[in] pbCrlEncoded

Ein Zeiger auf einen Puffer, der die codierte Zertifikatsperrliste enthält, die dem Zertifikatspeicher hinzugefügt werden soll.

[in] cbCrlEncoded

Die Größe des Puffers pbCrlEncoded in Bytes.

[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
CERT_STORE_ADD_ALWAYS
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.
CERT_STORE_ADD_NEW
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.
CERT_STORE_ADD_NEWER
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 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.

CERT_STORE_ADD_NEWER_INHERIT_PROPERTIES
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.
CERT_STORE_ADD_REPLACE_EXISTING
Wenn eine übereinstimmende Zertifikatsperrliste oder ein Link zu einer übereinstimmenden Zertifikatsperrliste vorhanden ist, wird diese vorhandene Zertifikatsperrliste oder dieser 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.
CERT_STORE_ADD_REPLACE_EXISTING_INHERIT_PROPERTIES
Wenn eine entsprechende Zertifikatsperrliste im Speicher vorhanden ist, wird dieser vorhandene Kontext gelöscht, bevor der neue Kontext erstellt und hinzugefügt wird. Der neue Kontext erbt Eigenschaften von der vorhandenen Zertifikatsperrliste.
CERT_STORE_ADD_USE_EXISTING
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] ppCrlContext

Ein Zeiger auf einen Zeiger auf die decodierte CRL_CONTEXT-Struktur . Dies ist ein optionaler Parameter, der NULL sein kann und angibt, dass die aufrufende Anwendung keine Kopie der neuen 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. Rufen Sie GetLastError auf, um erweiterte Fehlerinformationen zu erhalten. Es folgen einige mögliche Fehlercodes.

Rückgabecode Beschreibung
CRYPT_E_EXISTS
CERT_STORE_ADD_NEW festgelegt ist und die Zertifikatsperrliste bereits im Speicher vorhanden ist, oder CERT_STORE_ADD_NEWER festgelegt ist und eine CRL im Speicher vorhanden ist, deren ThisUpdate-Zeit größer oder gleich der ThisUpdate-Zeit ist, zu der die Zertifikatsperrliste hinzugefügt werden soll.
E_INVALIDARG
Im dwAddDisposition-Parameter wurde ein ungültiger Dispositionswert angegeben, oder es wurde ein ungültiger Codierungstyp angegeben. Derzeit wird nur der Codierungstyp X509_ASN_ENCODING unterstützt.
 

Wenn die Funktion fehlschlägt, gibt GetLastError möglicherweise einen ASN.1-Codierungs-/Decodierungsfehler ( Abstract Syntax Notation One ) zurück. Informationen zu diesen Fehlern finden Sie unter ASN.1-Rückgabewerte für Codierung/Decodierung.

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

Weitere Informationen

CertAddCRLContextToStore

CertFreeCRLContext

Zertifikatsperrlistenfunktionen