Share via


BCryptDeriveKeyCapi 函式 (bcrypt.h)

BCryptDeriveKeyCapi 函式會從哈希值衍生密鑰。

此函式是以協助程式函式的形式提供,可協助移轉舊版密碼編譯 API (CAPI) 型應用程式,以使用密碼編譯 API:新一代 (CNG) 。 BCryptDeriveKeyCapi 函式會以與 CAPI CryptDeriveKey 函式相容的方式執行密鑰衍生。

語法

NTSTATUS BCryptDeriveKeyCapi(
  [in]           BCRYPT_HASH_HANDLE hHash,
  [in, optional] BCRYPT_ALG_HANDLE  hTargetAlg,
  [out]          PUCHAR             pbDerivedKey,
  [in]           ULONG              cbDerivedKey,
  [in]           ULONG              dwFlags
);

參數

[in] hHash

哈希物件的句柄。 呼叫 BCryptCreateHash 函式可取得句柄。 當您完成使用句柄之後,您必須呼叫 BCryptDestroyHash 函式來釋放它。

[in, optional] hTargetAlg

演算法物件的句柄。 這可以是與 CryptDeriveKey 函式相容的ALG_ID值。

注意 CAPI 和金鑰擴充的限制可防止使用任何產生大於 512 位之輸出的哈希演算法。
 

[out] pbDerivedKey

接收衍生金鑰之緩衝區的指標。

[in] cbDerivedKey

pbDerivedKey 參數所指向之衍生密鑰的大小,以字元為單位。

[in] dwFlags

此參數是保留的,而且必須設定為零。

傳回值

傳回狀態代碼,指出函式的成功或失敗。

可能的傳回碼包括但不限於下列專案。

傳回碼 Description
STATUS_SUCCESS
函式成功。
STATUS_INVALID_HANDLE
hHashhTargetAlg 參數中的句柄無效。
STATUS_INVALID_PARAMETER
cbDerivedKey 參數中的值大於哈希函式的輸出大小兩倍。
STATUS_NO_MEMORY
發生記憶體配置失敗。

備註

此函式不支援 CAPI CryptDeriveKey 函式的 PK salt 功能。

規格需求

需求
最低支援的用戶端 Windows 7 [傳統型應用程式 |UWP 應用程式]
最低支援的伺服器 Windows Server 2008 R2 [傳統型應用程式 |UWP 應用程式]
目標平台 Windows
標頭 bcrypt.h
程式庫 Bcrypt.lib
Dll Bcrypt.dll