在Java 8中,我们可以执行以下操作:

PKCS11 p11 = PKCS11.getInstance("/usr/local/lib/libsiecap11.so", "C_GetFunctionList", null, false);
long[] slots = p11.C_GetSlotList(true);

但是在Java 9中不推荐使用PKCS11,现在我找不到任何替代方法。

最佳答案

从Java-9 Javadoc:

Java应用程序可以使用现有的JCA和JCE API进行访问
通过PKCS#11提供程序提供的SunPKCS11 token 。

供参考:我比较了Java-8 doc和Java-9 doc,而PKCS#11似乎没有太大区别

编辑:

我在JDK 1.8上运行了Op的代码,当我更改为JDK 11时,我能够执行它,因为缺少Libs,所以出现了以下错误。

缺少库:

 sun.security.pkcs11.wrapper.PKCS11;
 sun.security.pkcs11.wrapper.PKCS11Exception;

我要求您在 github 上打开一个事件,以解决此问题。

09-04 18:35
查看更多