共用方式為


金鑰儲存體屬性識別碼

下列值是用來識別金鑰儲存體屬性。

識別碼

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 結構的指標。 此屬性僅適用于永續性索引鍵。 NCryptGetPropertyNCryptSetProperty函式的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"

如果搭配 NCryptSetPropertyNCryptGetProperty 函式使用,這是包含金鑰強式金鑰使用者介面原則之 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

另請參閱