跳过导航链接 | |
退出打印视图 | |
Oracle Solaris 11 开发者安全性指南 Oracle Solaris 11 Information Library (简体中文) |
本节介绍各种类型的 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 是与平台无关的 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 通道绑定地址类型
|