| ナビゲーションリンクをスキップ | |
| 印刷ビューの終了 | |
|
Oracle Solaris 10 セキュリティー開発者ガイド Oracle Solaris 10 1/13 Information Library (日本語) |
1. Oracle Solaris の開発者向けセキュリティー機能 (概要)
3. PAM アプリケーションおよび PAM サービスの記述
GSS-API クライアントにおける署名ブロックの読み取りと検証
8. Oracle Solaris 暗号化フレームワークの紹介
プログラム例として、gss-client はいくつかの関数をデモ目的で実行しています。次のソースコードは基本タスクに不可欠なものではありませんが、次の操作の使用法を示す目的で掲載します。
コンテキストの保存と復元
コンテキストフラグの表示
コンテキストのステータスの取得
これらの操作を含むソースコードを、次に示します。
例 5-5 gss-client: call_server() コンテキストの確立
/* Save and then restore the context */
maj_stat = gss_export_sec_context(&min_stat,
&context,
&context_token);
if (maj_stat != GSS_S_COMPLETE) {
display_status("exporting context", maj_stat, min_stat);
return -1;
}
maj_stat = gss_import_sec_context(&min_stat,
&context_token,
&context);
if (maj_stat != GSS_S_COMPLETE) {
display_status("importing context", maj_stat, min_stat);
return -1;
}
(void) gss_release_buffer(&min_stat, &context_token);
/* display the flags */
display_ctx_flags(ret_flags);
/* Get context information */
maj_stat = gss_inquire_context(&min_stat, context,
&src_name, &targ_name, &lifetime,
&mechanism, &context_flags,
&is_local,
&is_open);
if (maj_stat != GSS_S_COMPLETE) {
display_status("inquiring context", maj_stat, min_stat);
return -1;
}
if (maj_stat == GSS_S_CONTEXT_EXPIRED) {
printf(" context expired\n");
display_status("Context is expired", maj_stat, min_stat);
return -1;
}