我们使用中间件来构建安装在JDK 1.6.30 64位设置上的软件应用程序。
我们最近要求使用USB令牌签署某些请求。我搜索了一下,发现Sun以SunPKCS11的名义提供了一个实现。但是,只有在Java 8之前,才能在32位JRE中使用它。
我想知道是否有任何可供选择的非商业实现,我可以使用。
请注意,升级Java或更改架构不是一种选择,因为对中间件的依赖性很高。
答案 0 :(得分:1)
它不适用于jdk 1.6(仅适用于Windows),但适用于Java 8 64位。有关详细信息,请参阅此answer
请参阅此链接:
在32位和64位Java进程中,Solaris(SPARC和x86)和Linux(x86)支持Sun PKCS#11提供程序。由于缺少合适的PKCS#11库,它在32位Windows(x86)上也受支持,但目前不在64位Windows平台上。
答案 1 :(得分:0)
从某些研究中可以看出,IAIK wrapper for PKCS#11也与64位兼容。您可以使用它来签名,但IAIK不提供免费的JCE兼容提供程序。这意味着您可以使用它直接调用下面的PKCS#11库,但是您将失去与围绕JCE构建的标准Java功能的所有兼容性。 Sun和IAIK PKCS#11 提供程序构建在这个免费库之上。