Freigeben über


Key Storage-Eigenschaftsbezeichner

Die folgenden Werte werden verwendet, um eine Schlüsselspeichereigenschaft zu identifizieren.

Bezeichner

NCRYPT_ALGORITHM_GROUP_PROPERTY

L"Algorithm Group"

Eine mit Null beendete Unicode-Zeichenfolge, die den Namen der Algorithmusgruppe des Objekts enthält. Diese Eigenschaft gilt nur für Schlüssel. Die folgenden Bezeichner werden vom Microsoft-Schlüsselspeicheranbieter zurückgegeben.

Kennung Wert BESCHREIBUNG
NCRYPT_RSA_ALGORITHM_GROUP "RSA" Die RSA-Algorithmusgruppe.
NCRYPT_DH_ALGORITHM_GROUP "DH" Die Gruppe Diffie-Hellman Algorithmus.
NCRYPT_DSA_ALGORITHM_GROUP "DSA" Die Gruppe des DSA-Algorithmus.
NCRYPT_ECDSA_ALGORITHM_GROUP "ECDSA" Die Gruppe der elliptischen Kurve DSA-Algorithmus.
NCRYPT_ECDH_ALGORITHM_GROUP "ECDH" Die elliptische Kurve Diffie-Hellman Algorithmusgruppe.

NCRYPT_ALGORITHM_PROPERTY

L"Algorithm Name"

Eine mit Null beendete Unicode-Zeichenfolge, die den Namen des Algorithmus des Objekts enthält. Dabei kann es sich um einen der vordefinierten CNG-Algorithmusbezeichner oder einen anderen registrierten Algorithmusbezeichner handeln. Diese Eigenschaft gilt nur für Schlüssel.

NCRYPT_ASSOCIATED_ECDH_KEY

L"SmartCardAssociatedECDHKey"

Ein LPWSTR-Wert , der den Containernamen des Elliptic Curve Diffie-Hellman (ECDH) -Schlüssels angibt, der bei der Anmeldung für einen bestimmten Handle für einen Elliptic Curve Digital Signature Algorithm (ECDSA) verwendet werden soll. Wenn keine ECDH-Schlüssel auf der Karte vorhanden sind, gibt der Schlüsselspeicheranbieter (Key Storage Provider , KSP) zurück NTE_NOT_FOUND. Diese Eigenschaft gilt für ECDSA-Schlüssel für die Anmeldung mit Smartcards. Die Eigenschaft wird vom Microsoft SmartCard-Schlüsselspeicheranbieter und nicht vom Microsoft-Softwareschlüsselspeicheranbieter unterstützt.

Windows Server 2008 und Windows Vista: Dieser Wert wird nicht unterstützt.

NCRYPT_BLOCK_LENGTH_PROPERTY

L"Block Length"

Ein DWORD , das die Länge des Verschlüsselungsblocks in Bytes enthält. Diese Eigenschaft gilt nur für Schlüssel, die verschlüsselung unterstützen.

NCRYPT_CERTIFICATE_PROPERTY

L"SmartCardKeyCertificate"

Ein BLOB , das ein X.509-Zertifikat enthält, das dem Schlüssel zugeordnet ist.

Windows Server 2008 R2, Windows 7, Windows Server 2008 und Windows Vista: Ein BLOB, das das Smartcardschlüsselzertifikat enthält. Diese Eigenschaft wird vom Microsoft Software Key Storage Provider nicht unterstützt.

NCRYPT_DH_PARAMETERS_PROPERTY

L"DHParameters"

Gibt Parameter an, die mit einem Diffie-Hellman-Schlüssel verwendet werden sollen. Dieser Datentyp ist ein Zeiger auf eine BCRYPT_DH_PARAMETER_HEADER Struktur. Diese Eigenschaft kann nur festgelegt werden und muss für den Schlüssel festgelegt werden, bevor der Schlüssel abgeschlossen ist.

NCRYPT_EXPORT_POLICY_PROPERTY

L"Export Policy"

Ein DWORD , das eine Reihe von Flags enthält, die die Exportrichtlinie für einen dauerhaften Schlüssel angeben. Diese Eigenschaft gilt nur für Schlüssel. Dies kann null oder eine Kombination aus einem oder mehreren der folgenden Werte enthalten.

