CryptGetUserKey 函式 (wincrypt.h)

重要 此 API 已被取代。 新的和現有的軟體應該開始使用 密碼編譯新一代 API。 Microsoft 可能會在未來的版本中移除此 API。
 
CryptGetUserKey 函式會擷取使用者兩個公開/私鑰組之一的句柄。 此函式僅供公開/私鑰組的擁有者使用,而且只有在密碼 編譯服務提供者 的句柄 (CSP) 及其相關聯的 密鑰容器 可用時。 如果 CSP 句柄無法使用且使用者的憑證為 ,請使用 CryptAcquireCertificatePrivateKey

語法

BOOL CryptGetUserKey(
  [in]  HCRYPTPROV hProv,
  [in]  DWORD      dwKeySpec,
  [out] HCRYPTKEY  *phUserKey
);

參數

[in] hProv

呼叫 CryptAcquireContext 所建立的密碼編譯服務提供者 (CSP) HCRYPTPROV 句柄。

[in] dwKeySpec

識別要從金鑰容器使用的私鑰。 它可以AT_KEYEXCHANGE或AT_SIGNATURE。

此外,某些提供者允許透過此函式存取其他使用者特定的密鑰。 如需詳細資訊,請參閱特定提供者的檔。

[out] phUserKey

所擷取密鑰 之 HCRYPTKEY 句柄的指標。 當您完成使用金鑰時,請呼叫 CryptDestroyKey 函式來刪除句柄。

傳回值

如果函式成功,則傳回值為非零 (TRUE) 。

如果函式失敗,則傳回值為零, (FALSE) 。 如需擴充的錯誤資訊,請呼叫 GetLastError

開頭為 「NTE」 的錯誤碼是由所使用的特定 CSP 所產生。 接下來有一些可能的錯誤碼。

傳回碼 Description
ERROR_INVALID_HANDLE
其中一個參數指定無效的句柄。
ERROR_INVALID_PARAMETER
其中一個參數包含無效的值。 這通常是無效的指標。
NTE_BAD_KEY
dwKeySpec 參數包含無效的值。
NTE_BAD_UID
hProv 參數不包含有效的內容句柄。
NTE_NO_KEY
dwKeySpec 參數所要求的密鑰不存在。

規格需求

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

另請參閱

CryptAcquireContext

CryptDestroyKey

CryptGenKey

金鑰產生和 Exchange 函式