本节介绍各种类型的 GSS-API 数据类型和值。某些数据类型(如 gss_cred_id_t 或 gss_name_t)对用户是不透明的。这些数据类型无需介绍。本节介绍以下主题:
基本 GSS-API 数据类型 -给出 OM_uint32
、gss_buffer_desc、gss_OID_desc、gss_OID_set_desc_struct 和 gss_channel_bindings_struct 数据类型的定义。
名称类型 -给出为指定名称由 GSS-API 识别的各种名称格式。
通道绑定的地址类型 -给出可用作 gss_channel_bindings_t 结构的 initiator_addrtype 和 acceptor_addrtype 字段的各种值。
本节介绍 GSS-API 使用的数据类型。
OM_uint32
OM_uint32
是与平台无关的 32 位无符号整数。
包含 gss_buffer_t
指针的 gss_buffer_desc 的定义采用以下格式:
typedef struct gss_buffer_desc_struct { size_t length; void *value; } gss_buffer_desc, *gss_buffer_t;
包含 gss_OID
指针的 gss_OID_desc 的定义采用以下格式:
typedef struct gss_OID_desc_struct { OM_uint32 length; void*elements; } gss_OID_desc, *gss_OID;
包含 gss_OID_set
指针的 gss_OID_set_desc 的定义采用以下格式:
typedef struct gss_OID_set_desc_struct { size_t count; gss_OID elements; } gss_OID_set_desc, *gss_OID_set;
gss_channel_bindings_struct 结构和gss_channel_bindings_t 指针的定义的格式如下:
typedef struct gss_channel_bindings_struct { OM_uint32 initiator_addrtype; gss_buffer_desc initiator_address; OM_uint32 acceptor_addrtype; gss_buffer_desc acceptor_address; gss_buffer_desc application_data; } *gss_channel_bindings_t;
名称类型指示关联名称的格式。有关名称和名称类型的更多信息,请参见GSS-API 中的名称和GSS-API OID。GSS-API 支持下表中的 gss_OID 名称类型。
建议将符号名称 GSS_C_NO_NAME 作为参数值,以指示在名称传输中未提供任何值。
此值对应于空输入值,而不是实际的对象标识符。 如果指定了该值,则该值基于机制特定缺省可列显语法指示关联名称的解释。
标识匿名名称的方式。可以比较此值,以与机制无关的方式确定名称是否引用匿名主体。
使用 gss_export_name() 函数导出的名称。
用于表示与主机关联的服务。此名称格式是按照以下方式使用两个元素(服务和主机名)构造的:service@hostname。
用于指示与本地系统中的用户对应的数字用户标识符。该值的解释特定于 OS。gss_import_name() 函数将此 UID 解析为用户名,之后该 UID 就表示为用户名形式。
用于指示一个数字字符串,该字符串表示本地系统中的用户的数字用户标识符。 该值的解释特定于 OS。此名称类型与计算机 UID 格式类似,不同的是缓冲区包含表示用户 ID 的字符串。
本地系统中的命名用户。该值的解释特定于 OS。该值采用以下格式:username。
下表给出了 gss_channel_bindings_struct 结构的 initiator_addrtype 和 acceptor_addrtype 字段的可能值。这些字段指示名称可以采用的格式,例如 ARPAnet IMP 地址或 AppleTalk 地址。通道绑定将在在 GSS-API 中使用通道绑定中讨论。
表 B–4 通道绑定地址类型
字段 |
值(十进制) |
地址类型 |
---|---|---|
GSS_C_AF_UNSPEC |
0 |
未指定的地址类型 |
GSS_C_AF_LOCAL |
1 |
本地主机 |
GSS_C_AF_INET |
2 |
Internet 地址类型,例如 IP |
GSS_C_AF_IMPLINK |
3 |
ARPAnet IMP |
GSS_C_AF_PUP |
4 |
pup 协议,例如 BSP |
GSS_C_AF_CHAOS |
5 |
MIT CHAOS 协议 |
GSS_C_AF_NS |
6 |
XEROX NS |
GSS_C_AF_NBS |
7 |
nbs |
GSS_C_AF_ECMA |
8 |
ECMA |
GSS_C_AF_DATAKIT |
9 |
Datakit 协议 |
GSS_C_AF_CCITT |
10 |
CCITT |
GSS_C_AF_SNA |
11 |
IBM SNA |
GSS_C_AF_DECnet |
12 |
DECnet |
GSS_C_AF_DLI |
13 |
直接数据链接接口 |
GSS_C_AF_LAT |
14 |
LAT |
GSS_C_AF_HYLINK |
15 |
NSC 超级通道 |
GSS_C_AF_APPLETALK |
16 |
AppleTalk |
GSS_C_AF_BSC |
17 |
BISYNC |
GSS_C_AF_DSS |
18 |
分布式系统服务 |
GSS_C_AF_OSI |
19 |
OSI TP4 |
GSS_C_AF_X25 |
21 |
X.25 |
GSS_C_AF_NULLADDR |
255 |
未指定任何地址 |