原自述文件.txt
该项目已弃用,请使用 xipki/ipkcs11wrapper(首选) 或 xipki/jpkcs11wrapper 代替。
JRE / JDK 8(版本 162+)或更高版本
梅文
<dependency> <groupId>org.xipki.iaik</groupId> <artifactId>sunpkcs11-wrapper</artifactId> <version>1.4.10</version> </dependency>
或者将以下 jar 文件复制到您的类路径:
sunpkcs11-wrapper-1.4.7.jar
要在 JDK 17 或更高版本中使用 pkcs11wrapper,请添加以下 java 选项:
--add-exports=jdk.crypto.cryptoki/sun.security.pkcs11.wrapper=ALL-UNNAMED
在文件example/data/pkcs11.properties
中配置 HSM 模块的库和 PIN。
mvn test
要激活速度测试,请使用-PspeedTests
默认情况下,速度测试将使用 2 个线程运行,您可以通过 Java 属性speed.threads
更改该值,例如-Dspeed.threads=5
以使用 5 个线程。
默认情况下,速度测试需要 3 秒,您可以通过 Java 属性speed.duration
更改该值,例如-Dspeed.duration=10s
为 10 秒。
不需要外部库
需要 OpenJDK 或 Oracle Java Runtime 1.8 或更高版本
支持 PKCS#11 版本 2.40
支持EdDSA Ed25519(签名和密钥对生成)
从 mikma/pkcs11wrapper 移植到该项目
对于*SecretKey
,请使用构造函数ValuedSecretKey(long keyType)
代替,例如对 AES SecretKey 使用new ValuedSecretKey(PKCS11Constants.CKK_AES)
。
对于ECDSAPrivateKey
和ECDSAPublicKey
,请改用ECPrivateKey
和ECPublicKey
。
iaik.pkcs.pkcs11.objects.Object
重命名为iaik.pkcs.pkcs11.objects.PKCS11Object
。
无法支持Token.closeAllSession()
,因为底层 JNI(JDK 的 SunPKCS11 提供程序)不支持它。请自行管理您的会话。您可以通过Session.closeSession()
关闭单个会话。
与原始 PKCS#11 包装器不同,我们仅对每个本机 .so/.dll 调用一次Module.initialize()
。一旦调用了Module.finalize(Object)
,模块就不能再被初始化了。