CertGetCTLContextProperty-Funktion (wincrypt.h)

Die CertGetCTLContextProperty-Funktion ruft eine erweiterte Eigenschaft eines CTL-Kontexts ( Certificate Trust List ) ab.

Syntax

BOOL CertGetCTLContextProperty(
  [in]      PCCTL_CONTEXT pCtlContext,
  [in]      DWORD         dwPropId,
  [out]     void          *pvData,
  [in, out] DWORD         *pcbData
);

Parameter

[in] pCtlContext

Ein Zeiger auf die CTL_CONTEXT Struktur.

[in] dwPropId

Gibt die abzurufende Eigenschaft an. Derzeit definierte Bezeichner und der in pvData zurückgegebene Datentyp 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 als schreibgeschützt geöffnet wird.

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 beendete 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 Array von Bytes 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 von der Zertifikatbenutzeroberfläche angezeigte Eigenschaft zurück. Mit dieser Eigenschaft kann der Benutzer die Verwendung des Zertifikats beschreiben.

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

Gibt ein Array von Bytes 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-Beendigung zurück, die den Anzeigenamen für die CTL enthält.

CERT_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_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 sie nach der szOID_SUBJECT_KEY_IDENTIFIER-Erweiterung. Wenn dies fehlschlägt, wird ein SHA1-Hash auf dem SubjectPublicKeyInfo-Member 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 Struktur

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 mithilfe von 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_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 allen anderen Eigenschaftenbezeichnern verweist pvData auf ein Array von Bytes und nicht auf eine CRYPT_DATA_BLOB , wie der pvData-Parameter in CertSetCertificateContextProperty zeigt.

Weitere Informationen zu den einzelnen Eigenschaftenbezeichnern finden Sie in der Dokumentation zum dwPropId-Parameter in CertSetCertificateContextProperty. CERT_SHA1_HASH_PROP_ID und CERT_NEXT_UPDATE_LOCATION_PROP_ID sind die vordefinierten Eigenschaften von größtem Interesse.

[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.

Fehler aus der aufgerufenen Funktion CryptHashCertificate 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
CRYPT_E_NOT_FOUND
Die CTL 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

CertEnumCTLContextProperties

CertGetCertificateContextProperty

CertSetCTLContextProperty

CryptHashCertificate

Erweiterte Eigenschaftenfunktionen