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