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

Bezeichner Wert BESCHREIBUNG
NCRYPT_RSA_ALGORITHM_GROUP "RSA" Die RSA-Algorithmusgruppe.
NCRYPT_DH_ALGORITHM_GROUP "DH" Die Diffie-Hellman-Algorithmusgruppe.
NCRYPT_DSA_ALGORITHM_GROUP "DSA" Die DSA-Algorithmusgruppe.
NCRYPT_ECDSA_ALGORITHM_GROUP "ECDSA" Die elliptische Kurven-DSA-Algorithmusgruppe.
NCRYPT_ECDH_ALGORITHM_GROUP "ECDH" Die elliptische Kurve Diffie-Hellman Algorithmusgruppe.

NCRYPT_ALGORITHM_PROPERTY

L"Algorithm Name"

Eine mit NULL endende Unicode-Zeichenfolge, die den Namen des Objektalgorithmus enthält. Dies kann einer der vordefinierten CNG-Algorithmusbezeichner oder ein anderer registrierter Algorithmusbezeichner sein. Diese Eigenschaft gilt nur für Schlüssel.

NCRYPT_ASSOCIATED_ECDH_KEY

L"SmartCardAssociatedECDHKey"

Ein LPWSTR-Wert , der den Containernamen des ECDH-Schlüssels (Elliptic Curve Diffie-Hellman) angibt, der bei der Anmeldung für ein bestimmtes Handle für einen ECDSA-Schlüssel (Elliptic Curve Digital Signature Algorithm) 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 Software-Schlü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 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-Anbieter 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 wird.

NCRYPT_EXPORT_POLICY_PROPERTY

L"Export Policy"

Ein DWORD , das eine Reihe von Flags enthält, die die Exportrichtlinie für einen persistenten 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.

Bezeichner 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 Klartextform exportiert werden.
NCRYPT_ALLOW_ARCHIVING_FLAG 0x00000004 Der private Schlüssel kann zu Archivierungszwecken einmal exportiert werden. Dieses Flag gilt nur für den ursprünglichen Schlüsselhandle, für den 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 zu Archivierungszwecken einmal als Klartext exportiert werden. Dieses Flag gilt nur für den ursprünglichen Schlüsselhandle, für den 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.

Bezeichner 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 entfernbar.
NCRYPT_IMPL_HARDWARE_RNG_FLAG 0x00000010 Der Anbieter ist ein hardwarebasierter Zufallszahlengenerator.

NCRYPT_KEY_TYPE_PROPERTY

L"Key Type"

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

Bezeichner Wert BESCHREIBUNG
NCRYPT_MACHINE_KEY_FLAG 0x00000020 Der Schlüssel gilt für den lokalen Computer. Wenn dieses Flag 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.

Bezeichner 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 von Geheimvereinbarungen verwendet werden.
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 persistente 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 des Namens eines persistenten Schlüssels in Zeichen enthält. Diese Eigenschaft gilt nur für einen Anbieter.

Diese Eigenschaft ist in erster Linie für die Verwendung von Schlüsselspeicheranbietern vorgesehen, die ihre Schlüssel auf einem Gerät speichern, das über eine begrenzte Menge an verfügbarem Arbeitsspeicher verfügt, z. B. eine Smartcard.

NCRYPT_NAME_PROPERTY

L"Name"

Ein Zeiger auf eine Unicode-Zeichenfolge mit NULL-Beendigung, 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 Unicode-Zeichenfolge mit Null-Endung, 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 speichert diesen Wert zwischen, sodass der Benutzer nur einmal pro Prozess aufgefordert wird.

NCRYPT_PROVIDER_HANDLE_PROPERTY

L"Provider Handle"

Eine NCRYPT_PROV_HANDLE , die 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 Unicode-Zeichenfolge mit Null-Beendigung, 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 in Cardmod.hdefiniert.

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

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 Schlüsselhandle bereit. Diese Eigenschaft ist schreibgeschützt. Die PIN_INFO -Struktur wird in Cardmod.hdefiniert.

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

NCRYPT_SECURE_PIN_PROPERTY

L"SmartCardSecurePin"

Ein Zeiger auf eine unicode-Zeichenfolge mit Null-Beendigung, 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 eine DWORD-Eigenschaft , die 1 enthält, wenn der Anbieter Sicherheitsbeschreibungen für Schlüssel unterstützt. Wenn diese Eigenschaft einen anderen Wert enthält oder die NCryptGetProperty-Funktion zurückgibt NTE_NOT_SUPPORTED, unterstützt der Anbieter keine Sicherheitsbeschreibungen 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 Benutzeroberflächenrichtlinie für starken Schlüssel 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 die gleichen 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 Unicode-Zeichenfolge mit Null-Beendigung, 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 ursprünglich an NCryptCreatePersistedKey übergebene Schlüsselname nicht eindeutig genug ist, um den persistenten 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 Unicode-Zeichenfolge mit Null-Endung, 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 er 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. "Einfügen Ihrer Smartcard in den Reader"). Da das Schlüsselhandle erst nach der Rückgabe von NCryptOpenKey verfügbar ist, sollte die Anwendung diese Eigenschaft für das Anbieterhandle festlegen, bevor NCryptOpenKey aufgerufen wird.

Ein Beispiel, in dem diese Eigenschaft im Kontext eines Schlüsselhandles verwendet wird, ist ein Schlüsselspeicheranbieter, der den Benutzer während eines Vorgangs mit dem Schlüssel auffordern muss (z. B. "Diese Anwendung muss diesen Schlüssel zum Signieren eines Dokuments verwenden."). Der Anbieter kann dann diese Kontextinformationen 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 Nutzungszählung für Schlüssel unterstützt. Diese Eigenschaft ist ein DWORD , das 1 enthält, wenn der Anbieter die Nutzungszählung für Schlüssel unterstützt. Wenn diese Eigenschaft einen anderen Wert enthält oder die NCryptGetProperty-Funktion zurückgibt NTE_NOT_SUPPORTED, unterstützt der Anbieter keine Verwendungszählung für Schlüssel. Diese Eigenschaft gilt nur für Anbieter.

NCRYPT_USE_COUNT_PROPERTY

L"Use Count"

Eine ULARGE_INTEGER Variable, die die Anzahl von Vorgängen enthält, die der angegebene private Schlüssel ausgeführt hat. Diese Eigenschaft ist optional und wird möglicherweise nicht von allen Anbietern unterstützt. Anbieter, die diese Eigenschaft für Schlüssel unterstützen, sollten auch die NCRYPT_USE_COUNT_ENABLED_PROPERTY -Eigenschaft im Anbieterhandle 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-Benutzerzertifikatspeicher darstellt.

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 unerwünschtes Verhalten auftreten kann, wenn eine Benutzeroberfläche mithilfe eines NULL-Fensterhandles für das übergeordnete Objekt 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.

Konstante 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 Eigenschaftennamens in Zeichen an.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows Vista [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows Server 2008 [nur Desktop-Apps]
Header Ncrypt.h

Weitere Informationen