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。

如果函数根据签名中的信息确定消息不正确,则返回值可以是以下错误代码之一。

返回代码 说明
SEC_E_OUT_OF_SEQUENCE
未按正确的顺序接收消息。
SEC_E_MESSAGE_ALTERED
消息已更改。
SEC_E_INVALID_HANDLE
phContext 指定的上下文句柄无效。
SEC_E_INVALID_TOKEN
pMessage 不包含有效的SECBUFFER_TOKEN缓冲区,或包含的缓冲区太少。
SEC_E_QOP_NOT_SUPPORTED
客户端和服务器之间协商的保护质量不包括 完整性 检查。

注解

警告  

如果在不同版本的 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

另请参阅

MakeSignature

SSPI 函数

SecBuffer