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

付録 B GSS-API リファレンス

この付録は、次のような節から構成されています。

これ以外の GSS-API 定義については、ファイル gssapi.h を参照してください。

GSS-API 関数

Solaris ソフトウェアでは、次の GSS-API 関数を実装します。各関数の詳細は、それぞれのマニュアルページを参照してください。また、「旧バージョンの GSS-API 関数」も参照してください。

gss_acquire_cred()

すでに存在している資格の GSS-API 資格ハンドルを取得することにより、大域的な ID を想定します

gss_add_cred()

資格を増分的に作成します

gss_inquire_cred()

資格に関する情報を取得します

gss_inquire_cred_by_mech()

資格に関する機構ごとの情報を取得します

gss_release_cred()

資格ハンドルを破棄します

gss_init_sec_context()

ピアとなるアプリケーションでセキュリティーコンテキストを起動します

gss_accept_sec_context()

ピアとなるアプリケーションが起動したセキュリティーコンテキストを受け入れます

gss_delete_sec_context()

セキュリティーコンテキストを破棄します

gss_process_context_token()

ピアとなるアプリケーションからのセキュリティーコンテキストでトークンを処理します

gss_context_time()

コンテキストが有効である時間を決定します

gss_inquire_context()

セキュリティーコンテキストに関する情報を取得します

gss_wrap_size_limit()

gss_wrap() をコンテキストで実行するためにトークンのサイズの制限を決定します

gss_export_sec_context()

セキュリティーコンテキストを別のプロセスに転送します

gss_import_sec_context()

転送されたコンテキストをインポートします

gss_get_mic()

メッセージの暗号化メッセージ整合性コード (MIC) を計算します

gss_verify_mic()

MIC とメッセージを照合して、受信したメッセージの整合性を検証します

gss_wrap()

MIC をメッセージに添付し、メッセージの内容を暗号化します (後者は省略可能)

gss_unwrap()

添付された MIC でメッセージを検証します。必要に応じて、メッセージの内容を復号化します

gss_import_name()

連続する文字列名を内部形式名に変換します

gss_display_name()

内部形式名をテキストに変換します

gss_compare_name()

2 つの内部形式名を比較します

gss_release_name()

内部形式名を破棄します

gss_inquire_names_for_mech()

指定した機構がサポートする名前型のリストを表示します

gss_inquire_mechs_for_name()

指定した名前型をサポートする機構のリストを表示します

gss_canonicalize_name()

内部名を機構名 (MN) に変換します

gss_export_name()

MN をエクスポート形式に変換します

gss_duplicate_name()

内部名のコピーを作成します

gss_add_oid_set_member()

オブジェクト識別子を集合に追加します

gss_display_status()

GSS-API 状態コードをテキストに変換します

gss_indicate_mechs()

使用できる実際の認証機構を決定します

gss_release_buffer()

バッファーを破棄します

gss_release_oid_set()

オブジェクト識別子の集合を破棄します

gss_create_empty_oid_set()

オブジェクト識別子の空の集合を作成します

gss_test_oid_set_member()

オブジェクト識別子が集合のメンバーであるかどうかを確認します

旧バージョンの GSS-API 関数

この節では、旧バージョンの GSS-API 関数について説明します。

OID を処理する関数

GSS-API の Sun の実装では、便宜上および下位互換性のために、次の関数が提供されています。しかし、これらの関数は GSS-API の Sun 以外の実装ではサポートされていない場合があります。

機構名は文字列から OID に変換されますが、可能な限り、GSS-API が提供するデフォルトの機構を使用してください。

名前が変更された関数

次の関数は新しい関数に差し替えられました。どの場合も、新しい関数は古い関数と機能的に同等です。古い関数もサポートされていますが、可能な限り、新しい関数に置き換えてください。

GSS-API 状態コード

メジャー状態コードは、次の図に示すように、OM_uint32 に符号化されます。

図 B–1 メジャー状態の符号化

メジャー状態コードが、どのように OM_uint32 に符号化されるかを示しています。

GSS-API ルーチンが上位 16 ビットに 0 以外の値が入った GSS 状態コードを戻す場合、その呼び出しが失敗したことを示します。呼び出しエラーフィールドが 0 以外の場合、アプリケーションのルーチンの呼び出しにエラーがあったことを示します。表 B–1 に、「呼び出しエラー」のリストを示します。ルーチンエラーフィールドが 0 以外の場合、ルーチン固有のエラーのためにルーチンが失敗したことを示します。表 B–2 に、「ルーチン固有のエラー」のリストを示します。上位 16 ビットが失敗または成功のどちらを示すかにかかわらず、状態コードの補足情報フィールドのビットを設定できます。表 B–3 に、個々のビットの意味を示します。

