2016-05-18 18 views
0

64ビットJavaでPKCS11モジュールをサポートする方法はありますか?64ビットJavaでのPKCS11のサポートJAVA

PKCS11モジュールは32ビットJavaでサポートされていますが、正常に動作します。 32ビットのJavaを使用すると、私の署名プロセスは常にメモリ不足になります。私は現在128GBのRAMを持っているので、32ビット版では不可能な署名プロセスに4GB以上を割り当てたいと思っています。

+0

https://docs.oracle.com/javase/7/docs/technotes/guides/security/p11guide.html#Requirementsとhttps://docs.oracle.com/javase/8/docs/technotes/を比較してください。ガイド/セキュリティ/ p11guide.html#必要なものJava 8を試す必要があります。 – zapl

+0

参照:http://stackoverflow.com/questions/8056818/accessing-hardware-pkcs11-token-on-a-64-bit-machine – Eric

+2

なぜですかあなたは記憶がなくなりますか?署名プロセスは実際にそのメモリを集中的に使用していますか? – Kayaman

答えて

0

まず、を参照する必要があります。なぜメモリプロセスが集中するのですか。それはあなたがプライベートキー(パディング、モジュラ累乗、エンコーディング)での操作からハッシングを除外することができる可能性があります。署名プロセスが非常に多くのメモリを必要とすることは、何かが間違っていることを示します。それはSignature#doFinalの代わりにSignature#updateを直接呼び出すのと同じくらい単純かもしれません。

32ビットのDLLについては、JVMなどの64ビットアプリケーションにはロードできません。たとえば、これが機能しないことを確認するにはhereを見てください。もちろんその周りには方法があります。独立した64ビット・プロセスを作成し、独自のJavaプロバイダの独自のSignatureSpiクラスを使用して接続します(Oracleが提供するキーを使用して署名する必要があります)。言うまでもなく、それはちょうどうまくいくはずのものを修正するための多くの仕事です。

非常にハイエンドのシステムを持っている間は、有効なアップグレード方法を使用していない間に、Javaの非推奨バージョンを使用してこの問題をすべて解決するのは残念です。最初にそれを修正することに焦点を当てるべきです。あなたの状況に合わせて64ビットPKCS#11 .dllを手に入れることができない理由も疑問です。

関連する問題