/usr/lib/security/pkcs11_kernel.so /usr/lib/security/64/pkcs11_kernel.so
pkcs11_kernel.so オブジェクトは、非公開インタフェースを使用してカーネル暗号化フレームワークと通信することで、RSA Security Inc. の PKCS#11 暗号化トークンインタフェース (Cryptoki) v2.20 仕様を実装します。
一意のハードウェアプロバイダはそれぞれ 1 つの PKCS#11 スロットで表されます。カーネル暗号化フレームワークのハードウェアプロバイダを備えていないシステムでは、この PKCS#11 ライブラリにスロットは存在しません。
このライブラリによって提供される PKCS#11 メカニズムは、使用可能なハードウェアプロバイダによって決まります。
アプリケーション開発者は、pkcs11_kernel.so に直接リンクするのではなく、libpkcs11.so にリンクするようにしてください。libpkcs11 (3LIB) を参照してください。
libpkcs11 (3LIB) のリストに示されている標準の PKCS#11 関数は、次のものを除きすべて実装されています。
C_DecryptDigestUpdate C_DecryptVerifyUpdate C_DigestEncryptUpdate C_GetOperationState C_InitToken C_InitPIN C_SetOperationState C_SignEncryptUpdate C_WaitForSlotEvent
これらの関数を呼び出すと、CKR_FUNCTION_NOT_SUPPORTED が返されます。
バッファーは 2M バイトを超えることはできません。たとえば、C_Encrypt() は、平文用の 2M バイトのバッファーと暗号化テキスト用の 2M バイトのバッファーを使用すると呼び出すことができます。
C_FindObjects() の呼び出しで取得できるオブジェクトハンドルの最大数は 512 です。
暗号化処理に使用できるカーネルメモリーの最大量は、project.max-crypto-memory リソース制御によって制限されます。カーネル内のバッファーおよびセッション関連の構造体の割り当ては、このリソース制御に対してチャージされます。
実装されている各関数の戻り値は、RSA PKCS#11 v2.20 仕様で定義されています。http://www.rsasecurity.com を参照してください。
属性についての詳細は、attributes(5) を参照してください。
|
cryptoadm(1M), rctladm (1M), libpkcs11 (3LIB), attributes (5), pkcs11_softtoken (5)
RSA PKCS#11 v2.20 http://www.rsasecurity.com
アプリケーションが PKCS#11 スロットに対してセッションを開いていると、対応するハードウェアプロバイダのドライバは読み込み解除できなくなります。ハードウェアプロバイダのドライバを読み込み解除できるようにするには、そのプロバイダに対して PKCS#11 セッションを開いているアプリケーションを管理者が閉じる必要があります。