Fichier Lisezmoi.txt d'origine
Ce projet est obsolète, veuillez utiliser xipki/ipkcs11wrapper (préféré) ou xipki/jpkcs11wrapper à la place.
JRE / JDK 8 (build 162+) ou supérieur
Maven
<dependency> <groupId>org.xipki.iaik</groupId> <artifactId>sunpkcs11-wrapper</artifactId> <version>1.4.10</version> </dependency>
Ou copiez le fichier jar suivant dans votre chemin de classe :
sunpkcs11-wrapper-1.4.7.jar
Pour utiliser pkcs11wrapper dans JDK 17 ou supérieur, veuillez ajouter l'option Java suivante :
--add-exports=jdk.crypto.cryptoki/sun.security.pkcs11.wrapper=ALL-UNNAMED
Configurez la bibliothèque et le code PIN de votre module HSM dans le fichier example/data/pkcs11.properties
.
mvn test
Pour activer les tests de vitesse, utilisez -PspeedTests
Par défaut, le test de vitesse s'exécutera avec 2 threads, vous pouvez modifier la valeur via la propriété Java speed.threads
, par exemple -Dspeed.threads=5
pour utiliser 5 threads.
Par défaut, le test de vitesse prendra 3 secondes, vous pouvez modifier la valeur via la propriété Java speed.duration
, par exemple -Dspeed.duration=10s
pendant 10 secondes.
Aucune bibliothèque externe n'est requise
Nécessite OpenJDK ou Oracle Java Runtime 1.8 ou supérieur
Prise en charge de PKCS#11 version 2.40
Prise en charge EdDSA Ed25519 (génération de signature et de paire de clés)
Portage de mikma/pkcs11wrapper vers ce projet
Pour *SecretKey
, veuillez utiliser le constructeur ValuedSecretKey(long keyType)
à la place, par exemple, utilisez new ValuedSecretKey(PKCS11Constants.CKK_AES)
pour AES SecretKey.
Pour ECDSAPrivateKey
et ECDSAPublicKey
, veuillez utiliser ECPrivateKey
et ECPublicKey
à la place.
iaik.pkcs.pkcs11.objects.Object
est renommé iaik.pkcs.pkcs11.objects.PKCS11Object
.
Token.closeAllSession()
ne peut pas être pris en charge, car il n'est pas pris en charge dans le JNI sous-jacent (le fournisseur SunPKCS11 du JDK). Merci de gérer vous-même votre séance. Vous pouvez fermer une seule session par Session.closeSession()
.
Contrairement au wrapper PKCS#11 d'origine, nous n'appelons Module.initialize()
qu'une seule fois par .so/.dll natif. Une fois Module.finalize(Object)
appelé, le module ne peut plus être initialisé.