CertSetCRLContextProperty-Funktion (wincrypt.h)

Die CertSetCRLContextProperty-Funktion legt eine erweiterte Eigenschaft für den angegebenen CRL-Kontext ( Certificate Revocation List ) fest.

Syntax

BOOL CertSetCRLContextProperty(
  [in] PCCRL_CONTEXT pCrlContext,
  [in] DWORD         dwPropId,
  [in] DWORD         dwFlags,
  [in] const void    *pvData
);

Parameter

[in] pCrlContext

Ein Zeiger auf die CRL_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 der datentyp, der in pvData zurückgegeben werden soll, sind in der folgenden Tabelle aufgeführt.

In der Regel werden nur die folgenden Eigenschaften festgelegt:

  • CERT_HASH_PROP_ID
  • CERT_SHA1_HASH_PROP_ID
  • CERT_MD5_HASH_PROP_ID
  • CERT_SIGNATURE_HASH_PROP_ID
Wert Bedeutung
CERT_ACCESS_STATE_PROP_ID
Datentyp für pvData: Zeiger auf ein DWORD

Legt einen DWORD-Wert fest, 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

Legt eine Unicode-Zeichenfolge mit Null-Beendigung fest, die den Zertifikattyp benennt, für den das Zertifikat automatisch registriert wurde.

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

Legt ein Bytearray fest, das eine ASN.1-codierte (Abstract Syntax Notation One ) CTL_USAGE-Struktur enthält.

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

Legt die Eigenschaft fest, 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:

Legt ein Bytearray fest, 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

Legt eine Mit Null endende Unicode-Zeichenfolge fest, 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 CRYPT_DATA_BLOB-Struktur .

Legt eine Zeichenfolge fest, die einen Satz von L"<PUBKEY>/<BITLENGTH>"-Algorithmuspaaren mit öffentlichem Schlüssel und Bitlänge 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 festgelegt. Diese Eigenschaft kann festgelegt werden, wenn eine OCSP-Antwort mit einer unabhängigen Signierkette in eine CRL konvertiert wird.
Hinweis Diese Eigenschaft sollte nicht für ein delegiertes OCSP-Signerzertifikat festgelegt 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 CRYPT_DATA_BLOB-Struktur .

Legt eine Zeichenfolge fest, 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"
Diese Eigenschaft wird explizit von den Sperrfunktionen zum Überprüfen festgelegt.
CERT_ISSUER_PUB_KEY_BIT_LENGTH_PROP_ID
Datentyp für pvData: Zeiger auf eine CRYPT_DATA_BLOB-Struktur .

Legt die Länge des öffentlichen Schlüssels im Zertifikat des Zertifikatsperrlistenausstellers in Bits fest. Diese Eigenschaft gilt auch für ein OCSP, das in eine CRL konvertiert wurde.

Diese Eigenschaft wird explizit von den Sperrfunktionen zum Überprüfen festgelegt.

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

Legt eine CERT_KEY_CONTEXT-Struktur fest.

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

Legt das Aus dem CERT_KEY_CONTEXT_PROP_ID abgerufene Anbieterhandle fest.

CERT_KEY_PROV_INFO_PROP_ID
Datentyp für pvData: Zeiger auf eine CRYPT_KEY_PROV_INFO

Legt einen Zeiger auf eine CRYPT_KEY_PROV_INFO-Struktur fest.

CERT_KEY_SPEC_PROP_ID
Datentyp für pvData: Zeiger auf ein DWORD

Legt einen DWORD-Wert fest, der den privaten Schlüssel angibt, der von CERT_KEY_CONTEXT_PROP_ID -Eigenschaft abgerufen wird, 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

Legt den MD5-Hash fest. Sie können den Hash mithilfe der Funktion CryptHashCertificate berechnen.

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

Legt die ASN.1-codierte CERT_ALT_NAME_INFO-Struktur für eine CTL fest.

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

Legt eine breite Unicode-Zeichenfolge mit Null-Beendigung fest, die den Namen der Datei angibt, die 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

Legt den SHA1-Hash fest. Sie können den Hash mithilfe von CryptHashCertificate berechnen.

CERT_SIGN_HASH_CNG_ALG_PROP_ID
Datentyp von pvData: Zeiger auf eine CRYPT_DATA_BLOB Struktur.

Legt die L"<SIGNATURE HASH"->/<Zeichenfolge fest, 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.

Diese Eigenschaft wird explizit von den Sperrfunktionen zum Überprüfen festgelegt.

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

Legt den Signaturhash fest. 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.

 

Der Benutzer kann zusätzliche dwPropId-Typen mithilfe von DWORD-Werten von CERT_FIRST_USER_PROP_ID bis CERT_LAST_USER_PROP_ID definieren. für alle benutzerdefinierten dwPropId-Typen verweist pvData auf eine codierte CRYPT_DATA_BLOB.

Für alle anderen Eigenschaftenbezeichner 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 wert CERT_SET_PROPERTY_IGNORE_PERSIST_ERROR_FLAG festgelegt ist, werden alle Anbieterschreibfehler ignoriert, und die Eigenschaften des zwischengespeicherten Kontexts werden immer festgelegt.

Wenn die CERT_SET_PROPERTY_INHIBIT_PERSIST_FLAG festgelegt ist, wird ein beliebiger Eigenschaftssatz nicht 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
Die Eigenschaft ist ungültig. Der angegebene Bezeichner war größer als 0x0000FFFF, oder für die CERT_KEY_CONTEXT_PROP_ID-Eigenschaft wurde ein ungültiges cbSize-Element in der CERT_KEY_CONTEXT-Struktur angegeben.

Hinweise

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

Beispiele

Ein Beispiel, das diese Funktion verwendet, 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

CERT_ALT_NAME_INFO

CERT_CONTEXT

CERT_ENHKEY_USAGE

CERT_KEY_CONTEXT

CRL_CONTEXT

CRYPT_DATA_BLOB

CRYPT_HASH_BLOB

CRYPT_KEY_PROV_INFO

CTL_USAGE

CertGetCRLContextProperty

CertSetCertificateContextProperty

CryptEncodeObject

CryptHashToBeSigned

Erweiterte Eigenschaftenfunktionen