Paúl Santapau escribió:
Hola Asier, 

  De momento, la única forma de añadir pkcs#11 adicionales es mediante el menú 
de usuario o modificando el applet desde la programación. Para la versión 2.1 
vamos a intentar aplicar el código proporcionado por Rafael que se encarga de 
recorer el secmod.db de Mozilla Firefox precargando todos los pkcs#11 que allí 
se encuentre. 

En cuanto al error, parece que esta ruta no exista:  
  C:\WINDOWS\system32\aetpkss1.dll
¿Es posible?
  
Sigo con las pruebas.

Parece ser que había algún problema con los certificados y los slots del proveedor criptográfico que he conseguido descubrir añadiendo -Djava.security.debug=sunpkcs11,pkcs11 a la JVM para obtener una traza completa.

Una vez reinstalados los drivers obtengo lo siguiente tras teclear el PIN:
Returning ksh= {mozilla=es.uji.dsign.crypto.keystore.pkcs11keyst...@1bb326c}
You chose to open this file: C:\WINDOWS\system32\aetpkss1.dll
_pk11LibPath: C:\WINDOWS\system32\aetpkss1.dll
PKCS11KeyStore
actionPerformed()
java.security.KeyStoreException: PKCS11 not found
    at java.security.KeyStore.getInstance(Unknown Source)
    at es.uji.dsign.crypto.keystore.PKCS11KeyStore.load(PKCS11KeyStore.java:96)
    at es.uji.dsign.crypto.keystore.PKCS11KeyStore.load(PKCS11KeyStore.java:79)
    at es.uji.dsign.applet2.EventActionHandler$7.actionPerformed(EventActionHandler.java:279)
    at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
[ ... ]

Así que ahora ya carga el proveedor criptográfico, pero no consigo iniciar una sesión. He creado un pequeño programa Java con el siguiente código:
try {
    PKCS11KeyStore pkStore= new PKCS11KeyStore("c:\\windows\\system32\\aetpkss1.dll");
    pkStore.load("xxxxx".toCharArray());
    Enumeration enumeration = pkStore.aliases();
    while (enumeration.hasMoreElements()) {
        System.out.println(enumeration.nextElement());
    }
} catch (Exception e) {
    System.out.println(e.toString());
}

Que replica el funcionamiento del applet y al ejecutarlo en local sí funciona, aunque misteriosamente me pide el PIN (aunque se lo estoy pasando explícitamente en el método load()) por lo que podría ser un problema de permisos, aunque no consigo saber cual.

Saludos
_______________________________________________
CryptoApplet mailing list
[email protected]
http://llistes.uji.es/mailman/listinfo/cryptoapplet

Responder a