GSS-API メジャー状態コードの値

次の表に、GSS-API が戻す呼び出しエラーのリストを示します。これらのエラーは、特定の言語バインディング (この場合は C) に固有です。

表 B–1 GSS-API の呼び出しエラー

エラー 

フィールドの値 

意味 

GSS_S_CALL_INACCESSIBLE_READ 

要求された入力パラメータを読み取れません 

GSS_S_CALL_INACCESSIBLE_WRITE 

要求された出力パラメータに書き込めません 

GSS_S_CALL_BAD_STRUCTURE 

パラメータの形式が間違っています 

次の表に、GSS-API ルーチンエラー (GSS-API 関数が戻す一般的なエラー) のリストを示します。

表 B–2 GSS-API ルーチンエラー

エラー 

フィールドの値 

意味 

GSS_S_BAD_MECH 

要求された機構がサポートされていません。 

GSS_S_BAD_NAME 

提供された名前が無効です。 

GSS_S_BAD_NAMETYPE 

提供された名前型がサポートされていません。 

GSS_S_BAD_BINDINGS 

提供されたチャネルバインディングが間違っています。 

GSS_S_BAD_STATUS 

提供された状態コードが無効です。 

GSS_S_BAD_MIC, GSS_S_BAD_SIG 

トークンが持っている MIC が無効です。 

GSS_S_NO_CRED 

資格を使用またはアクセスできません。あるいは、資格が提供されていません。 

GSS_S_NO_CONTEXT 

コンテキストがまったく確立されていません。 

GSS_S_DEFECTIVE_TOKEN 

トークンが無効です。 

GSS_S_DEFECTIVE_CREDENTIAL 

10 

資格が無効です。 

GSS_S_CREDENTIALS_EXPIRED 

11 

参照された資格の有効期間が終了しています。 

GSS_S_CONTEXT_EXPIRED 

12 

コンテキストの有効期間が終了しています。 

GSS_S_FAILURE 

13 

その他のエラー。実際の機構によって、特定の GSS-API 状態コードが定義されていないエラーが検出されました。この場合、機構に固有の状態コード (マイナー状態コード) にエラーの詳細が示されます。 

GSS_S_BAD_QOP 

14 

要求された保護品質を提供できません。 

GSS_S_UNAUTHORIZED 

15 

当該操作はローカルのセキュリティーポリシーによって禁止されています。 

GSS_S_UNAVAILABLE 

16 

当該操作またはオプションは使用できません。 

GSS_S_DUPLICATE_ELEMENT 

17 

要求された資格要素はすでに存在しています。 

GSS_S_NAME_NOT_MN 

18 

提供された名前が機構名 (MN) ではありません。 

GSS_S_COMPLETE という名前は、値が 0 で、API エラーまたは補足情報ビットのどちらも存在しないことを示します。

次の表に、GSS-API 関数が戻す補足情報の値のリストを示します。

表 B–3 GSS-API 補足情報コード

コード 

ビット番号 

意味 

GSS_S_CONTINUE_NEEDED 

0 (LSB) 

gss_init_sec_context() または gss_accept_sec_context() だけが戻します。関数を完了させるには、もう一度ルーチンを呼び出す必要があることを示します。

GSS_S_DUPLICATE_TOKEN 

トークンは以前のトークンの複製です。 

GSS_S_OLD_TOKEN 

トークンの有効期間が終了しています。 

GSS_S_UNSEQ_TOKEN 

後方にあるトークンをすでに処理しています。 

GSS_S_GAP_TOKEN 

期待していたメッセージ毎トークンを受信していません。 

状態コードの詳細は、「GSS-API 状態コード」を参照してください。

状態コードの表示

gss_display_status() 関数は、GSS-API 状態コードをテキスト形式に変換します。この形式を使用すると、コードをユーザーに表示したり、テキストログに格納したりできます。関数の中には複数の状態を戻すものもありますが、gss_display_status() 関数は 一度に 1 つの状態コードしか表示できません。このため、gss_display_status() をループの一部として呼び出す必要があります。gss_display_status() が 0 以外の状態コードを示すときは、関数は別の状態コードを取得できます。


例 B–1 gss_display_status() による状態コードの表示

OM_uint32 message_context;
OM_uint32 status_code;
OM_uint32 maj_status;
OM_uint32 min_status;
gss_buffer_desc status_string;

...

message_context = 0;

do {

     maj_status = gss_display_status(
               &min_status,
               status_code,
               GSS_C_GSS_CODE,
               GSS_C_NO_OID,
               &message_context,
               &status_string);

     fprintf(stderr, "%.*s\n", \
               (int)status_string.length, \
               (char *)status_string.value);

     gss_release_buffer(&min_status, &status_string,);

} while (message_context != 0);

