下列值可用來識別金鑰儲存屬性。
識別碼
NCRYPT_ALGORITHM_GROUP_PROPERTY
L"Algorithm Group"
以 Null 結尾的 Unicode 字串,其中包含物件演算法群組的名稱。 此屬性僅適用於索引鍵。 Microsoft金鑰儲存提供者會傳回下列標識碼。
| 識別碼 | 價值觀 | 說明 |
|---|---|---|
| NCRYPT_RSA_ALGORITHM_GROUP | “RSA” | RSA 演算法群組。 |
| NCRYPT_DH_ALGORITHM_GROUP | “DH” | Diffie-Hellman 演算法群組。 |
| NCRYPT_DSA_ALGORITHM_GROUP | “DSA” | DSA 演算法群組。 |
| NCRYPT_ECDSA_ALGORITHM_GROUP | “ECDSA” | 橢圓曲線 DSA 演算法群組。 |
| NCRYPT_ECDH_ALGORITHM_GROUP | “ECDH” | 橢圓曲線 Diffie-Hellman 演演算法群組。 |
NCRYPT_ALGORITHM_PROPERTY
L"Algorithm Name"
以 Null 結尾的 Unicode 字串,其中包含物件演算法的名稱。 這可以是其中一個預先定義的 CNG 演演算法識別碼 或其他已註冊的演算法標識碼。 此屬性僅適用於索引鍵。
NCRYPT_ASSOCIATED_ECDH_KEY
L"SmartCardAssociatedECDHKey"
LPWSTR 值,指出在登入期間用於橢圓曲線數位簽名演算法 (ECDSA) 金鑰之指定句柄的橢圓曲線 Diffie-Hellman (ECDH) 密鑰的容器名稱。 如果卡片上沒有 ECDH 金鑰, 金鑰儲存提供者 (KSP) 會傳 NTE_NOT_FOUND回 。 此屬性適用於ECDSA 金鑰,以使用智慧卡登入。 Microsoft智慧卡金鑰儲存提供者不支援 屬性,而不是由Microsoft軟體密鑰儲存提供者支援。
Windows Server 2008 和 Windows Vista: 不支援此值。
NCRYPT_BLOCK_LENGTH_PROPERTY
L"Block Length"
包含加密區塊長度的 DWORD ,以位元組為單位。 此屬性僅適用於支援加密的金鑰。
NCRYPT_CERTIFICATE_PROPERTY
L"SmartCardKeyCertificate"
BLOB,其中包含與密鑰相關聯的 X.509 憑證。
Windows Server 2008 R2、Windows 7、Windows Server 2008 和 Windows Vista:包含智慧卡金鑰憑證的 BLOB。 Microsoft軟體金鑰儲存提供者不支援此屬性。
NCRYPT_DH_PARAMETERS_PROPERTY
L"DHParameters"
指定要搭配 Diffie-Hellman 索引鍵使用的參數。 此數據類型是 BCRYPT_DH_PARAMETER_HEADER 結構的指標。 這個屬性只能設定,而且必須在密鑰完成之前為索引鍵設定。
NCRYPT_EXPORT_POLICY_PROPERTY
L"Export Policy"
包含一組旗標的 DWORD ,指定保存金鑰的導出原則。 此屬性僅適用於索引鍵。 這可包含下列一或多個值的零或組合。
| 識別碼 | 價值觀 | 說明 |
|---|---|---|
| NCRYPT_ALLOW_EXPORT_FLAG | 0x00000001 | 可以匯出私鑰。 |
| NCRYPT_ALLOW_PLAINTEXT_EXPORT_FLAG | 0x00000002 | 私鑰可以純文字形式匯出。 |
| NCRYPT_ALLOW_ARCHIVING_FLAG | 0x00000004 | 私鑰可以匯出一次以供封存之用。 此旗標僅適用於設定它的原始密鑰句柄。 此原則只能套用至原始密鑰句柄。 關閉金鑰句柄之後,就無法再匯出金鑰以供封存之用。 |
| NCRYPT_ALLOW_PLAINTEXT_ARCHIVING_FLAG | 0x00000008 | 私鑰可以純文字形式匯出一次,以供封存之用。 此旗標僅適用於設定它的原始密鑰句柄。 此原則只能套用至原始密鑰句柄。 關閉金鑰句柄之後,就無法再匯出金鑰以供封存之用。 |
NCRYPT_IMPL_TYPE_PROPERTY
L"Impl Type"
DWORD,其中包含一組旗標,可定義提供者的實作詳細數據。 此屬性僅適用於金鑰儲存提供者。 這可包含下列一或多個值的零或組合。
| 識別碼 | 價值觀 | 說明 |
|---|---|---|
| NCRYPT_IMPL_HARDWARE_FLAG | 0x00000001 | 提供者是以硬體為基礎。 |
| NCRYPT_IMPL_SOFTWARE_FLAG | 0x00000002 | 提供者是以軟體為基礎。 |
| NCRYPT_IMPL_REMOVABLE_FLAG | 0x00000008 | 提供者是可移動的。 |
| NCRYPT_IMPL_HARDWARE_RNG_FLAG | 0x00000010 | 提供者是以硬體為基礎的隨機數產生器。 |
| NCRYPT_IMPL_VIRTUAL_ISOLATION_FLAG | 0x00000020 | 提供者是虛擬化的隔離提供者。 |
NCRYPT_KEM_CIPHERTEXT_LENGTH_PROPERTY
L"KEM Ciphertext Length"
包含加密文字長度的 DWORD ,以位元組為單位。 此屬性僅適用於支援金鑰封裝機制的金鑰(KEM)。
NCRYPT_KEM_SHARED_SECRET_LENGTH_PROPERTY
L"KEM Shared Secret Length"
包含共用秘密長度的 DWORD ,以位元組為單位。 此屬性僅適用於支援金鑰封裝機制的金鑰(KEM)。
NCRYPT_KEY_TYPE_PROPERTY
L"Key Type"
DWORD,其中包含一組定義索引鍵類型的旗標。 此屬性僅適用於索引鍵。 這可以包含零或下列值。
| 識別碼 | 價值觀 | 說明 |
|---|---|---|
| NCRYPT_MACHINE_KEY_FLAG | 0x00000020 | 金鑰會套用至本機計算機。 如果此旗標不存在,金鑰會套用至目前的使用者。 |
NCRYPT_KEY_USAGE_PROPERTY
L"Key Usage"
DWORD,其中包含一組旗標,可定義密鑰的使用方式詳細數據。 此屬性僅適用於索引鍵。 這可包含下列一或多個值的零或組合。
| 識別碼 | 價值觀 | 說明 |
|---|---|---|
| NCRYPT_ALLOW_DECRYPT_FLAG | 0x00000001 | 金鑰可用於解密。 |
| NCRYPT_ALLOW_SIGNING_FLAG | 0x00000002 | 金鑰可用於簽署。 |
| NCRYPT_ALLOW_KEY_AGREEMENT_FLAG | 0x00000004 | 金鑰可用於秘密協定加密。 |
| NCRYPT_ALLOW_KEY_ATTESTATION_FLAG | 0x00000010 | 指出索引鍵是具有證明的索引鍵。 |
| NCRYPT_ALLOW_ALL_USAGES | 0x00ffffff | 金鑰可用於任何用途。 |
NCRYPT_LAST_MODIFIED_PROPERTY
L"Modified"
指出上次修改索引鍵的時間。 此數據類型是 FILETIME 結構的指標。 這個屬性只適用於保存的索引鍵。
NCRYPT_LENGTH_PROPERTY
L"Length"
包含索引鍵長度的 DWORD ,以位為單位。 此屬性僅適用於索引鍵。
NCRYPT_LENGTHS_PROPERTY
L"Lengths"
指出金鑰所支援的金鑰大小。 這個數據類型是包含這項資訊 之NCRYPT_SUPPORTED_LENGTHS 結構的指標。 此屬性僅適用於索引鍵。
NCRYPT_MAX_NAME_LENGTH_PROPERTY
L"Max Name Length"
DWORD,包含永續性索引鍵名稱的最大長度,以字元為單位。 此屬性僅適用於提供者。
此屬性主要供密鑰儲存提供者使用,這些提供者將金鑰儲存在具有有限可用記憶體的裝置上,例如智慧卡。
NCRYPT_NAME_PROPERTY
L"Name"
包含物件名稱之 Null 終止 Unicode 字串的指標。
NCRYPT_PIN_PROMPT_PROPERTY
L"SmartCardPinPrompt"
不支援此值。
NCRYPT_PIN_PROPERTY
L"SmartCardPin"
包含 PIN 之 Null 終止 Unicode 字串的指標。 PIN 用於智慧卡金鑰或密碼,以用於儲存在軟體型 KSP 中的密碼保護密鑰。 這個屬性只能設定。 Microsoft KSP 會快取此值,讓使用者只會在每個進程提示一次。
NCRYPT_PROVIDER_HANDLE_PROPERTY
L"Provider Handle"
包含 CNG 金鑰儲存提供者句柄的 NCRYPT_PROV_HANDLE 。 當您完成使用句柄時,必須呼叫 NCryptFreeObject 來釋放它。
NCRYPT_READER_PROPERTY
L"SmartCardReader"
包含智慧卡讀取器名稱之 Null 終止 Unicode 字串的指標。 這個屬性只能設定。
NCRYPT_ROOT_CERTSTORE_PROPERTY
L"SmartcardRootCertStore"
代表智慧卡跟證書存儲的 HCERTSTORE 。
NCRYPT_SCARD_PIN_ID
L"SmartCardPinId"
與PIN_ID上指定密碼編譯密鑰相關聯的值指標。 這是唯讀屬性。 數據類型 PIN_ID 定義於中 Cardmod.h。
Windows Server 2008 和 Windows Vista: 不支援此值。
備註
Cardmod.h C 頭檔提供與這個 API 相關的其他資訊。 此檔案包含Microsoft智慧卡迷你驅動程式 API 所指定的函式原型和結構。 此 API 可透過 Microsoft 密碼編譯提供者開發工具套件 (CPDK) 取得。
NCRYPT_SCARD_PIN_INFO
L"SmartCardPinInfo"
與智慧卡上指定密碼編譯密鑰相關聯之 PIN 之 PIN_INFO 結構的指標。 呼叫端會提供金鑰句柄。 此屬性是唯讀屬性。 結構 PIN_INFO 定義於 中 Cardmod.h。
Windows Server 2008 和 Windows Vista: 不支援此值。
NCRYPT_SECURE_PIN_PROPERTY
L"SmartCardSecurePin"
包含智慧卡會話 PIN 之 Null 終止 Unicode 字串的指標。 這個屬性只能設定。
Windows Vista: 不支援這個屬性。
NCRYPT_SECURITY_DESCR_PROPERTY
L"Security Descr"
包含金鑰存取控制資訊的 SECURITY_DESCRIPTOR 結構的指標。 此屬性僅適用於持續性索引鍵。 NCryptGetProperty 或 NCryptSetProperty 函式的 dwFlags 參數會識別要取得或設定之安全性描述元的一部分。
NCRYPT_SECURITY_DESCR_SUPPORT_PROPERTY
L"Security Descr Support"
指出提供者是否支援金鑰的安全性描述元。 如果提供者支援密鑰的安全性描述元,這個屬性是包含 1 的 DWORD 。 如果此屬性包含任何其他值,或 NCryptGetProperty 函式傳 NTE_NOT_SUPPORTED回 ,則提供者不支援密鑰的安全性描述元。 此屬性僅適用於提供者。
NCRYPT_SMARTCARD_GUID_PROPERTY
L"SmartCardGuid"
包含智慧卡識別碼的 BLOB。
NCRYPT_UI_POLICY_PROPERTY
L"UI Policy"
如果搭配 NCryptSetProperty 或 NCryptGetProperty 函式使用,這是包含密鑰強式密鑰使用者介面原則 之NCRYPT_UI_POLICY 結構的指標。 此屬性僅適用於持續性索引鍵。 只有在產生索引鍵時,才能設定這個屬性。 一旦為此機碼呼叫 NCryptFinalizeKey 函式,這個屬性就會變成唯讀。
密鑰儲存提供者可以透過 NCryptSetPropertyFn 回呼函式接收此參數。 參數值是包含相同資訊的 NCRYPT_UI_POLICY_BLOB 結構。 同樣地,當應用程式透過 NCryptSetPropertyFn 向提供者提出要求以傳回此屬性時,提供者應該會傳回 NCRYPT_UI_POLICY_BLOB 結構。
NCRYPT_UNIQUE_NAME_PROPERTY
L"Unique Name"
Null 終止 Unicode 字串的指標,其中包含物件的唯一名稱。 這是存取金鑰時可以使用的替代名稱。 當它認為原本傳遞至 NCryptCreatePersistedKey 的密鑰名稱不足以可靠地識別保存的密鑰時,就會使用這個屬性。 Microsoft金鑰儲存提供者會傳回金鑰的檔名做為此屬性。
NCRYPT_USE_CONTEXT_PROPERTY
L"Use Context"
描述作業內容的 Null 終止 Unicode 字串指標。 這個屬性不是持續性的,而且可以在提供者或索引鍵上設定。 索引鍵無法存取 NCRYPT_USE_CONTEXT_PROPERTY 提供者的 屬性,因為 屬性只針對它所設定的句柄。
在提供者內容中使用此屬性的範例是密鑰儲存提供者,需要在呼叫 NCryptOpenKey 時提示使用者(例如,「在讀取器中插入智慧卡」)。 由於密鑰句柄在 NCryptOpenKey 傳回之後才能使用,因此應用程式應該在呼叫 NCryptOpenKey 之前,先在提供者句柄上設定此屬性。
在金鑰句柄的內容中使用這個屬性的範例是金鑰儲存提供者,需要使用金鑰在作業期間提示使用者(例如,「此應用程式需要使用此金鑰來簽署檔」)。 提供者接著可以將此內容資訊轉接至作業期間所顯示之任何使用者介面中的使用者。
NCRYPT_USE_COUNT_ENABLED_PROPERTY
L"Enabled Use Count"
指出提供者是否支援金鑰的使用計數。 此屬性是 DWORD ,如果提供者支援金鑰的使用計數,則包含 1。 如果此屬性包含任何其他值,或 NCryptGetProperty 函式傳回 NTE_NOT_SUPPORTED,則提供者不支援密鑰的使用計數。 此屬性僅適用於提供者。
NCRYPT_USE_COUNT_PROPERTY
L"Use Count"
ULARGE_INTEGER變數,其中包含指定的私鑰已執行的作業數目。 這個屬性是選擇性的,而且可能不受所有提供者支援。 在索引鍵上支援此屬性的提供者也應該支援提供者句柄上的 NCRYPT_USE_COUNT_ENABLED_PROPERTY 屬性。 Microsoft金鑰儲存提供者不支援此屬性。 此屬性僅適用於持續性索引鍵。
NCRYPT_USER_CERTSTORE_PROPERTY
L"SmartCardUserCertStore"
代表智慧卡用戶證書存儲的 HCERTSTORE 。
NCRYPT_VBS_ROOT_PUB_PROPERTY
L"VBS_ROOT_PUB"
MS_KEY_STORAGE_PROVIDER提供者的新屬性。 此屬性可讓您擷取虛擬化安全性 (VBS) 根簽署密鑰 (IDKS) 的公用部分。
NCRYPT_VERSION_PROPERTY
L"Version"
包含提供者軟體版本的 DWORD 。 高字包含主要版本,而低字則包含次要版本。 例如: 0x00030033 = 3.51 。 此屬性僅適用於提供者。
NCRYPT_WINDOW_HANDLE_PROPERTY
L"HWND Handle"
視窗句柄 (HWND) 的指標,做為所顯示之任何使用者介面的父代。
因為使用者介面是使用父系的 NULL 視窗句柄來顯示時,可能會發生不想要的行為,因此強烈建議密鑰儲存提供者不會顯示使用者介面,除非設定此屬性。
下列值可用來定義屬性數據的限制。
| 常數 | 價值觀 | 說明 |
|---|---|---|
| NCRYPT_MAX_PROPERTY_DATA | 0x100000 | 指定屬性值的大小上限,以位元組為單位。 |
| NCRYPT_MAX_PROPERTY_NAME | 64 | 指定屬性名稱的大小上限,以字元為單位。 |
需求
| 要求 | 價值觀 |
|---|---|
| 最低支援的用戶端 | Windows Vista [僅限傳統型應用程式] |
| 最低支援的伺服器 | Windows Server 2008 [僅限傳統型應用程式] |
| 頁首 | Ncrypt.h |