CertSetCTLContextProperty-Funktion (wincrypt.h)

Die CertSetCTLContextProperty-Funktion legt eine erweiterte Eigenschaft für den angegebenen CTL-Kontext ( Certificate Trust List ) fest.

Syntax

BOOL CertSetCTLContextProperty(
  [in] PCCTL_CONTEXT pCtlContext,
  [in] DWORD         dwPropId,
  [in] DWORD         dwFlags,
  [in] const void    *pvData
);

Parameter

[in] pCtlContext

Ein Zeiger auf die CTL_CONTEXT-Struktur .

[in] dwPropId

Gibt die festzulegende Eigenschaft an. Der Wert von dwPropId bestimmt den Typ und den Inhalt des pvData-Parameters . Derzeit definierte Bezeichner und ihre zugehörigen pvData-Typen sind wie folgt.

Wert Bedeutung
CERT_ARCHIVED_PROP_ID
Datentyp von pvData: NULL

Gibt an, dass das Zertifikat während der Enumerationen übersprungen wird. Ein Zertifikat mit diesem Eigenschaftensatz wird weiterhin mit expliziten Suchvorgängen gefunden, z. B. beim Suchen eines Zertifikats mit einem bestimmten Hash oder einer bestimmten Seriennummer.

CERT_AUTO_ENROLL_PROP_ID
Datentyp von pvData: Zeiger auf eine CRYPT_DATA_BLOB

Die Eigenschaft wird festgelegt, nachdem ein Zertifikat mithilfe der automatischen Registrierung registriert wurde. Die CRYPT_DATA_BLOB Struktur, auf die von pvData verwiesen wird, enthält einen mit NULL endendten Unicode-Namen des Zertifikattyps, für den die Zertifikate automatisch registriert wurden. Alle nachfolgenden Aufrufe der automatischen Registrierung für das Zertifikat überprüfen diese Eigenschaft, um festzustellen, ob das Zertifikat registriert wurde.

CERT_CTL_USAGE_PROP_ID
Datentyp von pvData: Zeiger auf eine CRYPT_DATA_BLOB

pvData verweist auf eine CRYPT_DATA_BLOB-Struktur , die eine ASN.1-codierte asn.1-codierte CTL_USAGE-Struktur enthält. Diese Struktur wurde mit CryptEncodeObject codiert, wobei X509_ENHANCED_KEY_USAGE Wert festgelegt wurde.

CERT_DESCRIPTION_PROP_ID
Datentyp von pvData: Zeiger auf eine CRYPT_DATA_BLOB

Eigenschaft festgelegt und von der Zertifikatbenutzeroberfläche angezeigt. Mit dieser Eigenschaft kann der Benutzer die Verwendung des Zertifikats beschreiben.

CERT_ENHKEY_USAGE_PROP_ID
Datentyp von pvData: Zeiger auf eine CRYPT_DATA_BLOB

Die CRYPT_DATA_BLOB-Struktur , die eine ASN.1-codierte CERT_ENHKEY_USAGE-Struktur enthält. Diese Struktur wurde mit CryptEncodeObject codiert, wobei X509_ENHANCED_KEY_USAGE Wert festgelegt wurde.

CERT_FRIENDLY_NAME_PROP_ID
Datentyp von pvData: Zeiger auf eine CRYPT_DATA_BLOB

Die CRYPT_DATA_BLOB-Struktur gibt den Anzeigenamen des Zertifikats an.

CERT_HASH_PROP_ID
Datentyp von pvData: Zeiger auf eine CRYPT_HASH_BLOB

Diese Eigenschaft wird implizit durch einen Aufruf von CertGetCertificateContextProperty festgelegt.

CERT_KEY_CONTEXT_PROP_ID
Datentyp von pvData: Zeiger auf eine CERT_KEY_CONTEXT

Die CERT_KEY_CONTEXT-Struktur enthält sowohl den HCRYPTPROV-Wert als auch die Schlüsselspezifikation für den privaten Schlüssel. Weitere Informationen zum hCryptProv-Member und zu dwFlags-Einstellungen finden Sie unter CERT_KEY_PROV_HANDLE_PROP_ID im Folgenden. Beachten Sie, dass für diese Eigenschaft weitere CERT_KEY_CONTEXT Strukturmember hinzugefügt werden können. Wenn ja, wird der cbSize-Memberwert entsprechend angepasst. Der cbSize-Member muss auf die Größe der CERT_KEY_CONTEXT-Struktur festgelegt werden.

CERT_KEY_IDENTIFIER_PROP_ID
Datentyp von pvData: Zeiger auf eine CRYPT_DATA_BLOB

Diese Eigenschaft wird in der Regel implizit durch einen Aufruf von CertGetCertificateContextProperty festgelegt.

CERT_KEY_PROV_HANDLE_PROP_ID
Datentyp von pvData: Zeiger auf eine HCRYPTPROV

