BCryptDeriveKeyCapi 函数 (bcrypt.h)

BCryptDeriveKeyCapi 函数从哈希值派生密钥。

此函数作为帮助程序函数提供,可帮助迁移基于 CAPI) 的旧加密 API (,以使用加密 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

此参数是保留的,必须设置为零。

返回值

返回指示函数成功或失败的状态代码。

可能的返回代码包括但不限于以下内容。

返回代码 说明
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
Library Bcrypt.lib
DLL Bcrypt.dll