这就是我想要做的。我有一个带有一些证书的硬件 token ,我正在编写一个 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);
效果很好,我可以获得证书和一切。现在我想在 64 位机器上做同样的事情。但是我正在尝试使用 64 位 jre6 库并且缺少 SunPKCS11 jar 文件 (位于 {java.home}/lib/ext
。因此我无法创建 SunPKCS11 对象。我的你的问题是,我现在该怎么办?如何使用 64 位 Java 库访问 token 上的证书?有人为此类任务编写了 64 位包装器吗?
最佳答案
PKCS11 支持未实现,因为无法测试该库(无论如何)。
不过,这在 Java 8 中有所改变。自 J8b49 起,包含一个 64 位版本。 看: http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6880559
关于java - 在 64 位机器上访问硬件 PKCS11 token ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8056818/