CryptGetHashParam 函数 (wincrypt.h)
重要 此 API 已弃用。 新的和现有的软件应开始使用 加密下一代 API。 Microsoft 可能会在将来的版本中删除此 API。
语法
BOOL CryptGetHashParam(
[in] HCRYPTHASH hHash,
[in] DWORD dwParam,
[out] BYTE *pbData,
[in, out] DWORD *pdwDataLen,
[in] DWORD dwFlags
);
参数
[in] hHash
要查询的哈希对象的句柄。
[in] dwParam
查询类型。 此参数可以设置为以下查询之一。
值 | 含义 |
---|---|
|
一个ALG_ID,指示创建哈希对象时指定的算法。 有关哈希算法的列表,请参阅 CryptCreateHash。 |
|
指示哈希值中的字节数的 DWORD 值。 此值将因哈希算法而异。 应用程序必须在HP_HASHVAL值之前检索此值,以便分配正确的内存量。 |
|
hHash 指定的哈希对象的哈希值或消息哈希。 此值基于前面通过 CryptHashData 和 CryptHashSessionKey 函数提供给哈希对象的数据生成。
CryptGetHashParam 函数完成哈希。 调用 CryptGetHashParam 后,无法向哈希添加更多数据。 对 CryptHashData 或 CryptHashSessionKey 的其他调用失败。 使用哈希完成应用程序后,应调用 CryptDestroyHash 来销毁哈希对象。 |
注意 CSP 可以添加此函数可以查询的更多值。
[out] pbData
指向接收指定值数据的缓冲区的指针。 此数据的形式因数值而异。
此参数可以为 NULL ,以确定所需的内存大小。
[in, out] pdwDataLen
指向指定 pbData 缓冲区大小(以字节为单位)的 DWORD 值的指针。 函数返回时, DWORD 值包含缓冲区中存储的字节数。
如果 pbData 为 NULL,请将 pdwDataLen 的值设置为零。
注意 处理缓冲区中返回的数据时,应用程序必须使用返回的数据的实际大小。 实际大小可以略小于输入时指定的缓冲区的大小。 (输入时,缓冲区大小通常指定得足够大,以确保最大的输出数据适合 buffer。) 输出时,此参数指向的变量将更新,以反映复制到缓冲区的数据的实际大小。
[in] dwFlags
保留供将来使用,必须为零。
返回值
如果函数成功,则返回值为 TRUE。
如果函数失败,则返回值为 FALSE。 有关扩展的错误信息,请调用 GetLastError。
“NTE”开头的错误代码由你使用的特定 CSP 生成。 一些可能的错误代码随之而来。
返回代码 | 说明 |
---|---|
|
其中一个参数指定无效的句柄。 |
|
其中一个参数包含无效的值。 这通常是无效的指针。 |
|
如果 pbData 参数指定的缓冲区不够大,无法容纳返回的数据,则函数将设置ERROR_MORE_DATA代码,并将所需的缓冲区大小(以字节为单位)存储在 pdwDataLen 指向的变量中。 |
|
dwFlags 参数为非零。 |
|
hHash 参数指定的哈希对象无效。 |
|
dwParam 参数指定未知值数字。 |
|
找不到创建哈希时指定的 CSP 上下文。 |
要求
最低受支持的客户端 | Windows XP [仅限桌面应用] |
最低受支持的服务器 | Windows Server 2003 [仅限桌面应用] |
目标平台 | Windows |
标头 | wincrypt.h |
Library | Advapi32.lib |
DLL | Advapi32.dll |