verifySignature 函数 (sspi.h)
验证使用 MakeSignature 函数签名的消息是否按正确的顺序接收且未修改。
语法
KSECDDDECLSPEC SECURITY_STATUS SEC_ENTRY VerifySignature(
[in] PCtxtHandle phContext,
[in] PSecBufferDesc pMessage,
[in] unsigned long MessageSeqNo,
[out] unsigned long *pfQOP
);
参数
[in] phContext
要用于消息 的安全上下文 的句柄。
[in] pMessage
指向 SecBufferDesc 结构的指针,该结构引用一组包含要验证的消息和签名的 SecBuffer 结构。 签名位于类型为 SECBUFFER_TOKEN 的 SecBuffer 结构中。
[in] MessageSeqNo
指定传输应用程序预期的序列号(如果有)。 如果传输应用程序不保留序列号,则此参数为零。
[out] pfQOP
指向 ULONG 变量的指针,该变量接收指示保护质量的包特定标志。
某些安全包忽略此参数。
返回值
如果函数验证消息是否按正确的顺序接收并且尚未修改,则返回值SEC_E_OK。
如果函数根据签名中的信息确定消息不正确,则返回值可以是以下错误代码之一。
返回代码 | 说明 |
---|---|
|
未按正确的顺序接收消息。 |
|
消息已更改。 |
|
phContext 指定的上下文句柄无效。 |
|
pMessage 不包含有效的SECBUFFER_TOKEN缓冲区,或包含的缓冲区太少。 |
|
客户端和服务器之间协商的保护质量不包括 完整性 检查。 |
注解
警告
如果在不同版本的 Windows 上使用 RsaSignPssSha512 算法对消息进行签名,VerifySignature 函数将失败。 例如,在Windows 8上调用 MakeSignature 函数签名的消息将导致Windows 8.1上的 VerifySignature 函数失败。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows XP [仅限桌面应用] |
最低受支持的服务器 | Windows Server 2003 [仅限桌面应用] |
目标平台 | Windows |
标头 | sspi.h (包括 Security.h) |
Library | Secur32.lib |
DLL | Secur32.dll |