状態コードのマクロ

マクロ GSS_CALLING_ERROR()GSS_ROUTINE_ERROR ()、および GSS_SUPPLEMENTARY_INFO() は GSS 状態コードを受け取ります。これらのマクロは、関係のあるフィールド以外の情報をすべて削除します。たとえば、GSS_ROUTINE_ERROR() を状態コードに適用すると、呼び出しエラーフィールドと補足情報フィールドは削除されます。この操作では、ルーチンエラーフィールドのみが残ります。このようなマクロが提供する値は、適切な型の GSS_S_xxx シンボルと直接比較できます。また、マクロ GSS_ERROR() は、状態コードが呼び出しエラーまたはルーチンエラーを示す場合は 0 以外の値を戻し、そうでない場合は 0 を戻します。GSS-API で定義されるすべてのマクロは引数を 1 つだけしか受け取りません。

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 

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

GSS-API の実装に固有な機能

GSS-API の実装によっては、いくつかの動作が若干異なる場合もあります。ほとんどの場合、実装による違いはプログラムに最小限の影響しか与えません。どのような場合でも、実装に固有な動作 (Sun の実装も含む) に依存しなければ、移植性を最大限にすることができます。

Sun 固有の関数

Sun の実装には、カスタマイズされた GSS-API 関数はありません。

人が読める名前についての構文

GSS-API の実装によっては、名前の出力可能な形式についての構文が異なる場合があります。移植性を最大限にする場合は、アプリケーションで、人が読める (つまり出力可能な) 形式を使用する名前を比較するべきではありません。そのかわり、gss_compare_name() を使用して内部形式名がほかの名前と一致するかどうかを確認してください。

Sun の 実装の gss_display_name() では名前を次のように表示します。input_name 引数がユーザー主体を指す場合、gss_display_name()user_principal@realmoutput_name_buffer として、gss_OID 値を output_name_type として戻します。Kerberos v5 が実際の機構である場合、gss_OID1.2.840.11354.1.2.2 になります。

gss_import_name()GSS_C_NO_OID 名前型で作成した名前を gss_display_name() が受け取った場合、gss_display_name()GSS_C_NO_OIDoutput_name_type パラメータで戻します。

匿名の形式

gss_display_name() 関数は、匿名の GSS-API 主体を示すとき、文字列 <anonymous> を出力します。この名前に関連する名前型 OID は GSS_C_NT_ANONYMOUS です。Sun の実装で有効な印刷可能な名前の中では、これ以外にかぎかっこ (<>) で囲まれているものはありません。

選択されたデータ型の実装

gss_cred_tgss_ctx_id_tgss_name_t の各データ型はポインタとして実装されています (一部の実装では算術型として指定される場合もある) 。  

コンテキストの削除と格納されたデータの解放

コンテキストの確立に失敗すると、Sun の実装では部分的に構築されたコンテキストを自動的に削除しません。したがって、アプリケーションでこの事態を処理する、つまり、gss_delete_sec_context() でコンテキストを削除する必要があります。

Sun の実装では、格納されたデータ (内部名など) を、メモリー管理を通じて自動的に解放します。しかし、データ要素が必要でなくなったときには、アプリケーションで適切な関数 (gss_release_name() など) を呼び出す必要があります。

チャネルバインディング情報の保護

チャネルバインディングをサポートしているかどうかは、機構によって異なります。Diffie-Hellman 機構と Kerberos v5 機構はどちらもチャネルバインディングをサポートしています。

開発者は、チャネルバインディングデータには機密保護が施されていないものとしてください。Kerberos v5 機構には機密保護が用意されていますが、 Diffie-Hellman 機構ではチャネルバインディングデータの機密性は保持されません。

コンテキストのエクスポートとプロセス間トークン

Sun の実装では、同じコンテキストに対する複数のインポートの試みを検出および拒否します。

サポートされる資格の型

GSS-API の Sun の実装では、gss_acquire_cred() による、GSS_C_INITIATEGSS_C_ACCEPT、および GSS_C_BOTH の各資格の獲得をサポートしています。

資格の有効期間

GSS-API の Sun の実装では、資格の有効期間の設定をサポートします。したがって、プログラマは gss_acquire_cred()gss_add_cred() などの関数で、資格の有効期間に関連するパラメータを使用できます。

コンテキストの有効期間

GSS-API の Sun の実装では、コンテキストの有効期間の設定をサポートします。したがって、プログラマは gss_init_sec_context()gss_inquire_context() などの関数で、コンテキストの有効期間に関連するパラメータを使用できます。

