Oracle Solaris セキュリティーサービス開発ガイド

GSS-API データ型と値

この節では、さまざまなタイプの GSS-API データ型と値について説明します。gss_cred_id_t または gss_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

実際のオブジェクト識別子ではなく、NULL の入力値に相当します。この値を指定した場合、関連する名前が機構に固有なデフォルトの印刷可能な構文に基づいて解釈されることを示します。

GSS_C_NT_ANONYMOUS

匿名を確認する方法。この値と比較することによって、名前が匿名の主体を参照するかどうかを機構に依存しない方法で確認できます。

GSS_C_NT_EXPORT_NAME

gss_export_name() 関数でエクスポートされた名前。

GSS_C_NT_HOSTBASED_SERVICE

ホストコンピュータに関連付けられたサービスを表します。この名前型は、サービス (service) とホスト名 (hostname) の 2 つの要素からなり、service@hostname の書式で記述されます。

GSS_C_NT_MACHINE_UID_NAME

ローカルシステム上のユーザーの、数値によるユーザー識別子を示します。この値の解釈方法は OS に固有です。gss_import_name() 関数はこの UID をユーザー名に解釈処理し、ユーザー名形式として扱います。

GSS_C_NT_STRING_STRING_UID_NAME

ローカルシステム上のユーザーの数値によるユーザー識別子を表す数字文字列を示します。この値の解釈方法は OS に固有です。この名前型はマシン UID 形式に似ていますが、バッファーにはユーザー ID を表す文字が入っています。

GSS_C_NT_USER_NAME

ローカルシステム上の指定されたユーザー。この値の解釈方法は OS に固有です。この値は username の書式で記述されます。

チャネルバインディングのアドレス型

次の表に、gss_channel_bindings_struct 構造体の initiator_addrtype フィールドと acceptor_addrtype フィールドで使用できる値を示します。この 2 つのフィールドは、名前を受け取ることができる形式 (ARPAnet IMP アドレスや AppleTalk アドレスなど) を示します。チャネルバインディングについては、「GSS-API におけるチャネルバインディングの使用」を参照してください。

表 B–4 チャネルバインディングのアドレス型

フィールド 

値 (10 進数) 

アドレス型 

GSS_C_AF_UNSPEC 

未定のアドレス型 

GSS_C_AF_LOCAL 

ホスト - ローカル 

GSS_C_AF_INET 

インターネットアドレス型 (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 

データキットプロトコル 

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 

アドレスは指定されていません