この節では、さまざまなタイプの 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_desc と gss_buffer_t
ポインタの定義を示します。
typedef struct gss_buffer_desc_struct { size_t length; void *value; } gss_buffer_desc, *gss_buffer_t; |
次に、gss_OID_desc と gss_OID
ポインタの定義を示します。
typedef struct gss_OID_desc_struct { OM_uint32 length; void*elements; } gss_OID_desc, *gss_OID; |
次に、gss_OID_set_desc と gss_OID_set
ポインタの定義を示します。
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; |
名前型とは、関連する名前の形式のことです。名前と名前型についての詳細は、名前と OIDを参照してください。次に、GSS-API がサポートする名前型を示します。これらはすべて gss_OID 型です。
表 B–5 名前型
名前型 |
意味 |
---|---|
GSS_C_NO_NAME |
GSS_C_NO_NAME (推奨されるシンボリック名) は、名前の転送で使用されるパラメータの特定の値に名前が渡されないことを意味する。 |
GSS_C_NO_OID |
実際のオブジェクト識別子ではなく、NULL の入力値に相当する。指定した場合、関連する名前が機構に固有なデフォルトの印刷可能な構文に基づいて解釈されることを示す。 |
GSS_C_NT_ANONYMOUS |
匿名を指定する方法として提供される。この名前型と比較することによって、その名前が匿名のプリンシパルを参照するかどうかを機構に依存しない方法で決定できる。 |
GSS_C_NT_EXPORT_NAME |
gss_export_name() 関数でエクスポートされた名前。 |
GSS_C_NT_HOSTBASED_SERVICE |
ホストコンピュータと関連するサービスを表す。この名前型は 2 つの要素「サービス (service)」と「ホスト名 (hostname)」からなり、service@hostname の形式を取る。 |
GSS_C_NT_MACHINE_UID_NAME |
ローカルシステム上のユーザーの、数値によるユーザー識別子を示す。解釈の方法は OS に固有である。gss_import_name() 関数はこの UID を username に解釈処理し、ユーザー名形式として扱う。 |
GSS_C_NT_STRING_STRING_UID_NAME |
ローカルシステム上のユーザーの数値によるユーザー識別子を表す数字文字列を示す。解釈の方法は OS に固有である。この名前型はマシン UID 形式に似ているが、バッファにはユーザー ID を表す文字が入っている。 |
GSS_C_NT_USER_NAME |
ローカルシステム上の指定されたユーザー。解釈の方法は OS に固有である。username の形式を取る。 |
表 B–6 に、gss_channel_bindings_struct 構造体の initiator_addrtype と acceptor_addrtype のフィールドで使用できる値を示します。この 2 つのフィールドは名前を受け取ることができる形式を示します (たとえば ARPAnet IMP アドレス形式や AppleTalk アドレス形式など)。チャネルバインディングについては、チャネルバインディングを参照してください。
表 B–6 チャネルバインディングのアドレス型
フィールド |
値 (10 進数) |
アドレス型 |
---|---|---|
GSS_C_AF_UNSPEC |
0 |
未定のアドレス型 |
GSS_C_AF_LOCAL |
1 |
ホスト - ローカル |
GSS_C_AF_INET |
2 |
インターネットアドレス型 (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 |
データキットプロトコル |
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 |
アドレスは指定されていない。 |