JavaScript is required to for searching.
ナビゲーションリンクをスキップ
印刷ビューの終了
Oracle Solaris 11 セキュリティーサービス開発ガイド     Oracle Solaris 11.1 Information Library (日本語)
このドキュメントの評価
search filter icon
search icon

ドキュメントの情報

はじめに

1.  Oracle Solaris の開発者向けセキュリティー機能 (概要)

2.  特権付きアプリケーションの開発

3.  PAM アプリケーションおよび PAM サービスの記述

4.  GSS-API を使用するアプリケーションの記述

5.  GSS-API クライアント例

6.  GSS-API サーバー例

7.  SASL を使用するアプリケーションの記述

8.  Oracle Solaris 暗号化フレームワークの紹介

9.  ユーザーレベルの暗号化アプリケーションの記述

10.  Oracle Solaris 鍵管理フレームワークの紹介

A.  開発者のためのセキュアコーディングガイドライン

B.  C ベース の GSS-API プログラム例

C.  GSS-API リファレンス

GSS-API 関数

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

OID を処理する関数

名前が変更された関数

GSS-API ステータスコード

GSS-API メジャーステータスコードの値

ステータスコードの表示

ステータスコードのマクロ

GSS-API データ型と値

基本 GSS-API データ型

OM_uint32

gss_buffer_desc

gss_OID_desc

gss_OID_set_desc

gss_channel_bindings_struct

名前型

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

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

Oracle Solaris に固有の関数

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

匿名の形式

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

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

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

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

サポートされる資格の型

資格の有効期間

コンテキストの有効期間

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

minor_status パラメータの使用

Kerberos v5 ステータスコード

Kerberos v5 でステータスコード 1 として戻されるメッセージ

Kerberos v5 でステータスコード 2 として戻されるメッセージ

Kerberos v5 でステータスコード 3 として戻されるメッセージ

Kerberos v5 でステータスコード 4 として戻されるメッセージ

Kerberos v5 でステータスコード 5 として戻されるメッセージ

Kerberos v5 でステータスコード 6 として戻されるメッセージ

Kerberos v5 でステータスコード 7 として戻されるメッセージ

D.  OID の指定

E.  SASL ソースコード例

F.  SASL リファレンス

用語集

索引

ドキュメントの品質向上のためのご意見をください
簡潔すぎた
読みづらかった、または難し過ぎた
重要な情報が欠けていた
内容が間違っていた
翻訳版が必要
その他
Your rating has been updated
貴重なご意見を有り難うございました!

あなたの貴重なご意見はより良いドキュメント作成の手助けとなります 内容の品質向上と追加コメントのためのアンケートに参加されますか?

GSS-API ステータスコード

メジャーステータスコードは、次の図に示すように、OM_uint32 にエンコードされます。

図 C-1 メジャーステータスのエンコーディング

image:メジャーステータスコードが、どのように OM_uint32 にエンコードされるかを示しています。

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

GSS-API メジャーステータスコードの値

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

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

エラー
フィールドの値
意味
GSS_S_CALL_INACCESSIBLE_READ
1
要求された入力パラメータを読み取れません
GSS_S_CALL_INACCESSIBLE_WRITE
2
要求された出力パラメータに書き込めません
GSS_S_CALL_BAD_STRUCTURE
3
パラメータの形式が間違っています

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

表 C-2 GSS-API ルーチンエラー

エラー
フィールドの値
意味
GSS_S_BAD_MECH
1
要求された機構がサポートされていません。
GSS_S_BAD_NAME
2
提供された名前が無効です。
GSS_S_BAD_NAMETYPE
3
提供された名前型がサポートされていません。
GSS_S_BAD_BINDINGS
4
提供されたチャネルバインディングが間違っています。
GSS_S_BAD_STATUS
5
提供されたステータスコードが無効です。
GSS_S_BAD_MIC, GSS_S_BAD_SIG
6
トークンが持っている MIC が無効です。
GSS_S_NO_CRED
7
資格を使用またはアクセスできません。あるいは、資格が提供されていません。
GSS_S_NO_CONTEXT
8
コンテキストがまったく確立されていません。
GSS_S_DEFECTIVE_TOKEN
9
トークンが無効です。
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 関数が戻す補足情報の値のリストを示します。

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

コード
ビット番号
意味
GSS_S_CONTINUE_NEEDED
0 (LSB)
gss_init_sec_context() または gss_accept_sec_context() だけが戻します。関数を完了させるには、もう一度ルーチンを呼び出す必要があることを示します。
GSS_S_DUPLICATE_TOKEN
1
トークンは以前のトークンの複製です。
GSS_S_OLD_TOKEN
2
トークンの有効期間が終了しています。
GSS_S_UNSEQ_TOKEN
3
後方にあるトークンをすでに処理しています。
GSS_S_GAP_TOKEN
4
期待していたメッセージ毎トークンを受信していません。

ステータスコードの詳細は、「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 つだけしか受け取りません。