SslComputeFinishedHash 函数

SslComputeFinishedHash 函数计算安全套接字层协议 (SSL) 握手的已完成消息中发送的哈希

语法

SECURITY_STATUS WINAPI SslComputeFinishedHash(
  _In_  NCRYPT_PROV_HANDLE hSslProvider,
  _In_  NCRYPT_KEY_HANDLE  hMasterKey,
  _In_  NCRYPT_HASH_HANDLE hHandshakeHash,
  _Out_ PBYTE              pbOutput,
  _In_  DWORD              cbOutput,
  _In_  DWORD              dwFlags
);

参数

hSslProvider [in]

SSL 协议提供程序实例的句柄。

hMasterKey [in]

主密钥对象的句柄。

hHandshakeHash [in]

握手消息哈希的句柄。

pbOutput [out]

指向接收完成消息哈希的缓冲区的指针。

cbOutput [in]

pbOutput 缓冲区的长度(以字节为单位)。

dwFlags [in]

以下常量之一。

含义
NCRYPT_SSL_CLIENT_FLAG
0x00000001
指定这是客户端调用。
NCRYPT_SSL_SERVER_FLAG
0x00000002
指定这是服务器调用。

返回值

如果该函数成功,则返回零。

如果函数失败,它将返回非零错误值。

返回代码/值 说明
NTE_INVALID_HANDLE
2148073510 (0x80090026)
提供的句柄之一无效。

备注

SslComputeFinishedHash 函数是用于生成在 SSL 握手期间使用的哈希的三个函数之一。

  1. 调用 SslCreateHandshakeHash 函数以获取哈希句柄。
  2. SslHashHandshake 函数使用哈希句柄调用任意次数,以将数据添加到哈希。
  3. 使用哈希句柄调用 SslComputeFinishedHash 函数以获取哈希数据的摘要。

哈希值是通过对主机密进行哈希处理来计算的,其中包含以前发送或接收的所有握手消息的哈希。

cbOutput 的值确定哈希数据的长度。 使用 传输层安全协议 (TLS) 1.0 协议时,) 应始终为 12 (字节。 有关详细信息,请参阅 TLS 协议版本 1.0

要求

要求
最低受支持的客户端
Windows Vista [仅限桌面应用]
最低受支持的服务器
Windows Server 2008 [仅限桌面应用]
标头
Sslprovider.h
DLL
Ncrypt.dll