SslComputeClientAuthHash 函数

SslComputeClientAuthHash 函数计算证书身份验证期间要使用的哈希

语法

SECURITY_STATUS WINAPI SslComputeClientAuthHash(
  _In_  NCRYPT_PROV_HANDLE hSslProvider,
  _In_  NCRYPT_KEY_HANDLE  hMasterKey,
  _In_  NCRYPT_HASH_HANDLE hHandshakeHash,
  _In_  LPCWSTR            pszAlgId,
  _Out_ PBYTE              pbOutput,
  _In_  DWORD              cbOutput,
  _Out_ DWORD              *pcbResult,
  _In_  DWORD              dwFlags
);

参数

hSslProvider [in]

安全套接字层协议 (SSL) 协议提供程序实例的句柄。

hMasterKey [in]

主密钥对象的句柄。

hHandshakeHash [in]

到目前为止计算的握手哈希的句柄。

pszAlgId [in]

指向以 null 结尾的 Unicode 字符串的指针,该字符串标识请求的 加密算法。 这可以是标准 CNG 算法标识符 之一,也可以是另一个已注册算法的标识符。

pbOutput [out]

接收 密钥 BLOB 的缓冲区的地址。 cbOutput 参数包含此缓冲区的大小。 如果此参数为 NULL,则此函数会将所需大小(以字节为单位)放置在由该参数指向的 DWORD 中。

cbOutput [in]

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

2013 年 [out]

指向 DWORD 值的指针,该值指定写入 pbOutput 缓冲区的哈希的长度(以字节为单位)。

dwFlags [in]

此参数留待将来使用。

返回值

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

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

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

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

备注

SslComputeClientAuthHash 函数计算在 SSL 握手的证书验证消息中发送的哈希。 哈希值是通过创建一个哈希值来计算的,该哈希包含主机密,其中包含以前发送或接收的所有握手消息的哈希。

计算哈希的方式取决于使用的协议和密码套件。 此外,哈希取决于所使用的客户端身份验证密钥的类型; pszAlgId 参数指示用于客户端身份验证的密钥类型。

要求

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