He traceado todo el código siguiendo la pila de la excepción, y el asunto es rarísimo, porque el error según se lee en la excepción, parece que es de la clave privada, pero la clave llega intacta a
sap.setCrypto((PrivateKey) pk, chain, null, PdfSignatureAppearance.VERISIGN_SIGNED); incluso le he hecho un casting por si acaso, y además es la misma que se usa en la primera vez que se firma, que sí funciona. La verdad que no tengo ni idea de que puede ser. También he buscado algo por internet, pero nada. Ojalá alguien sepa algo!!! Porque de otra manera me voy a tener que dedicar a reiniciar el navegador cada vez que quiera firmar :-S Muchas Gracias!!! Rafa Quoting Ricardo Borillo <[email protected]>: > Hola Rafael, > > ¿Qué versión de CryptoApplet utilizas? > ¿Te pasa lo mismo con el test que tenemos publicado? > > http://proyectostic.uji.es/pr/cryptoapplet/samples/v2.1.0/test.html > > --- > Salut, > ==================================== > Ricardo Borillo Domenech > http://xml-utils.com > > > > 2010/3/2 <[email protected]>: >> Muy buenas a todos, >> >> Estoy usando CryptoApplet en una aplicación y ya lo tengo >> perfectamente integrado en el xhtml y con las funciones JavaScript >> necesarias, y me va muy bien, pero tengo un problema que no se de que >> puede ser, lo explico. >> >> El caso es que al acceder a la web en cuestión, se carga el applet >> (aparece la consola de Java), y me deja firmar la primera vez >> correctamente y sin problemas, por cierto, utilizo la función >> signDataUrlToUrl(urlIn, urlOut). >> Pero al intentar firmar la segunda vez consecutivamente me aparece la >> siguiente excepción con el mensaje "No se ha podido calcular la >> firma". Sin tocar absolutamente nada, la segunda vez que intento >> firmar consecutivamente me aparece eso. >> >> La única solución es volver a cargar el applet "completamente desde >> cero", es decir, no me vale recargar la página, porque el applet ya >> está cargado, tengo que cerrar el navegador y volverlo a arrancar, o >> cambiar de página y esperar a que el applet (consola de Java) se cierre. >> >> Espero haberme explicado bien, ¿alguien tiene alguna pista de lo que >> puede pasar? >> >> Muchas gracias!!! >> >> Rafa >> >> ***********************EXCEPCION********************************************** >> >> Using provider: SunPKCS11-NSS >> ExceptionConverter: java.security.InvalidKeyException: Private key >> must be instance of RSAPrivate(Crt)Key or have PKCS#8 encoding >> at >> sun.security.pkcs11.P11RSAKeyFactory.implTranslatePrivateKey(P11RSAKeyFactory.java:84) >> at >> sun.security.pkcs11.P11KeyFactory.engineTranslateKey(P11KeyFactory.java:115) >> at >> sun.security.pkcs11.P11KeyFactory.convertKey(P11KeyFactory.java:48) >> at >> sun.security.pkcs11.P11Signature.engineInitSign(P11Signature.java:326) >> at >> java.security.Signature$Delegate.engineInitSign(Signature.java:1095) >> at java.security.Signature.initSign(Signature.java:480) >> at com.lowagie.text.pdf.PdfPKCS7.<init>(PdfPKCS7.java:420) >> at >> com.lowagie.text.pdf.PdfSigGenericPKCS.setSignInfo(PdfSigGenericPKCS.java:106) >> at >> com.lowagie.text.pdf.PdfSignatureAppearance.preClose(PdfSignatureAppearance.java:928) >> at >> com.lowagie.text.pdf.PdfSignatureAppearance.preClose(PdfSignatureAppearance.java:847) >> at com.lowagie.text.pdf.PdfStamper.close(PdfStamper.java:183) >> at >> es.uji.security.crypto.pdf.PDFSignatureFactory.formatSignature(PDFSignatureFactory.java:215) >> at >> es.uji.security.ui.applet.SignatureThread.run(SignatureThread.java:298) >> DEBUG thread-sig-1 es.uji.security.ui.applet.SignatureThread >> [18:37:56,453] - The signature is not valid >> java.lang.NullPointerException >> at >> es.uji.security.ui.applet.SignatureThread.run(SignatureThread.java:315) >> >> ****************************************************************************** >> >> _______________________________________________ >> CryptoApplet mailing list >> [email protected] >> http://llistes.uji.es/mailman/listinfo/cryptoapplet >> >> > _______________________________________________ > CryptoApplet mailing list > [email protected] > http://llistes.uji.es/mailman/listinfo/cryptoapplet > _______________________________________________ CryptoApplet mailing list [email protected] http://llistes.uji.es/mailman/listinfo/cryptoapplet
