この節では、さまざまなタイプの 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 は、名前の転送で提供される値がないことを示すパラメータ値として推奨されます。
実際のオブジェクト識別子ではなく、NULL の入力値に相当します。この値を指定した場合、関連する名前が機構に固有なデフォルトの印刷可能な構文に基づいて解釈されることを示します。
匿名を確認する方法。この値と比較することによって、名前が匿名の主体を参照するかどうかを機構に依存しない方法で確認できます。
gss_export_name() 関数でエクスポートされた名前。
ホストコンピュータに関連付けられたサービスを表します。この名前型は、サービス (service) とホスト名 (hostname) の 2 つの要素からなり、service@hostname の書式で記述されます。
ローカルシステム上のユーザーの、数値によるユーザー識別子を示します。この値の解釈方法は OS に固有です。gss_import_name() 関数はこの UID をユーザー名に解釈処理し、ユーザー名形式として扱います。
ローカルシステム上のユーザーの数値によるユーザー識別子を表す数字文字列を示します。この値の解釈方法は OS に固有です。この名前型はマシン UID 形式に似ていますが、バッファーにはユーザー ID を表す文字が入っています。
ローカルシステム上の指定されたユーザー。この値の解釈方法は OS に固有です。この値は username の書式で記述されます。
次の表に、gss_channel_bindings_struct 構造体の initiator_addrtype フィールドと acceptor_addrtype フィールドで使用できる値を示します。この 2 つのフィールドは、名前を受け取ることができる形式 (ARPAnet IMP アドレスや AppleTalk アドレスなど) を示します。チャネルバインディングについては、「GSS-API におけるチャネルバインディングの使用」を参照してください。
表 B–4 チャネルバインディングのアドレス型
フィールド |
値 (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 |
アドレスは指定されていません |