ナビゲーションリンクをスキップ | |
印刷ビューの終了 | |
Oracle Solaris 11 セキュリティーサービス開発ガイド Oracle Solaris 11 Information Library (日本語) |
1. Oracle Solaris の開発者向けセキュリティー機能 (概要)
3. PAM アプリケーションおよび PAM サービスの記述
8. Oracle Solaris 暗号化フレームワークの紹介
9. ユーザーレベルの暗号化アプリケーションとプロバイダの記述
10. Oracle Solaris 鍵管理フレームワークの紹介
Kerberos v5 で状態コード 1 として戻されるメッセージ
Kerberos v5 で状態コード 2 として戻されるメッセージ
Kerberos v5 で状態コード 3 として戻されるメッセージ
Kerberos v5 で状態コード 4 として戻されるメッセージ
Kerberos v5 で状態コード 5 として戻されるメッセージ
Kerberos v5 で状態コード 6 として戻されるメッセージ
メジャー状態コードは、次の図に示すように、OM_uint32 に符号化されます。
図 B-1 メジャー状態の符号化
GSS-API ルーチンが上位 16 ビットに 0 以外の値が入った GSS 状態コードを戻す場合、その呼び出しが失敗したことを示します。 呼び出しエラーフィールドが 0 以外の場合、アプリケーションのルーチンの呼び出しにエラーがあったことを示します。 表 B-1 に、「呼び出しエラー」のリストを示します。 ルーチンエラーフィールドが 0 以外の場合、ルーチン固有のエラーのためにルーチンが失敗したことを示します。表 B-2 に、「ルーチン固有のエラー」のリストを示します。 上位 16 ビットが失敗または成功のどちらを示すかにかかわらず、状態コードの補足情報フィールドのビットを設定できます。 表 B-3 に、個々のビットの意味を示します。
次の表に、GSS-API が戻す呼び出しエラーのリストを示します。 これらのエラーは、特定の言語バインディング (この場合は C) に固有です。
表 B-1 GSS-API の呼び出しエラー
|
次の表に、GSS-API ルーチンエラー (GSS-API 関数が戻す一般的なエラー) のリストを示します。
表 B-2 GSS-API ルーチンエラー
|
GSS_S_COMPLETE という名前は、値が 0 で、API エラーまたは補足情報ビットのどちらも存在しないことを示します。
次の表に、GSS-API 関数が戻す補足情報の値のリストを示します。
表 B-3 GSS-API 補足情報コード
|
状態コードの詳細は、「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 つだけしか受け取りません。