ラップサイズの制限と QOP 値

GSS-API の Sun 実装では、基礎となる機構とは異なり、gss_wrap() で処理するメッセージの最大サイズ制限を課しません。アプリケーションは gss_wrap_size_limit() でメッセージの最大サイズを決定できます。

GSS-API の Sun の実装では、gss_wrap_size_limit() を呼び出すとき、無効な QOP 値を検出します。

minor_status パラメータの使用

GSS-API の Sun の実装では、関数が minor_status パラメータで戻すのは、機構に固有な情報のみです。他の実装では、戻されたマイナー状態コードの一部として実装に固有な戻り値が含まれることもあります。

Kerberos v5 状態コード

各 GSS-API 関数は 2 つの状態コードを戻します。 「メジャー状態コード」と「マイナー状態コード」です。メジャー状態コードは GSS-API の動作に関連します。たとえば、セキュリティーコンテキストの有効期間が終了したあとで、アプリケーションがメッセージを転送しようとした場合、GSS-API は GSS_S_CONTEXT_EXPIRED というメジャー状態コードを戻します。メジャー状態コードのリストについては、「GSS-API 状態コード」を参照してください。

マイナー状態コードを戻すのは、GSS-API の実装でサポートされる実際のセキュリティー機構です。すべての GSS-API 関数は、最初の引数として minor_status または minor_stat パラメータを受け取ります。関数が戻ったときにこのパラメータを調べることによって、アプリケーションは、関数が成功したかどうかにかかわらず、実際の機構が戻した状態を知ることができます。

次の表に、Kerberos v5 が minor_status 引数に戻す状態メッセージのリストを示します。GSS-API 状態コードの詳細は、「GSS-API 状態コード」を参照してください。

Kerberos v5 で状態コード 1 として戻されるメッセージ

次の表に、Kerberos v5 で状態コード 1 として戻されるマイナー状態メッセージのリストを示します。

表 B–5 Kerberos v5 状態コード 1

マイナー状態 

値 

意味 

KRB5KDC_ERR_NONE 

-1765328384L 

エラーなし 

KRB5KDC_ERR_NAME_EXP 

-1765328383L 

データベース内のクライアントのエントリの有効期間が終了しています 

KRB5KDC_ERR_SERVICE_EXP 

-1765328382L 

データベース内のサーバーのエントリの有効期間が終了しています 

KRB5KDC_ERR_BAD_PVNO 

-1765328381L 

Requested protocol version not supported (要求したプロトコルバージョンはサポートされていません。) 

KRB5KDC_ERR_C_OLD_MAST_KVNO 

-1765328380L 

クライアントの鍵が古いマスター鍵で暗号化されています 

KRB5KDC_ERR_S_OLD_MAST_KVNO 

-1765328379L 

サーバーの鍵が古いマスター鍵で暗号化されています 

KRB5KDC_ERR_C_PRINCIPAL_UNKNOWN 

-1765328378L 

クライアントが Kerberos データベースに見つかりません 

KRB5KDC_ERR_S_PRINCIPAL_UNKNOWN 

-1765328377L 

サーバーが Kerberos データベースに見つかりません 

KRB5KDC_ERR_PRINCIPAL_NOT_UNIQUE 

-1765328376L 

主体が Kerberos データベースに複数のエントリを持っています 

KRB5KDC_ERR_NULL_KEY 

-1765328375L 

Client or server has a null key (クライアントまたはサーバーの鍵が空です。) 

KRB5KDC_ERR_CANNOT_POSTDATE 

-1765328374L 

Ticket is ineligible for postdating (チケットには遅延処理の資格がありません。) 

KRB5KDC_ERR_NEVER_VALID 

-1765328373L 

要求された有効期間が負であるか、短すぎます 

KRB5KDC_ERR_POLICY 

-1765328372L 

KDC policy rejects request (KDC ポリシーは要求を拒否します。) 

KRB5KDC_ERR_BADOPTION 

-1765328371L 

KDC can't fulfill requested option (KDC は要求したオプションを処理できません。) 

KRB5KDC_ERR_ETYPE_NOSUPP 

-1765328370L 

KDC が暗号化型をサポートしていません 

KRB5KDC_ERR_SUMTYPE_NOSUPP 

-1765328369L 

KDC がチェックサム型をサポートしていません 

KRB5KDC_ERR_PADATA_TYPE_NOSUPP 

-1765328368L 

KDC は padata タイプをサポートしていません。 

KRB5KDC_ERR_TRTYPE_NOSUPP 

-1765328367L 

KDC は transited タイプをサポートしていません。 

KRB5KDC_ERR_CLIENT_REVOKED 

