secBuffer 结构 (sspi.h)

SecBuffer 结构描述传输应用程序分配的缓冲区以传递给安全包

语法

typedef struct _SecBuffer {
  unsigned long cbBuffer;
  unsigned long BufferType;
#if ...
  char          *pvBuffer;
#else
  void SEC_FAR  *pvBuffer;
#endif
} SecBuffer, *PSecBuffer;

成员

cbBuffer

指定 pvBuffer 成员指向的缓冲区的大小(以字节为单位)。

BufferType

指示缓冲区类型的位标志。 BufferType 必须是以下标志之一。

含义
SECBUFFER_ALERT
17 (0x11)
缓冲区包含警报消息。
SECBUFFER_ATTRMASK
4026531840 (0xF0000000)
缓冲区包含SECBUFFER_READONLY_WITH_CHECKSUM缓冲区的位掩码。
SECBUFFER_CHANNEL_BINDINGS
14 (0xE)
缓冲区包含通道绑定信息。
SECBUFFER_CHANGE_PASS_RESPONSE
15 (0xF)
缓冲区包含 DOMAIN_PASSWORD_INFORMATION 结构。
SECBUFFER_DATA
1 (0x1)
缓冲区包含常见数据。 安全包可以读取和写入此数据,例如,加密部分或全部数据。
SECBUFFER_DTLS_MTU
24 (0x18)
缓冲区仅包含最大传输单元 (MTU) 大小的设置。 默认值为 1096,有效的可配置范围介于 200 和 64*1024 之间。
SECBUFFER_EMPTY
0 (0x0)
这是缓冲区数组中的占位符。 调用方可以在数组中提供多个此类条目,安全包可以在其中返回信息。 有关详细信息,请参阅 SSPI 上下文语义
SECBUFFER_EXTRA
5 (0x5)
安全包使用此值来指示消息中额外或未处理的字节数。
SECBUFFER_MECHLIST
11 (0xB)
缓冲区包含特定于协议的对象 标识符 列表, (OID) 。 调用方通常不感兴趣。
SECBUFFER_MECHLIST_SIGNATURE
12 (0xC)
缓冲区包含 SECBUFFER_MECHLIST 缓冲区的签名。 调用方通常不感兴趣。
SECBUFFER_MISSING
4 (0x4)
安全包使用此值来指示特定消息中缺少的字节数。 在此类型中忽略 pvBuffer 成员。
SECBUFFER_PKG_PARAMS
3 (0x3)
这些是特定于传输到包的参数。 例如,NetWare 重定向程序可以提供服务器 对象标识符,而 DCE RPC 可以提供关联 UUID 等。
SECBUFFER_PRESHARED_KEY
22 (0x16)
缓冲区包含预共享密钥。 允许的最大 PSK 缓冲区大小为 256 字节。
SECBUFFER_PRESHARED_KEY_IDENTITY
23 (0x17)
缓冲区包含预共享密钥标识。
SECBUFFER_SRTP_MASTER_KEY_IDENTIFIER
20 (0x14)
缓冲区包含 SRTP 主密钥标识符。
SECBUFFER_SRTP_PROTECTION_PROFILES
19 (0x13)
缓冲区包含按优先顺序降序排列的 SRTP 保护配置文件列表。
SECBUFFER_STREAM_HEADER
7 (0x7)
缓冲区包含特定记录的特定于协议的标头。 调用方通常不感兴趣。
SECBUFFER_STREAM_TRAILER
6 (0x6)
缓冲区包含特定记录的特定于协议的尾部。 调用方通常不感兴趣。
SECBUFFER_TARGET
13 (0xD)
此标志是保留的。 请勿使用。
SECBUFFER_TARGET_HOST
16 (0x10)
缓冲区指定目标 (SPN) 的服务主体名称

与通道绑定一起使用时,摘要式安全包支持此值。

Windows Server 2008、Windows Vista、Windows Server 2003 和 Windows XP: 不支持此值。

SECBUFFER_TOKEN
2 (0x2)
缓冲区包含消息的安全令牌部分。 对于输入参数,这是只读的,对于输出参数,这是可读/写的。
SECBUFFER_TOKEN_BINDING
21 (0x15)
缓冲区包含支持的令牌绑定协议版本和密钥参数,按优先顺序降序排列。
SECBUFFER_APPLICATION_PROTOCOLS
18
缓冲区包含应用程序协议 ID 的列表,每个要启用的应用程序协议协商扩展类型一个列表。
 

此外, BufferType 还可以使用按位 OR 运算将以下标志与上表中的任何标志组合在一起。

含义
SECBUFFER_READONLY
2147483648 (0x80000000)
缓冲区是只读的,没有校验和。 此标志用于将标头信息发送到安全包以计算校验和。 包可以读取此缓冲区,但无法对其进行修改。
SECBUFFER_READONLY_WITH_CHECKSUM
268435456 (0x10000000)
缓冲区是只读的,具有校验和。

pvBuffer

指向缓冲区的指针。

要求

要求
最低受支持的客户端 Windows 8.1 [仅限桌面应用]
最低受支持的服务器 Windows Server 2012 R2 [仅限桌面应用]
标头 sspi.h (包括 Security.h)

另请参阅

SecBufferDesc