このセクションでは、Oracle Solaris 暗号化フレームワークにプラグイン可能な 4 種類のアプリケーションを開発するための要件について説明します。
ユーザーレベルのコンシューマを開発するには、次のすべてを行います。
<security/cryptoki.h> をインクルードします。
すべての呼び出しを PKCS #11 インタフェース経由で行なってください。
libpkcs11.so をリンクします。
ライブラリ内で C_Finalize() 関数を呼び出すべきではありません。
詳細については、ユーザーレベルの暗号化アプリケーションの記述を参照してください。
ユーザーレベルのプロバイダを開発するには、開発者は次の点に留意する必要があります。
プロバイダをスタンドアロンとして設計します。プロバイダ共有オブジェクトはアプリケーションのリンク先になるような完全なライブラリでなくてもかまいませんが、必要なシンボルはすべてプロバイダ内に存在している必要があります。プロバイダが dlopen(3C) によって RTLD_LAZY モードでオープンされることを前提にしてください。
PKCS #11 Cryptoki 実装を共有オブジェクトとして作成します。コンシューマアプリケーションに依存しないですむように、この共有オブジェクトには必要なシンボルが含まれている必要があります。
データクリーンアップ用の _fini() ルーチンを提供することを強くお勧めします。ただし、必須ではありません。この方法を使用すると、アプリケーションまたは共有ライブラリが libpkcs11 とほかのプロバイダライブラリを同時に読み込む場合に、複数の C_Finalize() 呼び出し間で衝突が発生するのを防ぐことができます。
Oracle の規約に従って共有オブジェクトをパッケージ化します。
Oracle Solaris Image Packaging System (IPS) 機能を使用して、Oracle Solaris 11 システムでインストールおよび更新するために、ソフトウェアをパッケージングする方法の詳細については、Oracle Solaris 11.3 でのImage Packaging System を使用したソフトウェアのパッケージ化と配布を参照してください。