-1765328366L 

クライアントの資格が取り消されました 

KRB5KDC_ERR_SERVICE_REVOKED 

-1765328365L 

サーバーの資格が取り消されました 

Kerberos v5 で状態コード 2 として戻されるメッセージ

次の表に、Kerberos v5 で状態コード 2 として戻されるマイナー状態メッセージのリストを示します。

表 B–6 Kerberos v5 状態コード 2

マイナー状態 

値 

意味 

KRB5KDC_ERR_TGT_REVOKED 

-1765328364L 

TGT が取り消されました 

KRB5KDC_ERR_CLIENT_NOTYET 

-1765328363L 

クライアントがまだ有効ではありません。のちほど再試行してください 

KRB5KDC_ERR_SERVICE_NOTYET 

-1765328362L 

サーバーがまだ有効ではありません。のちほど再試行してください 

KRB5KDC_ERR_KEY_EXP 

-1765328361L 

パスワードの有効期間が終了しています 

KRB5KDC_ERR_PREAUTH_FAILED 

-1765328360L 

事前認証が失敗しました 

KRB5KDC_ERR_PREAUTH_REQUIRED 

-1765328359L 

追加の事前認証が要求されました 

KRB5KDC_ERR_SERVER_NOMATCH 

-1765328358L 

要求されたサーバーとチケットが一致しません 

KRB5PLACEHOLD_27 ~ KRB5PLACEHOLD_30

-1765328357L 〜 -1765328354L

KRB5 エラーコード (27 〜 30。予約済み)

KRB5KRB_AP_ERR_BAD_INTEGRITY 

-1765328353L 

Decrypt integrity check failed (復号化で整合性チェックが失敗しました。) 

KRB5KRB_AP_ERR_TKT_EXPIRED 

-1765328352L 

Ticket expired (チケットの有効期限が切れました。) 

KRB5KRB_AP_ERR_TKT_NYV 

-1765328351L 

Ticket not yet valid (チケットはまだ有効ではありません。) 

KRB5KRB_AP_ERR_REPEAT 

-1765328350L 

Request is a replay (要求は再送です。) 

KRB5KRB_AP_ERR_NOT_US 

-1765328349L 

The ticket isn't for us (チケットはわれわれのものではありません。) 

KRB5KRB_AP_ERR_BADMATCH 

-1765328348L 

チケットと認証用データが一致しません 

KRB5KRB_AP_ERR_SKEW 

-1765328347L 

クロックスキューが大きすぎます 

KRB5KRB_AP_ERR_BADADDR 

-1765328346L 

Incorrect net address (ネットアドレスが間違っています。) 

KRB5KRB_AP_ERR_BADVERSION 

-1765328345L 

Protocol version mismatch (プロトコルバージョンが一致していません。) 

KRB5KRB_AP_ERR_MSG_TYPE 

-1765328344L 

メッセージの型が無効です 

KRB5KRB_AP_ERR_MODIFIED 

-1765328343L 

Message stream modified (メッセージストリームが変更されました。) 

KRB5KRB_AP_ERR_BADORDER 

-1765328342L 

Message out of order (メッセージの順序が違います。) 

KRB5KRB_AP_ERR_ILL_CR_TKT 

-1765328341L 

Illegal cross-realm ticket (レルム間のチケットが無効です。) 

KRB5KRB_AP_ERR_BADKEYVER 

-1765328340L 

キーのバージョンが使用できません 

Kerberos v5 で状態コード 3 として戻されるメッセージ

次の表に、Kerberos v5 で状態コード 3 として戻されるマイナー状態メッセージのリストを示します。

表 B–7 Kerberos v5 状態コード 3

マイナー状態 

値 

意味 

KRB5KRB_AP_ERR_NOKEY 

-1765328339L 

Service key not available (サービス鍵が使用できません。) 

KRB5KRB_AP_ERR_MUT_FAIL 

-1765328338L 

相互認証が失敗しました 

KRB5KRB_AP_ERR_BADDIRECTION 

-1765328337L 

メッセージの方向が間違っています 

KRB5KRB_AP_ERR_METHOD 

-1765328336L 

代替の認証方法が要求されました 

KRB5KRB_AP_ERR_BADSEQ 

-1765328335L 

メッセージ内のシーケンス番号が間違っています 

KRB5KRB_AP_ERR_INAPP_CKSUM 

-1765328334L 

Inappropriate type of checksum in message (メッセージのチェックサムのタイプが不適切です。) 

KRB5PLACEHOLD_51 ~ KRB5PLACEHOLD_59

-1765328333L 〜 -1765328325L

KRB5 エラーコード (51 〜 59。予約済み)

KRB5KRB_ERR_GENERIC 

