CRYPT_KEY_PROV_INFO結構 (wincrypt.h)
CRYPT_KEY_PROV_INFO 結構包含密碼編譯服務提供者內密鑰容器的相關信息, (CSP) 。
語法
typedef struct _CRYPT_KEY_PROV_INFO {
LPWSTR pwszContainerName;
LPWSTR pwszProvName;
DWORD dwProvType;
DWORD dwFlags;
DWORD cProvParam;
PCRYPT_KEY_PROV_PARAM rgProvParam;
DWORD dwKeySpec;
} CRYPT_KEY_PROV_INFO, *PCRYPT_KEY_PROV_INFO;
成員
pwszContainerName
Null 終止 Unicode 字串的指標,其中包含密鑰容器的名稱。
當 dwProvType 成員為零時,此字串會包含 CNG 金鑰儲存提供者內的金鑰名稱。 此字串會當做 pwszKeyName 參數傳遞至 NCryptOpenKey 函式。
pwszProvName
包含 CSP 名稱之 Null 終止 Unicode 字串的指標。
當 dwProvType 成員為零時,此字串會包含 CNG 金鑰儲存提供者的名稱。 此字串會當做 pwszProviderName 參數傳遞至 NCryptOpenStorageProvider 函式。
dwProvType
指定 CSP 類型。 這可以是零或其中一個 密碼編譯提供者類型。
如果這個成員是零,密鑰容器就是其中一個 CNG 金鑰儲存提供者。
dwFlags
一組旗標,指出提供者的其他資訊。 這可以是零或下列其中一個值。
密碼編譯函式 CryptDecryptMessage、CryptSignMessage、CryptDecryptAndVerifyMessageSignature 和 CryptSignAndEncryptMessage 會在內部使用憑證的 CRYPT_KEY_PROV_INFO來執行 CryptAcquireContext 作業。 設定CERT_SET_KEY_CONTEXT_PROP_ID或CERT_SET_KEY_PROV_HANDLE_PROP_ID旗標時,這些密碼編譯函式接著可以使用 CERT_KEY_CONTEXT_PROP_ID 呼叫 CertSetCertificateContextProperty。 此呼叫可讓密鑰提供者的句柄保持開啟,以供後續呼叫使用該相同憑證的密碼編譯函式保持開啟,這樣就不需要對 CryptAcquireContext 執行其他呼叫,進而提升效率。 此外,由於某些提供者可能需要輸入密碼才能呼叫 CryptAcquireContext,因此應用程式需要將進行 CryptAcquireContext 呼叫的數目降到最低。 關閉存放區時,會自動釋放已保持開啟的密鑰提供者句柄。
例如,假設有一個電子郵件應用程式收到五個加密的郵件,全部都以相同憑證的公鑰加密。 如果在處理第一個訊息之後,密鑰提供者的句柄保持開啟狀態,則四個剩餘訊息不需要對 CryptAcquireContext 的呼叫。
cProvParam
rgProvParam 陣列中的項目數目。
當 dwProvType 成員為零時,不會使用這個成員,而且必須是零。
rgProvParam
包含索引鍵容器參數 之CRYPT_KEY_PROV_PARAM 結構的陣列。 cProvParam成員包含這個數位中的元素數目。
當 dwProvType 成員為零時,不會使用這個成員,而且必須是 NULL。
dwKeySpec
要擷取之私鑰的規格。
預設提供者定義了下列值。
當 dwProvType 成員為零時,這個值會當做 dwLegacyKeySpec 參數傳遞至 NCryptOpenKey 函式。
值 | 意義 |
---|---|
|
用來加密/解密會話金鑰的金鑰。 |
|
用來建立和驗證數位簽名的金鑰。 |
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows XP [僅限傳統型應用程式] |
最低支援的伺服器 | Windows Server 2003 [僅限傳統型應用程式] |
標頭 | wincrypt.h |