SpSealMessageFn 回调函数 (ntsecpkg.h)

加密在客户端和服务器之间交换的消息。

SpSealMessage 函数是安全支持提供程序接口的 EncryptMessage (General) 函数的调度函数。

语法

SpSealMessageFn Spsealmessagefn;

NTSTATUS Spsealmessagefn(
  [in]      LSA_SEC_HANDLE ContextHandle,
  [in]      ULONG QualityOfProtection,
  [in, out] PSecBufferDesc MessageBuffers,
  [in]      ULONG MessageSequenceNumber
)
{...}

参数

[in] ContextHandle

用于对消息进行签名 的安全上下文 的句柄。

[in] QualityOfProtection

指定指示保护质量的包特定标志。 SSP/AP 可以使用此参数来启用加密算法的选择。

[in, out] MessageBuffers

指向包含消息缓冲区 的 SecBufferDesc 结构的指针。 这些消息缓冲区中只有一个可以属于 SECBUFFER_DATA 类型,并且包含要加密的消息。 缓冲区不能具有 SECBUFFER_READONLY 属性,因为加密是就地完成的。

[in] MessageSequenceNumber

要分配给消息的序列号。 序列号是可选的,用作防止消息丢失和插入的保护。 值为零表示序列号未使用。

返回值

如果函数成功,则返回STATUS_SUCCESS。

如果函数失败,则返回一个 NTSTATUS 代码,用于指示它失败的原因。 下表列出了失败的常见原因以及函数应返回的错误代码。

返回代码 说明
STATUS_INVALID_HANDLE
找不到上下文,或者未针对消息完整性进行配置。
STATUS_INVALID_PARAMETER
找不到签名缓冲区或太小。

注解

发送方使用 SpSealMessage 函数加密的消息使用 SpUnsealMessage 函数解密。

SSP/AP 必须实现 SpSealMessage 函数;但是,为实现提供的实际名称由开发人员决定。

SpUserModeInitialize 函数接收的 SECPKG_USER_FUNCTION_TABLE 结构中提供了指向 SpSealMessage 函数的指针。

要求

要求
最低受支持的客户端 Windows XP [仅限桌面应用]
最低受支持的服务器 Windows Server 2003 [仅限桌面应用]
目标平台 Windows
标头 ntsecpkg.h

另请参阅

SECPKG_USER_FUNCTION_TABLE

SpUnsealMessage

SpUserModeInitialize