Kennung Wert BESCHREIBUNG
NCRYPT_ALLOW_EXPORT_FLAG 0x00000001 Der private Schlüssel kann exportiert werden.
NCRYPT_ALLOW_PLAINTEXT_EXPORT_FLAG 0x00000002 Der private Schlüssel kann in Nur-Text-Formular exportiert werden.
NCRYPT_ALLOW_ARCHIVING_FLAG 0x00000004 Der private Schlüssel kann einmal für Archivierungszwecke exportiert werden. Dieses Kennzeichen gilt nur für den ursprünglichen Tastenziehpunkt, auf dem es festgelegt ist. Diese Richtlinie kann nur auf das ursprüngliche Schlüsselhandle angewendet werden. Nachdem das Schlüsselhandle geschlossen wurde, kann der Schlüssel nicht mehr zu Archivierungszwecken exportiert werden.
NCRYPT_ALLOW_PLAINTEXT_ARCHIVING_FLAG 0x00000008 Der private Schlüssel kann einmal in Nur-Text-Formular für Archivierungszwecke exportiert werden. Dieses Kennzeichen gilt nur für den ursprünglichen Tastenziehpunkt, auf dem es festgelegt ist. Diese Richtlinie kann nur auf das ursprüngliche Schlüsselhandle angewendet werden. Nachdem das Schlüsselhandle geschlossen wurde, kann der Schlüssel nicht mehr zu Archivierungszwecken exportiert werden.

NCRYPT_IMPL_TYPE_PROPERTY

L"Impl Type"

Ein DWORD , das eine Reihe von Flags enthält, die Implementierungsdetails des Anbieters definieren. Diese Eigenschaft gilt nur für Schlüsselspeicheranbieter. Dies kann null oder eine Kombination aus einem oder mehreren der folgenden Werte enthalten.

Kennung Wert BESCHREIBUNG
NCRYPT_IMPL_HARDWARE_FLAG 0x00000001 Der Anbieter ist hardwarebasiert.
NCRYPT_IMPL_SOFTWARE_FLAG 0x00000002 Der Anbieter ist softwarebasiert.
NCRYPT_IMPL_REMOVABLE_FLAG 0x00000008 Der Anbieter ist wechselbar.
NCRYPT_IMPL_HARDWARE_RNG_FLAG 0x00000010 Der Anbieter ist ein hardwarebasierter Zufallszahlengenerator.
NCRYPT_IMPL_VIRTUAL_ISOLATION_FLAG 0x00000020 Der Anbieter ist ein virtualisierter Isolationsanbieter.

NCRYPT_KEM_CIPHERTEXT_LENGTH_PROPERTY

L"KEM Ciphertext Length"

Ein DWORD , das die Länge des Chiffretexts in Bytes enthält. Diese Eigenschaft gilt nur für Schlüssel, die Schlüsselkapselungsmechanismen (KEM) unterstützen.

NCRYPT_KEM_SHARED_SECRET_LENGTH_PROPERTY

L"KEM Shared Secret Length"

Ein DWORD , das die Länge des freigegebenen geheimen Schlüssels in Bytes enthält. Diese Eigenschaft gilt nur für Schlüssel, die Schlüsselkapselungsmechanismen (KEM) unterstützen.

NCRYPT_KEY_TYPE_PROPERTY

L"Key Type"

Ein DWORD , das eine Reihe von Flags enthält, die den Schlüsseltyp definieren. Diese Eigenschaft gilt nur für Schlüssel. Dies kann null oder den folgenden Wert enthalten.

Kennung Wert BESCHREIBUNG
NCRYPT_MACHINE_KEY_FLAG 0x00000020 Der Schlüssel gilt für den lokalen Computer. Wenn dieses Kennzeichen nicht vorhanden ist, gilt der Schlüssel für den aktuellen Benutzer.

NCRYPT_KEY_USAGE_PROPERTY

L"Key Usage"

Ein DWORD , das eine Reihe von Flags enthält, die die Verwendungsdetails für einen Schlüssel definieren. Diese Eigenschaft gilt nur für Schlüssel. Dies kann null oder eine Kombination aus einem oder mehreren der folgenden Werte enthalten.

Kennung Wert BESCHREIBUNG
NCRYPT_ALLOW_DECRYPT_FLAG 0x00000001 Der Schlüssel kann für die Entschlüsselung verwendet werden.
NCRYPT_ALLOW_SIGNING_FLAG 0x00000002 Der Schlüssel kann zum Signieren verwendet werden.
NCRYPT_ALLOW_KEY_AGREEMENT_FLAG 0x00000004 Der Schlüssel kann für die Verschlüsselung geheimer Vereinbarungen verwendet werden.
NCRYPT_ALLOW_KEY_ATTESTATION_FLAG 0x00000010 Gibt an, dass der Schlüssel ein Schlüssel mit Nachweis ist.
NCRYPT_ALLOW_ALL_USAGES 0x00ffffff Der Schlüssel kann für jeden Zweck verwendet werden.