-1765328324L 

一般的なエラー 

KRB5KRB_ERR_FIELD_TOOLONG 

-1765328323L 

Field is too long for this implementation (この実装ではフィールドが長すぎます。) 

KRB5PLACEHOLD_62 ~ KRB5PLACEHOLD_127

-1765328322L 〜 -1765328257L

KRB5 エラーコード (62 〜 127。予約済み)

値は戻されない

-1765328256L 

内部使用のみ

KRB5_LIBOS_BADLOCKFLAG 

-1765328255L 

Invalid flag for file lock mode (ファイルロックモードのフラグが無効です。) 

KRB5_LIBOS_CANTREADPWD 

-1765328254L 

パスワードを読み取れません 

KRB5_LIBOS_BADPWDMATCH 

-1765328253L 

パスワードが一致しません 

KRB5_LIBOS_PWDINTR 

-1765328252L 

パスワードの読み取りが中断されました 

KRB5_PARSE_ILLCHAR 

-1765328251L 

構成要素名の文字が無効です 

KRB5_PARSE_MALFORMED 

-1765328250L 

主体の表現形式が間違っています 

KRB5_CONFIG_CANTOPEN 

-1765328249L 

Kerberos 構成ファイル /etc/krb5/krb5 が開けません (または、見つかりません)

KRB5_CONFIG_BADFORMAT 

-1765328248L 

Kerberos 構成ファイル /etc/krb5/krb5 の形式が不適切です

KRB5_CONFIG_NOTENUFSPACE 

-1765328247L 

完全な情報を戻すには領域が不足しています 

KRB5_BADMSGTYPE 

-1765328246L 

符号化用に指定したメッセージ型が無効です 

KRB5_CC_BADNAME 

-1765328245L 

資格キャッシュ名の形式が間違っています 

Kerberos v5 で状態コード 4 として戻されるメッセージ

次の表に、Kerberos v5 で状態コード 4 として戻されるマイナー状態メッセージのリストを示します。

表 B–8 Kerberos v5 状態コード 4

マイナー状態 

値 

意味 

KRB5_CC_UNKNOWN_TYPE 

-1765328244L 

資格キャッシュ型が不明です 

KRB5_CC_NOTFOUND 

-1765328243L 

一致する資格が見つかりません 

KRB5_CC_END 

-1765328242L 

資格キャッシュの終わりに到達しました 

KRB5_NO_TKT_SUPPLIED 

-1765328241L 

要求がチケットを提供していません 

KRB5KRB_AP_WRONG_PRINC 

-1765328240L 

Wrong principal in request (要求した主体は正しくありません。) 

KRB5KRB_AP_ERR_TKT_INVALID 

-1765328239L 

チケットが設定したフラグが無効です 

KRB5_PRINC_NOMATCH 

-1765328238L 

Requested principal and ticket don't match (要求した主体とチケットは一致しません。) 

KRB5_KDCREP_MODIFIED 

-1765328237L 

KDC reply did not match expectations (KDC 応答は予期したものと一致しませんでした。) 

KRB5_KDCREP_SKEW 

-1765328236L 

クロックスキューが KDC 返信には大きすぎます 

KRB5_IN_TKT_REALM_MISMATCH 

-1765328235L 

Client/server realm mismatch in initial ticket request (初期チケット要求でクライアント/サーバーレルムが一致していません。) 

KRB5_PROG_ETYPE_NOSUPP 

-1765328234L 

プログラムが暗号化型をサポートしていません 

KRB5_PROG_KEYTYPE_NOSUPP 

-1765328233L 

プログラムが鍵型をサポートしていません 

KRB5_WRONG_ETYPE 

-1765328232L 

要求された暗号化型がメッセージで使用されていません 

KRB5_PROG_SUMTYPE_NOSUPP 

-1765328231L 

プログラムがチェックサム型をサポートしていません 

KRB5_REALM_UNKNOWN 

-1765328230L 

Cannot find KDC for requested realm (要求されたレルムの KDC が見つかりません。) 

KRB5_SERVICE_UNKNOWN 

-1765328229L 

Kerberos サービスが不明です 

KRB5_KDC_UNREACH 

-1765328228L 

Cannot contact any KDC for requested realm (要求されたレルムの KDC に接続できません。) 

KRB5_NO_LOCALNAME 

-1765328227L 

主体名のローカル名が見つかりません 

KRB5_MUTUAL_FAILED 

-1765328226L 

相互認証が失敗しました 

KRB5_RC_TYPE_EXISTS 

-1765328225L 

リプレイのキャッシュ型がすでに登録されています 

KRB5_RC_MALLOC 

-1765328224L 

