ユーザーレベルのプロバイダを開発する開発者は、次の点に留意する必要があります。
プロバイダをスタンドアロンとして設計します。プロバイダ共有オブジェクトはアプリケーションのリンク先になるような完全なライブラリでなくてもかまいませんが、必要なシンボルはすべてプロバイダ内に存在している必要があります。プロバイダが dlopen(3C) によって RTLD_GROUP モードおよび RTLD_NOW モードでオープンされることを前提にしてください。
PKCS #11 Cryptoki 実装を共有オブジェクトとして作成します。コンシューマアプリケーションに依存しないですむように、この共有オブジェクトには必要なシンボルが含まれている必要があります。
データクリーンアップ用の _fini() ルーチンを提供することを強くお勧めします。ただし、必須ではありません。この方法を使用すると、アプリケーションまたは共有ライブラリが libpkcs11 とほかのプロバイダライブラリを同時に読み込む場合に、複数の C_Finalize() 呼び出し間で衝突が発生するのを防ぐことができます。「ユーザーレベルのプロバイダにおけるデータクリーンアップ衝突の回避」を参照してください。
Sun Microsystems, Inc. に証明書を申請します。「プロバイダに署名するための証明書を要求するには」を参照してください。
証明書と elfsign を使ってバイナリに署名します。「プロバイダに署名するには」を参照してください。
Sun の規約に従って共有オブジェクトをパッケージ化します。付録 F 暗号化プロバイダのパッケージ化と署名を参照してください。