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
此参数是保留的,必须设置为零。
返回值
返回指示函数成功或失败的状态代码。
可能的返回代码包括但不限于以下内容。
返回代码 | 说明 |
---|---|
|
函数成功。 |
|
hHash 或 hTargetAlg 参数中的句柄无效。 |
|
cbDerivedKey 参数中的值大于哈希函数输出大小的两倍。 |
|
内存分配失败。 |
注解
此函数不支持 CAPI CryptDeriveKey 函数的 PK salt 功能。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows 7 [桌面应用 |UWP 应用] |
最低受支持的服务器 | Windows Server 2008 R2 [桌面应用 |UWP 应用] |
目标平台 | Windows |
标头 | bcrypt.h |
Library | Bcrypt.lib |
DLL | Bcrypt.dll |