原自述文件.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)
,模組就不能再初始化了。