Léame.txt original
Este proyecto está obsoleto; utilice xipki/ipkcs11wrapper (preferido) o xipki/jpkcs11wrapper en su lugar.
JRE / JDK 8 (compilación 162+) o superior
experto
<dependency> <groupId>org.xipki.iaik</groupId> <artifactId>sunpkcs11-wrapper</artifactId> <version>1.4.10</version> </dependency>
O copie el siguiente archivo jar a su classpath:
sunpkcs11-wrapper-1.4.7.jar
Para usar pkcs11wrapper en JDK 17 o superior, agregue la siguiente opción de Java:
--add-exports=jdk.crypto.cryptoki/sun.security.pkcs11.wrapper=ALL-UNNAMED
Configure la biblioteca y el PIN de su módulo HSM en el archivo example/data/pkcs11.properties
.
mvn test
Para activar las pruebas de velocidad utilice -PspeedTests
De forma predeterminada, la prueba de velocidad se ejecutará con 2 subprocesos; puede cambiar el valor mediante la propiedad de Java speed.threads
, por ejemplo, -Dspeed.threads=5
para usar 5 subprocesos.
De forma predeterminada, la prueba de velocidad tardará 3 segundos; puede cambiar el valor mediante la propiedad de Java speed.duration
, por ejemplo, -Dspeed.duration=10s
durante 10 segundos.
No se requiere biblioteca externa
Requiere OpenJDK u Oracle Java Runtime 1.8 o superior
Soporte PKCS#11 versión 2.40
Soporte EdDSA Ed25519 (Generación de firma y par de claves)
Puerto de mikma/pkcs11wrapper a este proyecto
Para *SecretKey
, utilice en su lugar el constructor ValuedSecretKey(long keyType)
, por ejemplo, utilice new ValuedSecretKey(PKCS11Constants.CKK_AES)
para AES SecretKey.
Para ECDSAPrivateKey
y ECDSAPublicKey
, utilice ECPrivateKey
y ECPublicKey
en su lugar.
Se cambia el nombre de iaik.pkcs.pkcs11.objects.Object
a iaik.pkcs.pkcs11.objects.PKCS11Object
.
Token.closeAllSession()
no se puede admitir, ya que no se admite en el JNI subyacente (proveedor SunPKCS11 de JDK). Administre su sesión usted mismo. Puede cerrar una sola sesión mediante Session.closeSession()
.
A diferencia del contenedor PKCS#11 original, solo llamamos Module.initialize()
una vez por .so/.dll nativo. Una vez que se ha llamado Module.finalize(Object)
, el módulo ya no se puede inicializar.