CertGetCRLContextProperty-Funktion (wincrypt.h)

Die CertGetCRLContextProperty-Funktion ruft eine erweiterte Eigenschaft für den angegebenen Zertifikatsperrlistenkontext (Certificate Revocation List , CRL) ab.

Syntax

BOOL CertGetCRLContextProperty(
  [in]      PCCRL_CONTEXT pCrlContext,
  [in]      DWORD         dwPropId,
  [out]     void          *pvData,
  [in, out] DWORD         *pcbData
);

Parameter

[in] pCrlContext

Ein Zeiger auf die CRL_CONTEXT-Struktur .

[in] dwPropId

Gibt die abzurufende Eigenschaft an. Derzeit definierte Bezeichner und der datentyp, der in pvData zurückgegeben werden soll, sind in der folgenden Tabelle aufgeführt.

Wert Bedeutung
CERT_ACCESS_STATE_PROP_ID
Datentyp für pvData: Zeiger auf ein DWORD

Gibt einen DWORD-Wert zurück, der angibt, ob Schreibvorgänge in das Zertifikat beibehalten werden. Der DWORD-Wert wird nicht festgelegt, wenn sich das Zertifikat in einem Speicher oder in einem registrierungsbasierten Speicher befindet, der schreibgeschützt geöffnet ist.

CERT_ARCHIVED_PROP_ID
Datentyp für pvData: NULL

Gibt an, dass das Zertifikat während der Enumerationen übersprungen wird. Ein Zertifikat mit diesem Eigenschaftensatz wird mit expliziten Suchvorgängen gefunden, z. B. mit denen, die zum Suchen eines Zertifikats mit einem bestimmten Hash oder einer Seriennummer verwendet werden. Dieser Eigenschaft sind keine Daten in pvData zugeordnet.

CERT_AUTO_ENROLL_PROP_ID
Datentyp für pvData: Zeiger auf ein BYTE-Array

Gibt eine mit NULL endende Unicode-Zeichenfolge mit dem Namen des Zertifikattyps zurück, für den das Zertifikat automatisch registriert wurde.

CERT_CTL_USAGE_PROP_ID
Datentyp für pvData: Zeiger auf ein BYTE-Array

Gibt ein Bytearray zurück , das eine ASN.1-codierte asn.1-codierte CTL_USAGE-Struktur enthält.

CERT_DESCRIPTION_PROP_ID
Datentyp für pvData: Zeiger auf ein BYTE-Array

Gibt die Eigenschaft zurück, die von der Zertifikatbenutzeroberfläche angezeigt wird. Mit dieser Eigenschaft kann der Benutzer die Verwendung des Zertifikats beschreiben.

CERT_ENHKEY_USAGE_PROP_ID
Datentyp für pvData:

Gibt ein Bytearray zurück, das eine ASN.1-codierte CERT_ENHKEY_USAGE-Struktur enthält.

CERT_FRIENDLY_NAME_PROP_ID
Datentyp für pvData: Zeiger auf ein BYTE-Array

Gibt eine Unicode-Zeichenfolge mit Null-Termin zurück, die den Anzeigenamen für die Zertifikatsperrliste enthält.

CERT_ISSUER_CHAIN_PUB_KEY_CNG_ALG_BIT_LENGTH_PROP_ID
Datentyp für pvData: Zeiger auf eine unicode-Zeichenfolge mit Null-Endung.

Gibt eine Zeichenfolge zurück, die einen Satz von L"<PUBKEY>/<BITLENGTH>"-Algorithmus-Paaren mit öffentlichem Schlüssel und Bitlängenpaaren enthält. Das Semikolon L";" wird als Trennzeichen verwendet.

Der <PUBKEY-Wert> identifiziert den Öffentlichen Schlüsselalgorithmus von CNG. Die folgenden Algorithmen werden unterstützt:

  • L"RSA" (BCRYPT_RSA_ALGORITHM)
  • L"DSA" (BCRYPT_DSA_ALGORITHM)
  • L"ECDSA" (SSL_ECDSA_ALGORITHM)
Ein <PUBKEY>/<BITLENGTH-Paar> wird für jedes Zertifikat in der Zertifikatsperrlisten-Ausstellerkette mit Ausnahme des Blatts zurückgegeben. Diese Eigenschaft wird nur festgelegt, wenn eine OCSP-Antwort mit einer unabhängigen Signierkette in eine CRL konvertiert wird.
Hinweis Diese Eigenschaft kann nicht für ein delegiertes OCSP-Signerzertifikat abgerufen werden. Ein delegiertes Signaturzertifikat wird mit demselben Schlüssel signiert, der zum Signieren des Antragstellerzertifikats verwendet wird, und dort überprüft.
 
Es folgt ein Beispiel:

: L"RSA/2048; RSA/4096"

CERT_ISSUER_CHAIN_SIGN_HASH_CNG_ALG_PROP_ID
Datentyp für pvData: Zeiger auf eine unicode-Zeichenfolge mit Null-Endung.

