2016-05-18 23 views
0

Gibt es eine Möglichkeit, wie ich 64-Bit-Java-Unterstützung PKCS11-Modul machen kann?Unterstützung für PKCS11 auf 64-Bit-JAVA

PKCS11-Modul wird auf 32-Bit-Java unterstützt und es funktioniert auch gut. Mein Signierprozess hat immer keinen Speicherplatz mehr, wenn ich das 32-Bit-Java verwende. Ich habe derzeit 128 GB Ram, also würde ich gerne mehr als 4 GB für meinen Signing-Prozess zuweisen, die nicht auf 32-Bit-Version möglich ist.

+0

vergleichen https://docs.oracle.com/javase/7/docs/technotes/guides/security/p11guide.html#Requirements und https://docs.oracle.com/javase/8/docs/technotes/ guides/security/p11guide.html # Anforderungen sollten Sie versuchen, Java 8 – zapl

+0

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

+2

Warum tun hast du keinen Speicher mehr? Ist der Signiervorgang wirklich so speicherintensiv? – Kayaman

Antwort

0

Zunächst sollten Sie sich ansehen, warum der Speicherprozess ist so intensiv. Es könnte sein, dass Sie in der Lage sind, das Hashing von der Operation mit dem privaten Schlüssel (Auffüllen, modulare Potenzierung, Kodierung) herauszufiltern. Dass der Signiervorgang so viel Speicherbedarf hat, deutet darauf hin, dass etwas nicht stimmt. Es könnte so einfach sein wie Signature#update anstelle von Signature#doFinal direkt aufrufen.

Wie für die 32-Bit-DLL, nein, Sie können nicht nur das in eine 64-Bit-Anwendung wie die JVM laden. Schauen Sie beispielsweise here, um zu sehen, dass dies nicht funktionieren würde. Es gibt natürlich Wege um es herum; Erstellen Sie einen separaten 64-Bit-Prozess, verbinden Sie sich dazu mit Ihrer eigenen SignatureSpi-Klasse in Ihrem eigenen Java-Provider (der mit einem von Oracle bereitgestellten Schlüssel signiert werden muss). Unnötig zu sagen, das ist eine Menge Arbeit, um etwas zu reparieren, das einfach funktionieren sollte.

Es ist natürlich eine Schande, alle diese Probleme zu durchlaufen, während Sie ein sehr High-End-System haben ohne eine gültige Upgrade-Strategie, mit einer veralteten Version von Java. Sie sollten sich darauf konzentrieren, das zuerst zu beheben. Sie sollten sich auch fragen, warum Sie kein 64-Bit-PKCS # 11 .dll für Ihre Situation bekommen können.