Ein HCRYPTPROV-Handle für den privaten Schlüssel des Zertifikats wird übergeben. Das hCryptProv-Element der CERT_KEY_CONTEXT-Struktur wird aktualisiert, sofern vorhanden. Wenn sie nicht vorhanden ist, wird sie mit dwKeySpec erstellt, die von CERT_KEY_PROV_INFO_PROP_ID initialisiert wurde. Wenn CERT_STORE_NO_CRYPT_RELEASE_FLAG nicht festgelegt ist, wird der hCryptProv-Wert implizit freigegeben, entweder wenn die Eigenschaft auf NULL festgelegt ist, oder beim endgültigen Freigeben der CERT_CONTEXT-Struktur .

CERT_KEY_PROV_INFO_PROP_ID
Datentyp von pvData: Zeiger auf eine CRYPT_KEY_PROV_INFO

Die CRYPT_KEY_PROV_INFO-Struktur gibt den privaten Schlüssel des Zertifikats an.

CERT_KEY_SPEC_PROP_ID
Datentyp von pvData: Zeiger auf ein DWORD

Der DWORD-Wert gibt den privaten Schlüssel an. Das dwKeySpec-Element der CERT_KEY_CONTEXT-Struktur wird aktualisiert, sofern vorhanden. Wenn dies nicht der Fall ist, wird sie erstellt, wobei hCryptProv auf 0 (null) festgelegt ist.

CERT_MD5_HASH_PROP_ID
Datentyp von pvData: Zeiger auf eine CRYPT_HASH_BLOB

Diese Eigenschaft wird implizit durch einen Aufruf von CertGetCertificateContextProperty festgelegt.

CERT_NEXT_UPDATE_LOCATION_PROP_ID
Datentyp von pvData: Zeiger auf eine CRYPT_DATA_BLOB

Die CRYPT_DATA_BLOB-Struktur enthält eine ASN.1-codierte CERT_ALT_NAME_INFO-Struktur , die mit CryptEncodeObject mit festgelegtem X509_ALTERNATE_NAME-Wert codiert ist. CERT_NEXT_UPDATE_LOCATION_PROP_ID wird derzeit nur mit CTLs verwendet.

CERT_PVK_FILE_PROP_ID
Datentyp von pvData: Zeiger auf eine CRYPT_DATA_BLOB

Die CRYPT_DATA_BLOB-Struktur gibt den Namen einer Datei an, die den privaten Schlüssel enthält, der dem öffentlichen Schlüssel des Zertifikats zugeordnet ist. Innerhalb der CRYPT_DATA_BLOB-Struktur ist der pbData-Member ein Zeiger auf eine Mit NULL endende Unicode-Breitzeichenzeichenfolge, und das cbData-Element gibt die Länge der Zeichenfolge an.

CERT_SHA1_HASH_PROP_ID
Datentyp von pvData: Zeiger auf eine CRYPT_HASH_BLOB

Diese Eigenschaft wird implizit durch einen Aufruf von CertGetCertificateContextProperty festgelegt.

CERT_SIGNATURE_HASH_PROP_ID
CRYPT_HASH_BLOB
Datentyp von pvData: Zeiger auf eine CRYPT_HASH_BLOB

Wenn kein Signaturhash vorhanden ist, wird er mit CryptHashToBeSigned berechnet. pvData verweist auf einen vorhandenen oder berechneten Hash. In der Regel beträgt die Länge des Hashs 20 Bytes für SHA und 16 für MD5.

 

In der Regel wird nur die eigenschaft CERT_NEXT_UPDATE_LOCATION_PROP_ID festgelegt.

Weitere dwPropId-Typen können vom Benutzer mithilfe von DWORD-Werten von CERT_FIRST_USER_PROP_ID bis CERT_LAST_USER_PROP_ID definiert werden. Für alle benutzerdefinierten dwPropId-Typen verweist pvData auf eine codierte CRYPT_DATA_BLOB-Struktur .

[in] dwFlags

CERT_STORE_NO_CRYPT_RELEASE_FLAG können für die eigenschaften CERT_KEY_PROV_HANDLE_PROP_ID oder CERT_KEY_CONTEXT_PROP_ID dwPropId festgelegt werden.

Wenn der CERT_SET_PROPERTY_IGNORE_PERSIST_ERROR_FLAG Wert festgelegt ist, werden alle Fehler beim Anbieterschreibvorgang ignoriert, und die Eigenschaften des zwischengespeicherten Kontexts werden immer festgelegt.

Wenn CERT_SET_PROPERTY_INHIBIT_PERSIST_FLAG festgelegt ist, wird kein Eigenschaftssatz beibehalten.

[in] pvData

Ein Zeiger auf einen Datentyp, der durch den in dwPropId übergebenen Wert bestimmt wird.

Hinweis Für jede dwPropId löscht das Festlegen von pvData auf NULL die -Eigenschaft.
 

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. Ein möglicher Fehlercode ist der folgende.

Rückgabecode Beschreibung
E_INVALIDARG
Ungültiger Eigenschaftsbezeichner. Ausführliche Informationen finden Sie unter CertSetCertificateContextProperty.

Hinweise

Wenn eine Eigenschaft bereits vorhanden ist, wird ihr alter Wert ersetzt.

Beispiele

Weitere Informationen finden Sie unter Beispiel-C-Programm: Abrufen und Festlegen von Zertifikateigenschaften.

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

CertGetCTLContextProperty

CertSetCertificateContextProperty

CryptEncodeObject

Erweiterte Eigenschaftenfunktionen