【问题标题】:Support for PKCS11 on 64 bit JAVA在 64 位 JAVA 上支持 PKCS11
【发布时间】:2016-05-18 08:19:43
【问题描述】:

有什么方法可以让 64 位 java 支持 PKCS11 模块?

32 位 Java 支持 PKCS11 模块,它也可以正常工作。当我使用 32 位 Java 时,我的签名过程总是内存不足。我目前有 128gb 内存,所以我想为我的签名过程分配超过 4gb 的内存,这在 32 位版本上是不可能的。

【问题讨论】:

标签: java digital-signature pkcs#11


【解决方案1】:

首先,您应该了解为什么内存过程如此密集。可能是您能够使用私钥(填充、模幂运算、编码)从操作中提取散列。签名过程占用如此多的内存表明出现了问题。可以像直接调用Signature#update 而不是Signature#doFinal 一样简单。

至于 32 位 .dll,不,您不能只将其加载到 64 位应用程序(例如 JVM)中。例如,看看here 看看这不起作用。当然有办法解决它。创建一个单独的 64 位进程,使用您自己的 Java 提供程序中的 SignatureSpi 类连接到该进程(需要使用 Oracle 提供的密钥进行签名)。不用说,要修复一些应该可以正常工作的东西,需要做很多工作。

当您拥有一个非常高端的系统没有有效的升级策略,使用已弃用的 Java 版本时,遇到所有这些麻烦当然是一种耻辱。你应该首先专注于解决这个问题。您还应该想知道为什么您的情况无法获得 64 位 PKCS#11 .dll

【讨论】:

    猜你喜欢
    • 2015-03-21
    • 1970-01-01
    • 2013-03-27
    • 2016-05-12
    • 1970-01-01
    • 2018-04-24
    • 1970-01-01
    • 2019-11-12
    • 1970-01-01
    相关资源
    最近更新 更多