リプレイのキャッシュコードでこれ以上のメモリーを割り当てられません 

KRB5_RC_TYPE_NOTFOUND 

-1765328223L 

リプレイのキャッシュ型が不明です 

Kerberos v5 で状態コード 5 として戻されるメッセージ

次の表に、Kerberos v5 で状態コード 5 として戻されるマイナー状態メッセージのリストを示します。

表 B–9 Kerberos v5 状態コード 5

マイナー状態 

値 

意味 

KRB5_RC_UNKNOWN 

-1765328222L 

一般的な不明な RC エラー 

KRB5_RC_REPLAY 

-1765328221L 

リプレイされたメッセージ 

KRB5_RC_IO 

-1765328220L 

リプレイの入出力操作が失敗しました 

KRB5_RC_NOIO 

-1765328219L 

リプレイのキャッシュ型が非揮発性記憶装置をサポートしません 

KRB5_RC_PARSE 

-1765328218L 

リプレイのキャッシュ名の解析および形式エラー 

KRB5_RC_IO_EOF 

-1765328217L 

リプレイのキャッシュ入出力でファイルの終わりに到達しました 

KRB5_RC_IO_MALLOC 

-1765328216L 

リプレイのキャッシュ入出力コードでこれ以上メモリーを割り当てられません 

KRB5_RC_IO_PERM 

-1765328215L 

Permission denied in replay cache code (再実行キャッシュコードでアクセス権がありません。) 

KRB5_RC_IO_IO 

-1765328214L 

入出力エラー (リプレイのキャッシュ入出力コードで) 

KRB5_RC_IO_UNKNOWN 

-1765328213L 

一般的な不明な RC/入出力エラー 

KRB5_RC_IO_SPACE 

-1765328212L 

リプレイの情報を格納するためのシステム領域が不足しています 

KRB5_TRANS_CANTOPEN 

-1765328211L 

レルム変換ファイルが開けません (または、見つかりません) 

KRB5_TRANS_BADFORMAT 

-1765328210L 

レルム変換ファイルの形式が不適切です 

KRB5_LNAME_CANTOPEN 

-1765328209L 

lname 変換データベースが開けません (または、見つかりません)

KRB5_LNAME_NOTRANS 

-1765328208L 

要求された主体で使用できる変換が存在しません 

KRB5_LNAME_BADFORMAT 

-1765328207L 

変換データベースエントリの形式が不適切です 

KRB5_CRYPTO_INTERNAL 

-1765328206L 

暗号システム内部エラー 

KRB5_KT_BADNAME 

-1765328205L 

鍵テーブル名の形式が間違っています 

KRB5_KT_UNKNOWN_TYPE 

-1765328204L 

鍵テーブル型が不明です 

KRB5_KT_NOTFOUND 

-1765328203L 

Key table entry not found (鍵テーブルエントリが見つかりません。) 

KRB5_KT_END 

-1765328202L 

鍵テーブルの終わりに到達しました 

KRB5_KT_NOWRITE 

-1765328201L 

指定された鍵テーブルに書き込めません 

Kerberos v5 で状態コード 6 として戻されるメッセージ

次の表に、Kerberos v5 で状態コード 6 として戻されるマイナー状態メッセージのリストを示します。

表 B–10 Kerberos v5 状態コード 6

マイナー状態 

値 

意味 

KRB5_KT_IOERR 

-1765328200L 

鍵テーブルへの書き込み中にエラーが発生しました 

KRB5_NO_TKT_IN_RLM 

-1765328199L 

要求されたレルムのチケットが見つかりません 

KRB5DES_BAD_KEYPAR 

-1765328198L 

DES 鍵のパリティーが不良です 

KRB5DES_WEAK_KEY 

-1765328197L 

DES 鍵が弱い鍵です 

KRB5_BAD_ENCTYPE 

-1765328196L 

暗号化型が不良です 

KRB5_BAD_KEYSIZE 

-1765328195L 

鍵サイズが暗号化型と互換性がありません 

KRB5_BAD_MSIZE 

-1765328194L 

メッセージサイズが暗号化型と互換性がありません 

KRB5_CC_TYPE_EXISTS 

-1765328193L 

資格キャッシュ型がすでに登録されています 

KRB5_KT_TYPE_EXISTS 

-1765328192L 

鍵テーブル型がすでに登録されています 

KRB5_CC_IO 

-1765328191L 

資格キャッシュ入出力操作が失敗しました 

KRB5_FCC_PERM 

-1765328190L 

Credentials cache file permissions incorrect (資格キャッシュファイルのアクセス権が正しくありません。) 

KRB5_FCC_NOFILE 

-1765328189L 

