JavaScript is required to for searching.
ナビゲーションリンクをスキップ
印刷ビューの終了
Oracle Solaris 10 セキュリティー開発者ガイド     Oracle Solaris 10 1/13 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 暗号化フレームワークの紹介

Oracle Solaris の暗号化に関する用語

暗号化フレームワークの概要

暗号化フレームワークのコンポーネント

暗号化技術を扱う開発者が知っておくべきこと

ユーザーレベルのコンシューマ開発者に対する要件

ユーザーレベルのプロバイダ開発者に対する要件

カーネルレベルのコンシューマ開発者に対する要件

ユーザーレベルのプロバイダにおけるデータクリーンアップ衝突の回避

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

10.  スマートカードフレームワークの使用

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

B.  GSS-API リファレンス

C.  OID の指定

D.  SASL ソースコード例

E.  SASL リファレンス

F.  暗号化プロバイダのパッケージ化と署名

用語集

索引

ユーザーレベルのプロバイダにおけるデータクリーンアップ衝突の回避

暗号化フレームワークにプラグインするユーザーレベルライブラリは、_fini() 関数を提供します。fini() 関数は、ライブラリの読み込み解除時にローダーによって呼び出されます。_fini() 関数は、すべてのクリーンアップが正しいタイミングで正しく実行されるために必要です。libpkcs11 を使用するライブラリが C_Finalize() を呼び出すことは想定されていません。なぜなら、libpkcs11 はアプリケーションによって使用されている可能性がある共有ライブラリだからです。

_fini() 関数を提供するには、再配置可能オブジェクトのプログラムデータセクション内に .fini セクションを作成する必要があります。.fini セクションは実行時終了コードブロックを提供します。『リンカーとライブラリ』を参照してください。次のコード例は .fini セクションの設計方法を示しています。

例 8-1 PKCS #11 ライブラリへの _fini() の提供

#pragma fini(pkcs11_fini)
static void pkcs11_fini();

/* [... (other library code omitted)] */

static void
pkcs11_fini()
{
        (void) pthread_mutex_lock(&pkcs11mutex);
        
        /* If CRYPTOKI is not initialized, do not clean up */
        if (!initialized) {
                (void) pthread_mutex_unlock(&pkcs11mutex);
                return;
        }
        
        (void) finalize_routine(NULL_PTR);
        
        (void) pthread_mutex_unlock(&pkcs11mutex);
}