金鑰儲存體屬性識別碼
下列值是用來識別金鑰儲存體屬性。
識別碼
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值,指出ECDH Diffie-Hellman (ECDH) 金鑰的容器名稱,以在登入期間針對指定控制碼使用橢圓曲線數位簽章演算法 (ECDSA) 金鑰。 如果卡片上沒有 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_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_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: 不支援此值。
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_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 |