在64位计算机上访问硬件PKCS11令牌

Otr*_*tra 8 java certificate pkcs#11 32bit-64bit

所以这就是我想要做的.我有一个硬件令牌,上面有一些证书,我正在编写一个Java应用程序来尝试访问这些证书.我在jre6中使用了SunPKCS11库来获取Windows 32位机器.这是我访问证书的一小部分示例:

String configName = "pkcs.cnf"
String PIN = "123456";
Provider p = new sun.security.pkcs11.SunPKCS11(configName);
Security.addProvider(p);
KeyStore keyStore = KeyStore.getInstance("PKCS11");
char[] pin = PIN.toCharArray();
keyStore.load(null, pin);
Run Code Online (Sandbox Code Playgroud)

它工作得很好,我能够获得证书和一切.现在我试图在64位机器上做同样的事情.但是我试图使用64位jre6库,而且缺少SunPKCS11 jar文件(located in {java.home}/lib/ext.因此,我无法创建SunPKCS11对象.我的问题是,我现在该怎么办?如何使用64位Java库访问令牌上的证书?是否有人为这样的任务写了64位包装器?

Cal*_*lon 4

PKCS11 支持未实现,因为无法测试该库(无论如何)。

不过,这种情况在 Java 8 中发生了变化。自 J8b49 起,包含了 64 位版本。请参阅: https ://bugs.java.com/bugdatabase/view_bug?bug_id=6880559