Gibt eine Zeichenfolge zurück, die einen Satz von L"<SIGNATURE HASH"->/<>Algorithmuspaaren enthält. Das Semikolon L";" wird als Trennzeichen zwischen Paaren verwendet.

Diese Eigenschaft wird nur festgelegt, wenn eine OCSP-Antwort in eine CRL konvertiert wird. Für ein delegiertes OCSP-Signaturzertifikat wird nur das Algorithmuspaar für das Signiererzertifikat zurückgegeben. Für eine unabhängige OCSP-Signatur-Zertifikatkette wird für jedes Zertifikat in der Kette ein Algorithmuspaar mit Ausnahme des Stamms zurückgegeben.

Der <SIGNATURE-Wert> identifiziert den Öffentlichen Schlüsselalgorithmus von CNG. Die folgenden Algorithmen werden unterstützt:

  • L"RSA" (BCRYPT_RSA_ALGORITHM)
  • L"DSA" (BCRYPT_DSA_ALGORITHM)
  • L"ECDSA" (SSL_ECDSA_ALGORITHM)
Der <HASH-Wert> identifiziert den CNG-Hashalgorithmus. Die folgenden Algorithmen werden unterstützt:
  • L"MD5" (BCRYPT_MD5_ALGORITHM)
  • L"SHA1" (BCRYPT_SHA1_ALGORITHM)
  • L"SHA256" (BCRYPT_SHA256_ALGORITHM)
  • L"SHA384" (BCRYPT_SHA384_ALGORITHM)
  • L"SHA512" (BCRYPT_SHA512_ALGORITHM)
Es folgt ein Beispiel:
  • L"RSA/SHA256; RSA/SHA256"
CERT_ISSUER_PUB_KEY_BIT_LENGTH_PROP_ID
Datentyp für pvData: Zeiger auf einen DWORD-Wert .

Gibt die Länge des öffentlichen Schlüssels im Zertifikat des Zertifikatsperrlistenausstellers in Bits zurück. Diese Eigenschaft gilt auch für eine OCSP-Antwort, die in eine CRL konvertiert wurde.

Windows 8 und Windows Server 2012: Die Unterstützung für diese Eigenschaft beginnt.

CERT_KEY_CONTEXT_PROP_ID
Datentyp für pvData: Zeiger auf eine CERT_KEY_CONTEXT

Gibt eine CERT_KEY_CONTEXT-Struktur zurück.

CERT_KEY_IDENTIFIER_PROP_ID
Datentyp für pvData: Zeiger auf ein BYTE-Array

Wenn nicht vorhanden, sucht nach der erweiterung szOID_SUBJECT_KEY_IDENTIFIER. Wenn dies fehlschlägt, wird ein SHA1-Hash für das SubjectPublicKeyInfo-Element des Zertifikats ausgeführt, um die Bezeichnerwerte zu erzeugen.

CERT_KEY_PROV_HANDLE_PROP_ID
Datentyp für pvData: Zeiger auf eine HCRYPTPROV

Gibt das vom CERT_KEY_CONTEXT_PROP_ID abgerufene Anbieterhandle zurück.

CERT_KEY_PROV_INFO_PROP_ID
Datentyp für pvData: Zeiger auf eine CRYPT_KEY_PROV_INFO

Gibt einen Zeiger auf eine CRYPT_KEY_PROV_INFO zurück.

CERT_KEY_SPEC_PROP_ID
Datentyp für pvData: Zeiger auf ein DWORD

Gibt einen DWORD-Wert zurück, der den privaten Schlüssel angibt, der von CERT_KEY_CONTEXT_PROP_ID -Eigenschaft abgerufen wurde, sofern vorhanden. Andernfalls, wenn CERT_KEY_PROV_INFO_PROP_ID vorhanden ist, ist dies die Quelle von dwKeySpec.

CERT_MD5_HASH_PROP_ID
Datentyp für pvData: Zeiger auf ein BYTE-Array

Gibt den MD5-Hash zurück. Wenn der Hash nicht vorhanden ist, wird er mit CryptHashCertificate berechnet.

CERT_NEXT_UPDATE_LOCATION_PROP_ID
Datentyp für pvData: Zeiger auf ein BYTE-Array

Gibt die ASN.1-codierte CERT_ALT_NAME_INFO-Struktur zurück.

CERT_NEXT_UPDATE_LOCATION_PROP_ID wird derzeit nur mit CTLs verwendet.

CERT_PVK_FILE_PROP_ID
Datentyp für pvData: Zeiger auf ein BYTE-Array

Gibt eine breite Unicode-Zeichenfolge mit Null-Beendigung zurück, die den Dateinamen angibt, der den privaten Schlüssel enthält, der dem öffentlichen Schlüssel des Zertifikats zugeordnet ist.

CERT_SHA1_HASH_PROP_ID
Datentyp für pvData: Zeiger auf ein BYTE-Array

Gibt den SHA1-Hash zurück. Wenn der Hash nicht vorhanden ist, wird er mithilfe von CryptHashCertificate berechnet.

