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 |
---|---|
|
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. |
|
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. |
|
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. |
|
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. |
|
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. |
|
Datentyp von pvData: Zeiger auf eine CRYPT_DATA_BLOB
Die CRYPT_DATA_BLOB-Struktur gibt den Anzeigenamen des Zertifikats an. |
|
Datentyp von pvData: Zeiger auf eine CRYPT_HASH_BLOB
Diese Eigenschaft wird implizit durch einen Aufruf von CertGetCertificateContextProperty festgelegt. |
|
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. |
|
Datentyp von pvData: Zeiger auf eine CRYPT_DATA_BLOB
Diese Eigenschaft wird in der Regel implizit durch einen Aufruf von CertGetCertificateContextProperty festgelegt. |
|
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 . |
|
Datentyp von pvData: Zeiger auf eine CRYPT_KEY_PROV_INFO
Die CRYPT_KEY_PROV_INFO-Struktur gibt den privaten Schlüssel des Zertifikats an. |
|
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. |
|
Datentyp von pvData: Zeiger auf eine CRYPT_HASH_BLOB
Diese Eigenschaft wird implizit durch einen Aufruf von CertGetCertificateContextProperty festgelegt. |
|
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. |
|
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. |
|
Datentyp von pvData: Zeiger auf eine CRYPT_HASH_BLOB
Diese Eigenschaft wird implizit durch einen Aufruf von CertGetCertificateContextProperty festgelegt. |
|
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.
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 |
---|---|
|
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 |