Solaris 开发者安全性指南

GSS-API 数据类型和值

本节介绍各种类型的 GSS-API 数据类型和值。某些数据类型(如 gss_cred_id_tgss_name_t)对用户是不透明的。这些数据类型无需介绍。本节介绍以下主题:

基本 GSS-API 数据类型

本节介绍 GSS-API 使用的数据类型。

OM_uint32

OM_uint32 是与平台无关的 32 位无符号整数。

gss_buffer_desc

包含 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_desc

包含 gss_OID 指针的 gss_OID_desc 的定义采用以下格式:

typedef struct gss_OID_desc_struct {

        OM_uint32 length;

        void*elements;

} gss_OID_desc, *gss_OID;

gss_OID_set_desc

包含 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_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_C_NO_NAME 作为参数值,以指示在名称传输中未提供任何值。

GSS_C_NO_OID

此值对应于空输入值,而不是实际的对象标识符。 如果指定了该值,则该值基于机制特定缺省可列显语法指示关联名称的解释。

GSS_C_NT_ANONYMOUS

标识匿名名称的方式。可以比较此值,以与机制无关的方式确定名称是否引用匿名主体。

GSS_C_NT_EXPORT_NAME

使用 gss_export_name() 函数导出的名称。

GSS_C_NT_HOSTBASED_SERVICE

用于表示与主机关联的服务。此名称格式是按照以下方式使用两个元素(服务和主机名)构造的:service@hostname

GSS_C_NT_MACHINE_UID_NAME

用于指示与本地系统中的用户对应的数字用户标识符。该值的解释特定于 OS。gss_import_name() 函数将此 UID 解析为用户名,之后该 UID 就表示为用户名形式。

GSS_C_NT_STRING_STRING_UID_NAME

用于指示一个数字字符串,该字符串表示本地系统中的用户的数字用户标识符。 该值的解释特定于 OS。此名称类型与计算机 UID 格式类似,不同的是缓冲区包含表示用户 ID 的字符串。

GSS_C_NT_USER_NAME

本地系统中的命名用户。该值的解释特定于 OS。该值采用以下格式:username

通道绑定的地址类型

下表给出了 gss_channel_bindings_struct 结构的 initiator_addrtypeacceptor_addrtype 字段的可能值。这些字段指示名称可以采用的格式,例如 ARPAnet IMP 地址或 AppleTalk 地址。通道绑定将在在 GSS-API 中使用通道绑定中讨论。

表 B–4 通道绑定地址类型

字段 

值(十进制) 

地址类型 

GSS_C_AF_UNSPEC 

未指定的地址类型 

GSS_C_AF_LOCAL 

本地主机 

GSS_C_AF_INET 

Internet 地址类型,例如 IP 

GSS_C_AF_IMPLINK 

ARPAnet IMP  

GSS_C_AF_PUP 

pup 协议,例如 BSP 

GSS_C_AF_CHAOS 

MIT CHAOS 协议 

GSS_C_AF_NS 

XEROX NS 

GSS_C_AF_NBS 

nbs 

GSS_C_AF_ECMA 

ECMA 

GSS_C_AF_DATAKIT 

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 

未指定任何地址