NCRYPT_LAST_MODIFIED_PROPERTY

L"Modified"

Gibt an, wann der Schlüssel zuletzt geändert wurde. Dieser Datentyp ist ein Zeiger auf eine FILETIME-Struktur . Diese Eigenschaft gilt nur für beibehaltene Schlüssel.

NCRYPT_LENGTH_PROPERTY

L"Length"

Ein DWORD , das die Länge des Schlüssels in Bits enthält. Diese Eigenschaft gilt nur für Schlüssel.

NCRYPT_LENGTHS_PROPERTY

L"Lengths"

Gibt die Schlüsselgrößen an, die vom Schlüssel unterstützt werden. Dieser Datentyp ist ein Zeiger auf eine NCRYPT_SUPPORTED_LENGTHS Struktur, die diese Informationen enthält. Diese Eigenschaft gilt nur für Schlüssel.

NCRYPT_MAX_NAME_LENGTH_PROPERTY

L"Max Name Length"

Ein DWORD , das die maximale Länge (in Zeichen) des Namens eines dauerhaften Schlüssels enthält. Diese Eigenschaft gilt nur für einen Anbieter.

Diese Eigenschaft soll in erster Linie von Schlüsselspeicheranbietern verwendet werden, die ihre Schlüssel auf einem Gerät speichern, das über eine begrenzte Menge verfügbaren Arbeitsspeicher verfügt, z. B. eine Smartcard.

NCRYPT_NAME_PROPERTY

L"Name"

Ein Zeiger auf eine mit Null beendete Unicode-Zeichenfolge, die den Namen des Objekts enthält.

NCRYPT_PIN_PROMPT_PROPERTY

L"SmartCardPinPrompt"

Dieser Wert wird nicht unterstützt.

NCRYPT_PIN_PROPERTY

L"SmartCardPin"

Ein Zeiger auf eine mit Null beendete Unicode-Zeichenfolge, die die PIN enthält. Die PIN wird für einen Smartcardschlüssel oder das Kennwort für einen kennwortgeschützten Schlüssel verwendet, der in einem softwarebasierten KSP gespeichert ist. Diese Eigenschaft kann nur festgelegt werden. Microsoft KSPs speichern diesen Wert zwischen, sodass der Benutzer nur einmal pro Prozess aufgefordert wird.

NCRYPT_PROVIDER_HANDLE_PROPERTY

L"Provider Handle"

Ein NCRYPT_PROV_HANDLE , der das Handle des CNG-Schlüsselspeicheranbieters enthält. Wenn Sie mit der Verwendung des Handle fertig sind, müssen Sie NCryptFreeObject aufrufen, um es freizugeben.

NCRYPT_READER_PROPERTY

L"SmartCardReader"

Ein Zeiger auf eine mit Null beendete Unicode-Zeichenfolge, die den Namen des Smartcardlesers enthält. Diese Eigenschaft kann nur festgelegt werden.

NCRYPT_ROOT_CERTSTORE_PROPERTY

L"SmartcardRootCertStore"

Ein HCERTSTORE , der den Smartcard-Stammzertifikatspeicher darstellt.

NCRYPT_SCARD_PIN_ID

L"SmartCardPinId"

Ein Zeiger auf den Wert, der PIN_ID einem bestimmten kryptografischen Schlüssel auf einer Smartcard zugeordnet ist. Dies ist eine schreibgeschützte Eigenschaft. Der PIN_ID Datentyp ist definiert in Cardmod.h.

Windows Server 2008 und Windows Vista: Dieser Wert wird nicht unterstützt.

Hinweis

Die Cardmod.h C-Headerdatei enthält zusätzliche Informationen, die für diese API relevant sind. Diese Datei enthält die Funktionsprototypen und Strukturen, die die Microsoft-Smartcard-Minidriver-API angibt. Diese API ist über das Microsoft Cryptographic Provider Development Kit (CPDK) verfügbar.

NCRYPT_SCARD_PIN_INFO

L"SmartCardPinInfo"

Ein Zeiger auf PIN_INFO Struktur der PIN, die einem bestimmten kryptografischen Schlüssel auf der Smartcard zugeordnet ist. Der Aufrufer stellt den Tastenziehpunkt bereit. Diese Eigenschaft ist eine schreibgeschützte Eigenschaft. Die PIN_INFO Struktur ist definiert in Cardmod.h.