CERT_SIGN_HASH_CNG_ALG_PROP_ID
Datentyp von pvData: Zeiger auf eine Unicode-Zeichenfolge mit Null-Endung.

Gibt die L"<SIGNATURE>/<HASH>"-Zeichenfolge zurück, die die Zertifikatsignatur darstellt. Der <SIGNATURE-Wert> identifiziert den Öffentlichen CNG-Schlüsselalgorithmus. Die folgenden Algorithmen werden unterstützt:

  • L"RSA" (BCRYPT_RSA_ALGORITHM)
  • L"DSA" (BCRYPT_DSA_ALGORITHM)
  • L"ECDSA" (SSL_ECDSA_ALGORITHM)
Der <HASH-Wert> identifiziert den CNG-Hashalgorithmus. Die folgenden Algorithmen werden unterstützt:
  • L"MD5" (BCRYPT_MD5_ALGORITHM)
  • L"SHA1" (BCRYPT_SHA1_ALGORITHM)
  • L"SHA256" (BCRYPT_SHA256_ALGORITHM)
  • L"SHA384" (BCRYPT_SHA384_ALGORITHM)
  • L"SHA512" (BCRYPT_SHA512_ALGORITHM)
Im Folgenden sind allgemeine Beispiele aufgeführt:
  • L"RSA/SHA1"
  • L"RSA/SHA256"
  • L"ECDSA/SHA256"
Diese Eigenschaft gilt auch für eine OCSP-Antwort, die in eine Zertifikatsperrliste konvertiert wurde.

Windows 8 und Windows Server 2012: Die Unterstützung für diese Eigenschaft beginnt.

CERT_SIGNATURE_HASH_PROP_ID
Datentyp für pvData: Zeiger auf ein BYTE-Array

Gibt den Signaturhash zurück. Wenn der Hash nicht vorhanden ist, wird er mit CryptHashToBeSigned berechnet. Die Länge des Hashes beträgt 20 Bytes für SHA und 16 byte für MD5.

 

Bei vielen Eigenschaftsbezeichnern verweist pvData auf ein Array von Bytes und nicht auf ein CRYPT_DATA_BLOB , wie der pvData-Parameter in CertSetCRLContextProperty zeigt.

Weitere Informationen zu den einzelnen Eigenschaftenbezeichnern finden Sie in der Dokumentation zum dwPropId-Parameter in CertSetCertificateContextProperty.

[out] pvData

Ein Zeiger auf einen Puffer, um die Von dwPropId ermittelten Daten zu empfangen. Strukturen, auf die von Elementen einer zurückgegebenen Struktur verwiesen wird, werden ebenfalls nach der Basisstruktur zurückgegeben. Daher überschreitet die in pcbData enthaltene Größe häufig die Größe der Basisstruktur.

Dieser Parameter kann NULL sein, um die Größe der Informationen für Speicherzuordnungszwecke festzulegen. Weitere Informationen finden Sie unter Abrufen von Daten unbekannter Länge.

[in, out] pcbData

Ein Zeiger auf einen DWORD-Wert , der die Größe des Puffers in Bytes angibt, auf den der pvData-Parameter verweist. Wenn die Funktion zurückgibt, enthält der DWORD-Wert die Anzahl der Bytes, die im Puffer gespeichert werden sollen.

Hinweis Bei der Verarbeitung der im Puffer zurückgegebenen Daten müssen Anwendungen die tatsächliche Größe der zurückgegebenen Daten verwenden. Die tatsächliche Größe kann etwas kleiner sein als die Größe des Puffers, der bei der Eingabe angegeben wird. (Bei der Eingabe werden Puffergrößen normalerweise groß genug angegeben, um sicherzustellen, dass die größtmöglichen Ausgabedaten in den Puffer passen.) Bei der Ausgabe wird die Variable aktualisiert, auf die dieser Parameter verweist, um die tatsächliche Größe der in den Puffer kopierten Daten widerzuspiegeln.
 

Rückgabewert

Wenn die Funktion erfolgreich ist, ist der Rückgabewert TRUE.

Wenn die Funktion fehlschlägt, ist der Rückgabewert FALSE.

Beachten Sie, dass Fehler aus der aufgerufenen Funktion CryptHashCertificate an diese Funktion weitergegeben werden können. Rufen Sie GetLastError auf, um erweiterte Fehlerinformationen zu erhalten. Es folgen einige mögliche Fehlercodes.

Rückgabecode Beschreibung
CRYPT_E_NOT_FOUND
Die Zertifikatsperrliste verfügt nicht über die angegebene Eigenschaft.
ERROR_MORE_DATA
Wenn der vom pvData-Parameter angegebene Puffer nicht groß genug ist, um die zurückgegebenen Daten aufzunehmen, legt die Funktion den ERROR_MORE_DATA Code fest und speichert die erforderliche Puffergröße in Bytes in der Variablen, auf die von pcbData verwiesen wird.

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

CertEnumCRLContextProperties

CertGetCertificateContextProperty

CryptHashCertificate

Erweiterte Eigenschaftenfunktionen