No credentials cache file found (資格キャッシュファイルが見つかりません。) 

KRB5_FCC_INTERNAL 

-1765328188L 

内部ファイル資格キャッシュエラー 

KRB5_CC_WRITE 

-1765328187L 

資格キャッシュファイルの書き込み中にエラーが発生しました 

KRB5_CC_NOMEM 

-1765328186L 

資格キャッシュコードでこれ以上メモリーを割り当てられません 

KRB5_CC_FORMAT 

-1765328185L 

資格キャッシュの形式が不良です 

KRB5_INVALID_FLAGS 

-1765328184L 

KDC オプションの組み合わせが無効です (内部ライブラリエラー) 

KRB5_NO_2ND_TKT 

-1765328183L 

要求に 2 番目のチケットが指定されていません 

KRB5_NOCREDS_SUPPLIED 

-1765328182L 

ライブラリルーチンに資格が提供されていません 

KRB5_SENDAUTH_BADAUTHVERS 

-1765328181L 

無効な sendauth バージョンが送信されました。 

KRB5_SENDAUTH_BADAPPLVERS 

-1765328180L 

sendauth によって送信されたアプリケーションのバージョンが不良です 

KRB5_SENDAUTH_BADRESPONSE 

-1765328179L 

sendauth の交換中の応答が不良です 

KRB5_SENDAUTH_REJECTED 

-1765328178L 

sendauth の交換中にサーバーが認証を拒否しました 

Kerberos v5 で状態コード 7 として戻されるメッセージ

次の表に、Kerberos v5 で状態コード 7 として戻されるマイナー状態メッセージのリストを示します。

表 B–11 Kerberos v5 状態コード 7

マイナー状態 

値 

意味 

KRB5_PREAUTH_BAD_TYPE 

-1765328177L 

事前認証型がサポートされていません 

KRB5_PREAUTH_NO_KEY 

-1765328176L 

要求された事前認証鍵が提供されていません 

KRB5_PREAUTH_FAILED 

-1765328175L 

事前認証が失敗しました (一般的なエラー) 

KRB5_RCACHE_BADVNO 

-1765328174L 

リプレイのキャッシュの形式のバージョン番号がサポートされていません 

KRB5_CCACHE_BADVNO 

-1765328173L 

資格キャッシュの形式のバージョン番号がサポートされていません 

KRB5_KEYTAB_BADVNO 

-1765328172L 

鍵テーブルの形式のバージョン番号がサポートされていません 

KRB5_PROG_ATYPE_NOSUPP 

-1765328171L 

プログラムがアドレス型をサポートしていません 

KRB5_RC_REQUIRED 

-1765328170L 

メッセージ再送検出には rcache パラメータが必要です。 

KRB5_ERR_BAD_HOSTNAME 

-1765328169L 

ホスト名を標準化できません 

KRB5_ERR_HOST_REALM_UNKNOWN 

-1765328168L 

Cannot determine realm for host (ホスト用のレルムを決定できません。) 

KRB5_SNAME_UNSUPP_NAMETYPE 

-1765328167L 

名前型におけるサービス主体への変換が定義されていません 

KRB5KRB_AP_ERR_V4_REPLY 

-1765328166L 

初期チケットの応答が Version 4 のエラーを示しています 

KRB5_REALM_CANT_RESOLVE 

-1765328165L 

Cannot resolve KDC for requested realm (要求されたレルムの KDC を解決できません。) 

KRB5_TKT_NOT_FORWARDABLE 

-1765328164L 

要求しているチケットは転送可能なチケットを取得できません 

KRB5_FWD_BAD_PRINCIPAL 

-1765328163L 

(資格の転送中) 主体名が不良です 

KRB5_GET_IN_TKT_LOOP 

-1765328162L 

Looping detected inside krb5_get_in_tkt (krb5_get_in_tkt 内部でループが検出されました。) 

KRB5_CONFIG_NODEFREALM 

-1765328161L 

Kerberos 構成ファイル /etc/krb5/krb5.conf がデフォルトのレルムを指定していません

KRB5_SAM_UNSUPPORTED 

-1765328160L 

obtain_sam_padata に無効な SAM フラグがあります。 

KRB5_KT_NAME_TOOLONG 

-1765328159L 

鍵タブ名が長すぎます 

KRB5_KT_KVNONOTFOUND 

-1765328158L 

Key version number for principal in key table is incorrect (鍵テーブルの主体の鍵バージョン番号が正しくありません。) 

KRB5_CONF_NOT_CONFIGURED 

-1765328157L 

Kerberos 構成ファイル /etc/krb5/krb5.conf が構成されていません

ERROR_TABLE_BASE_krb5 

-1765328384L 

default