Windows Server 2008 und Windows Vista: Dieser Wert wird nicht unterstützt.

NCRYPT_SECURE_PIN_PROPERTY

L"SmartCardSecurePin"

Ein Zeiger auf eine mit Null beendete Unicode-Zeichenfolge, die die Smartcardsitzungs-PIN enthält. Diese Eigenschaft kann nur festgelegt werden.

Windows Vista: Diese Eigenschaft wird nicht unterstützt.

NCRYPT_SECURITY_DESCR_PROPERTY

L"Security Descr"

Ein Zeiger auf eine SECURITY_DESCRIPTOR Struktur, die Zugriffssteuerungsinformationen für den Schlüssel enthält. Diese Eigenschaft gilt nur für persistente Schlüssel. Der dwFlags-Parameter der Funktion NCryptGetProperty oder NCryptSetProperty identifiziert den Teil des Sicherheitsdeskriptors, der abgerufen oder festgelegt werden soll.

NCRYPT_SECURITY_DESCR_SUPPORT_PROPERTY

L"Security Descr Support"

Gibt an, ob der Anbieter Sicherheitsbeschreibungen für Schlüssel unterstützt. Diese Eigenschaft ist ein DWORD , das 1 enthält, wenn der Anbieter Sicherheitsdeskriptoren für Schlüssel unterstützt. Wenn diese Eigenschaft einen anderen Wert enthält oder wenn die NCryptGetProperty-Funktion zurückgegeben wird NTE_NOT_SUPPORTED, unterstützt der Anbieter keine Sicherheitsdeskriptoren für Schlüssel. Diese Eigenschaft gilt nur für Anbieter.

NCRYPT_SMARTCARD_GUID_PROPERTY

L"SmartCardGuid"

Ein BLOB, das den Bezeichner der Smartcard enthält.

NCRYPT_UI_POLICY_PROPERTY

L"UI Policy"

Wenn sie mit der Funktion NCryptSetProperty oder NCryptGetProperty verwendet wird, ist dies ein Zeiger auf eine NCRYPT_UI_POLICY Struktur, die die Richtlinie für die starke Schlüssel-Benutzeroberfläche für den Schlüssel enthält. Diese Eigenschaft gilt nur für persistente Schlüssel. Diese Eigenschaft kann nur festgelegt werden, wenn der Schlüssel generiert wird. Sobald die NCryptFinalizeKey-Funktion für diesen Schlüssel aufgerufen wurde, wird diese Eigenschaft schreibgeschützt.

Ein Schlüsselspeicheranbieter kann diesen Parameter über eine NCryptSetPropertyFn-Rückruffunktion empfangen. Der Parameterwert ist eine NCRYPT_UI_POLICY_BLOB Struktur, die dieselben Informationen enthält. Wenn eine Anwendung eine Anforderung über NCryptSetPropertyFn an den Anbieter sendet, um diese Eigenschaft zurückzugeben, wird erwartet, dass der Anbieter eine NCRYPT_UI_POLICY_BLOB Struktur zurückgibt.

NCRYPT_UNIQUE_NAME_PROPERTY

L"Unique Name"

Ein Zeiger auf eine mit Null beendete Unicode-Zeichenfolge, die den eindeutigen Namen des Objekts enthält. Dies ist ein alternativer Name, der beim Zugriff auf den Schlüssel verwendet werden kann. Diese Eigenschaft wird verwendet, wenn angenommen wird, dass der Schlüsselname, der ursprünglich an NCryptCreatePersistedKey übergeben wurde, nicht eindeutig genug ist, um den dauerhaften Schlüssel zuverlässig zu identifizieren. Der Microsoft-Schlüsselspeicheranbieter gibt den Dateinamen des Schlüssels als diese Eigenschaft zurück.

NCRYPT_USE_CONTEXT_PROPERTY

L"Use Context"

Ein Zeiger auf eine mit Null beendete Unicode-Zeichenfolge, die den Kontext des Vorgangs beschreibt. Diese Eigenschaft ist nicht persistent und kann entweder für einen Anbieter oder einen Schlüssel festgelegt werden. Ein Schlüssel hat keinen Zugriff auf die NCRYPT_USE_CONTEXT_PROPERTY Eigenschaft des Anbieters, da die Eigenschaft nur für das Handle spezifisch ist, für das sie festgelegt ist.

