共用方式為


CryptFindCertificateKeyProvInfo 函式 (wincrypt.h)

CryptFindCertificateKeyProvInfo 函式會列舉密碼編譯提供者及其容器,以尋找對應至憑證公鑰的私鑰

語法

BOOL CryptFindCertificateKeyProvInfo(
  [in] PCCERT_CONTEXT pCert,
  [in] DWORD          dwFlags,
  [in] void           *pvReserved
);

參數

[in] pCert

匯出公鑰資訊時所要使用的憑證 CERT_CONTEXT 結構的指標。

[in] dwFlags

一組旗標,可修改此函式的行為。 這可以是零或下列其中一個值。

意義
CRYPT_FIND_USER_KEYSET_FLAG
將搜尋限制為使用者容器。 預設值是搜尋使用者和計算機容器。
CRYPT_FIND_MACHINE_KEYSET_FLAG
將搜尋限制為計算機容器。 預設值是搜尋使用者和計算機容器。
CRYPT_FIND_SILENT_KEYSET_FLAG
應用程式會要求 CSP 不會針對此內容顯示任何使用者介面 (UI) 。 如果 CSP 必須顯示要運作的 UI,呼叫會失敗,且NTE_SILENT_CONTEXT錯誤碼設定為最後一個錯誤。
 

下列旗標會決定使用哪個技術來取得密鑰。 如果沒有這些旗標,此函式只會嘗試使用 CryptoAPI 取得密鑰。

Windows Server 2003 和 Windows XP: 不支持這些旗標。

意義
CRYPT_ACQUIRE_ALLOW_NCRYPT_KEY_FLAG
此函式會嘗試使用 CryptoAPI 取得金鑰。 如果失敗,此函式會嘗試使用密碼編譯 API 取得金鑰:新一代 (CNG) 。

如果使用 CNG 取得金鑰,憑證的 CERT_KEY_PROV_INFO_PROP_ID 屬性會設定為零。

CRYPT_ACQUIRE_ONLY_NCRYPT_KEY_FLAG
此函式只會嘗試使用 CNG 取得金鑰,而不會使用 CryptoAPI 取得密鑰。

如果使用 CNG 取得金鑰,憑證的 CERT_KEY_PROV_INFO_PROP_ID 屬性會設定為零。

CRYPT_ACQUIRE_PREFER_NCRYPT_KEY_FLAG
此函式會嘗試使用 CNG 取得金鑰。 如果失敗,此函式會嘗試使用 CryptoAPI 取得金鑰。

如果使用 CNG 取得金鑰,憑證的 CERT_KEY_PROV_INFO_PROP_ID 屬性會設定為零。

[in] pvReserved

保留供日後使用,且必須為 NULL

傳回值

如果 函式找到對應至所搜尋 容器內憑證公鑰的私鑰,則為 TRUE; 如果 函式在容器內找不到容器或私鑰,則為 FALSE。

GetLastError 會傳回下列錯誤:

傳回碼 Description
NTE_NO_KEY
找不到容器。

備註

此函式會列舉密碼編譯提供者及其容器,以尋找對應至憑證 公鑰的私鑰。 針對相符專案,函式會更新憑證的 CERT_KEY_PROV_INFO_PROP_ID 屬性。 如果已設定 CERT_KEY_PROV_INFO_PROP_ID ,則會檢查它是否與提供者的公鑰相符。 針對相符專案,函式會略過先前提及的列舉。

規格需求

需求
最低支援的用戶端 Windows XP [僅限傳統型應用程式]
最低支援的伺服器 Windows Server 2003 [僅限桌面應用程式]
目標平台 Windows
標頭 wincrypt.h
程式庫 Crypt32.lib
Dll Crypt32.dll

另請參閱

資料管理 函式