cryptSetHashParam 函数 (wincrypt.h)
重要 此 API 已弃用。 新的和现有的软件应开始使用 加密下一代 API。 Microsoft 可能会在将来的版本中删除此 API。
语法
BOOL CryptSetHashParam(
[in] HCRYPTHASH hHash,
[in] DWORD dwParam,
[in] const BYTE *pbData,
[in] DWORD dwFlags
);
参数
[in] hHash
要设置参数的哈希对象的句柄。
[in] dwParam
此参数的取值可为下列值之一:
值 | 含义 |
---|---|
|
指向 HMAC_INFO 结构的指针,该结构指定加密哈希算法以及要使用的内部和外部字符串。 |
|
包含要直接放入哈希对象的哈希值的字节数组。 在设置此值之前,必须使用 CryptGetHashParam 函数读取HP_HASHSIZE值来确定哈希值的大小。
(CSP) 的某些 加密服务提供程序 不支持此功能。 |
注意 某些 CSP 类型可以添加可以使用此函数设置的其他值。
[in] pbData
值数据缓冲区。 在调用 CryptSetHashParam 之前,将值数据置于此缓冲区中。 此数据的形式因数值而异。
[in] dwFlags
此参数保留供将来使用,必须设置为零。
返回值
如果函数成功,则函数返回 TRUE。
如果函数失败,则返回 FALSE。 有关扩展的错误信息,请调用 GetLastError。
以“NTE”开头的错误代码由你使用的特定 CSP 生成。 下面是一些可能的错误代码。
返回代码 | 说明 |
---|---|
|
其中一个参数指定无效的句柄。 |
|
CSP 上下文当前正由另一个 进程使用。 |
|
其中一个参数包含无效的值。 这通常是无效的指针。 |
|
dwFlags 参数为非零值,或者 pbData 缓冲区包含无效的值。 |
|
hHash 参数指定的哈希对象无效。 |
|
dwParam 参数指定未知值。 |
|
找不到创建 hKey 密钥时指定的 CSP 上下文。 |
|
函数以某种意外的方式失败。 |
注解
有时,必须在其他位置生成的哈希值进行签名。 这可以通过使用以下操作序列来完成:
- 使用 CryptCreateHash 创建哈希对象。
- 设置HP_HASHVAL值。
- 使用 CryptSignHash 对哈希值进行签名,并获取数字签名块。
- 使用 CryptDestroyHash 销毁哈希对象。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows XP [仅限桌面应用] |
最低受支持的服务器 | Windows Server 2003 [仅限桌面应用] |
目标平台 | Windows |
标头 | wincrypt.h |
Library | Advapi32.lib |
DLL | Advapi32.dll |