Ein Beispiel, bei dem diese Eigenschaft im Kontext eines Anbieters verwendet wird, ist ein Schlüsselspeicheranbieter, der den Benutzer während eines Aufrufs von NCryptOpenKey auffordern muss (z. B. "Fügen Sie Ihre Smartcard in den Reader ein."). Da das Schlüsselhandle erst verfügbar ist, nachdem NCryptOpenKey zurückgegeben wurde, sollte die Anwendung diese Eigenschaft auf dem Anbieterhandle festlegen, bevor NCryptOpenKey aufgerufen wird.

Ein Beispiel, bei dem diese Eigenschaft im Kontext eines Schlüsselhandles verwendet wird, ist ein Schlüsselspeicheranbieter, der den Benutzer während eines Vorgangs mithilfe des Schlüssels auffordern muss (z. B. "Diese Anwendung muss diesen Schlüssel verwenden, um ein Dokument zu signieren.") Der Anbieter kann diese Kontextinformationen dann an den Benutzer in einer beliebigen Benutzeroberfläche weiterleiten, die während des Vorgangs angezeigt wird.

NCRYPT_USE_COUNT_ENABLED_PROPERTY

L"Enabled Use Count"

Gibt an, ob der Anbieter die Verwendungszählung für Schlüssel unterstützt. Diese Eigenschaft ist ein DWORD , das 1 enthält, wenn der Anbieter die Verwendungszählung für Schlüssel unterstützt. Wenn diese Eigenschaft einen anderen Wert enthält oder wenn die NCryptGetProperty-Funktion zurückgegeben wird NTE_NOT_SUPPORTED, unterstützt der Anbieter die Verwendungszählung für Schlüssel nicht. Diese Eigenschaft gilt nur für Anbieter.

NCRYPT_USE_COUNT_PROPERTY

L"Use Count"

Eine ULARGE_INTEGER Variable, die die Anzahl der Vorgänge enthält, die der angegebene private Schlüssel ausgeführt hat. Diese Eigenschaft ist optional und kann von allen Anbietern nicht unterstützt werden. Anbieter, die diese Eigenschaft für Schlüssel unterstützen, sollten auch die NCRYPT_USE_COUNT_ENABLED_PROPERTY-Eigenschaft des Anbieterhandles unterstützen. Der Microsoft-Schlüsselspeicheranbieter unterstützt diese Eigenschaft nicht. Diese Eigenschaft gilt nur für persistente Schlüssel.

NCRYPT_USER_CERTSTORE_PROPERTY

L"SmartCardUserCertStore"

Ein HCERTSTORE , der den Smartcard-Zertifikatspeicher darstellt.

NCRYPT_VBS_ROOT_PUB_PROPERTY

L"VBS_ROOT_PUB"

Eine neue Eigenschaft des MS_KEY_STORAGE_PROVIDER-Anbieters . Diese Eigenschaft ermöglicht den Abruf des öffentlichen Teils des Stammsignaturschlüssels (IDKS) von Virtualization Based Security (VBS).

NCRYPT_VERSION_PROPERTY

L"Version"

Ein DWORD , das die Softwareversion des Anbieters enthält. Das hohe Wort enthält die Hauptversion, und das niedrige Wort enthält die Nebenversion. Beispiel: 0x00030033 = 3.51. Diese Eigenschaft gilt nur für Anbieter.

NCRYPT_WINDOW_HANDLE_PROPERTY

L"HWND Handle"

Ein Zeiger auf das Fensterhandle (HWND), das als übergeordnetes Element einer angezeigten Benutzeroberfläche verwendet werden soll.

Da ein unerwünschtes Verhalten auftreten kann, wenn eine Benutzeroberfläche mithilfe eines NULL-Fensterhandles für das übergeordnete Element angezeigt wird, wird dringend empfohlen, dass ein Schlüsselspeicheranbieter keine Benutzeroberfläche anzeigt, es sei denn, diese Eigenschaft ist festgelegt.

Die folgenden Werte werden verwendet, um Grenzwerte für Eigenschaftsdaten zu definieren.

Dauerhaft Wert BESCHREIBUNG
NCRYPT_MAX_PROPERTY_DATA 0x100000 Gibt die maximale Größe eines Eigenschaftswerts in Bytes an.
NCRYPT_MAX_PROPERTY_NAME 64 Gibt die maximale Größe eines Eigenschaftsnamens in Zeichen an.

Anforderungen

Anforderung Wert
Mindest unterstützter Client Windows Vista [nur Desktop-Apps]
Unterstützter Server (Mindestversion) Windows Server 2008 [Nur Desktop-Apps]
Kopfzeile Ncrypt.h

Siehe auch