Hola, estoy siguiendo tu recomendación y poniendo
document.CryptoApplet.setSignatureOutputFormat("JXADES"); para la firma de
documentos. El problema que tengo es que a la hora de firmar me da un error que
parece que tiene que ver con el formato del fichero a firmar.
Las características que estoy utilizando para la firma son:
document.CryptoApplet.setInputDataEncoding("PLAIN");
document.CryptoApplet.setOutputDataEncoding("BASE64");
document.CryptoApplet.setSignatureOutputFormat("JXADES"); // if it isn't pdf
file then do XADES sign
document.CryptoApplet.setXadesSignerRole("");
y el error que obtengo es:
Certificate Alias: CN=AC Camerfirma Certificados Camerales, O=AC Camerfirma SA,
SERIALNUMBER=A82743287, L=Madrid (see current address at
www.camerfirma.com/address), [email protected], C=ES
Serial=13474770085092524033
DEBUG thread-sig-1 es.uji.security.ui.applet.SignatureThread [17:36:11,208] -
Loading signature format: es.uji.security.crypto.jxades.JXAdESSignatureFactory
DEBUG thread-sig-1 es.uji.security.ui.applet.SignatureThread [17:36:11,208] -
Selected a digital signature certificate
DEBUG thread-sig-1 es.uji.security.ui.applet.io.URLInputParams [17:36:11,208] -
Retrieving data from file:///D:\Información
general\plantillas\XX.XX_reunion_yyyymmdd.doc
DEBUG thread-sig-1 es.uji.security.ui.applet.io.URLInputParams [17:36:11,210] -
Retrieved 90112 bytes
DEBUG thread-sig-1 es.uji.security.ui.applet.SignatureThread [17:36:11,210] -
Encoding: PLAIN
DEBUG thread-sig-1 es.uji.security.ui.applet.SignatureThread [17:36:11,210] -
Signing data
ERROR thread-sig-1 es.uji.security.ui.applet.SignatureThread [17:36:11,273] -
<html><font color='red'>No se ha podido calcular la firma</font></html>
com.sun.org.apache.xerces.internal.impl.io.MalformedByteSequenceException:
Invalid byte 2 of 2-byte UTF-8 sequence.
at
com.sun.org.apache.xerces.internal.impl.io.UTF8Reader.invalidByte(Unknown
Source)
at com.sun.org.apache.xerces.internal.impl.io.UTF8Reader.read(Unknown
Source)
at
com.sun.org.apache.xerces.internal.impl.XMLEntityScanner.load(Unknown Source)
at
com.sun.org.apache.xerces.internal.impl.XMLEntityScanner.arrangeCapacity(Unknown
Source)
at
com.sun.org.apache.xerces.internal.impl.XMLEntityScanner.skipString(Unknown
Source)
at
com.sun.org.apache.xerces.internal.impl.XMLVersionDetector.determineDocVersion(Unknown
Source)
at
com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Unknown
Source)
at
com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Unknown
Source)
at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(Unknown
Source)
at com.sun.org.apache.xerces.internal.parsers.DOMParser.parse(Unknown
Source)
at
com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderImpl.parse(Unknown
Source)
at javax.xml.parsers.DocumentBuilder.parse(Unknown Source)
at
es.uji.security.crypto.jxades.JXAdESSignatureFactory.formatSignature(JXAdESSignatureFactory.java:73)
at
es.uji.security.ui.applet.SignatureThread.run(SignatureThread.java:298)
DEBUG thread-sig-1 es.uji.security.ui.applet.AppHandler [17:36:11,274] - Call
JavaScript me
Lo curioso es que cogiendo un fichero XML que previamente había firmado si
realiza correctamente la firma. Pero si cojo el mismo fichero XML antes de
haberlo firmado entonces no realiza la firma correctamente.
No tengo muy claro si estoy parametrizando mal el applet o me estoy dejando
algo evidente.
Cualquier ayuda será bienvenida.
Un saludo y gracias.
Iván Franco Rabuñal
Director de ProyectosProject Manager
[email protected]
Polígono Industrial A Granxa
Paralela 1 (calle D)Edificio de Piedra
36400 O Porriño (Pontevedra)
Tel: +34 986342774
Fax:+34 986342298
Este mensaje, y en su caso, cualquier fichero anexo al mismo, puede contener
información confidencial, siendo para uso exclusivo del destinatario. Queda
prohibida su divulgación copia o distribución a terceros sin la autorización
expresa del remitente. Si usted ha recibido este mensaje erróneamente, se ruega
lo notifique al remitente y proceda a su borrado. Gracias por su colaboración.
This message, and in the case of any file annexed to it, can have confidential
information, and it is exclusively for the use of the addressee of the message.
It is strictly forbidden to spread a copy or distribute to third parties,
without the express order of the sender. If you have received this message
mistakenly, we request you to notify to the sender, and please be sure to erase
it. Thank you for your collaboration.
-----Mensaje original-----
De: [email protected]
[mailto:[email protected]] En nombre de Ricardo Borillo
Enviado el: sábado, 14 de agosto de 2010 11:30
Para: Llista de correu per al CryptoApplet
Asunto: Re: [CryptoApplet] Null pointer al intentar firmar con formato XADES
Hola de nuevo,
El valor del setSignatureOutputFormat es "JXADES".
---
Salut,
====================================
Ricardo Borillo Domenech
http://xml-utils.com / http://twitter.com/borillo
2010/8/13 José Luís Vaquero <[email protected]>:
> Pues tienes toda la razon.
>
> En un futuro dispondré de servicio OCSP a si que para el desarrollo de los
> prototipos lo mejor es probar con el DNIE y su correspondiente responder.
>
> BTW: Cual es el parametro que le tengo que pasar a setSignatureOutputFormat
> para XAdES-EPES?? Por que en la pagina de Test de cryptoapplet no encuentro
> esa opcion.
>
> http://projectestic.uji.es/pr/cryptoapplet/samples/v2.1.0/test.html
>
>
> Voy a probar a ponerles el valor OCSP y ver si no me da NPE.
>
> Muchisimas gracias.
>
>
> El 13 de agosto de 2010 13:22, Ricardo Borillo <[email protected]>
> escribió:
>>
>> Hola Jose Luis,
>>
>> Te responderé explicándote los formatos de firma que soporta CryptoApplet
>> :)
>>
>> *. XAdES-X-L con OpenXAdES. Firma completa que incluye sellado de
>> tiempo y verificación del certificado mediante OCSP/CRL. No se pueden
>> generar otros perfiles de XAdES.
>> *. XAdES-EPES con jXAdES. Este tipo de firma sólo añade a la firma
>> básica la política de seguridad. Es la mínima exigida por la
>> administración para facturación electrónica. No incluye ningún sello
>> de tiempo, ni verificación de certificados.
>>
>> Analizando tus requisitos, supongo que el tipo ideal de firma para tu
>> caso es XAdES-T, ya que incluye un timestamp, pero no incluye las
>> respuestas OCSP. El problema es que este tipo de formato no está
>> disponible directamente en CryptoApplet :(
>>
>> Con esto, supongo que la única opción en tu caso es usar el segundo
>> tipo de firma.
>>
>> Si lo que estás haciendo ahora son solo pruebas, lo mejor es utlizar
>> tu DNIe y generar firmas completas X-L ...
>>
>> ---
>> Salut,
>> ====================================
>> Ricardo Borillo Domenech
>> http://xml-utils.com / http://twitter.com/borillo
>>
>>
>>
>> 2010/8/13 José Luís Vaquero <[email protected]>:
>> > Muchas gracias por responder.
>> >
>> > Desgraciadamente no dispongo de un servicio OCSP ni CLR para validar los
>> > certificados todavia. Si les asigno el valor OCSP (o CLR) a esas dos
>> > entradas de configuracion me va a intentar validar el certificado y me
>> > daria
>> > error de "certificate status unknown".
>> >
>> > Segun creia yo, la cosa era asi:
>> > XADES-BES - firma basica
>> > XADES-T - firma basica mas sello de tiempo (activar el sello de tiempo
>> > en el
>> > fichero de configuracion de cryptoapplet)
>> > XADES-X-L - firma basica, sello de tiempo y verificacion de certificado
>> > (activar la verificacion de certificado en el fichero de configuracion
>> > de
>> > cryptoapplet y la de sello de tiempo)
>> >
>> > Por lo que parece necesito aclararme, ¿se me podria responder a estas
>> > dudas?
>> >
>> > ¿Puedo firmar sin sello de tiempo y sin verificacion de certificado? en
>> > caso
>> > afirmativo ¿Como seria la configuracion en cryptoapplet para que no de
>> > NPE?
>> >
>> > ¿Puedo firmar con sello de tiempo pero sin verificacion de certificado?
>> > en
>> > caso afirmativo ¿Como seria la configuracion en cryptoapplet para que no
>> > de
>> > NPE?
>> >
>> > Gracias de nuevo. Un saludo.
>> >
>> > 2010/8/13 Ricardo Borillo <[email protected]>
>> >>
>> >> Hola Jose Luis,
>> >>
>> >> Parece que el NPE se produce por culpa de estos valores de
>> >> configuración:
>> >>
>> >> DIGIDOC_CERT_VERIFIER=
>> >> DIGIDOC_SIGNATURE_VERIFIER=
>> >>
>> >> Estás intentando utilizar la firma XAdES-X-L, y necesitas que el valor
>> >> establecido no sea nulo.
>> >> Lo mejor es que dejes la config por defecto:
>> >>
>> >> DIGIDOC_CERT_VERIFIER=OCSP
>> >> DIGIDOC_SIGNATURE_VERIFIER=OCSP
>> >>
>> >> ---
>> >> Salut,
>> >> ====================================
>> >> Ricardo Borillo Domenech
>> >> http://xml-utils.com / http://twitter.com/borillo
>> >>
>> >>
>> >>
>> >> 2010/8/12 José Luís Vaquero <[email protected]>:
>> >> > En el correo anterior puse un fichero de configuracion erroneo, el
>> >> > que
>> >> > utilizo es el siguiente:
>> >> >
>> >> > ##
>> >> > ## Author: Pa�l Santapau Nebot
>> >> > ## Date: 15-02-08
>> >> > ##
>> >> > ## Description: That is a sample conguration file for the uji
>> >> > ## crypto modules, that should be taken as an example
>> >> > ## and must be modified to fit the specific
>> >> > requierements
>> >> > ## of each case.
>> >> > ##
>> >> > ##
>> >> >
>> >> > ##For Certificates a new protocol has been added, this is
>> >> > keystore://Alias
>> >> >
>> >> > #
>> >> > ##
>> >> > ## (XAdES-X-L) Digidoc related stuff
>> >> > ##
>> >> > #
>> >> >
>> >> > DEFAULT_KEYSTORE=uji.keystore
>> >> >
>> >> > DIGIDOC_OCSP_RESPONDER_COUNT=0
>> >> >
>> >> >
>> >> > #DIGIDOC_OCSP_RESPONDER_URL1=http://des-afirma.redinteradministrativa.es/servidorOcsp/servidorOCSP
>> >> > #DIGIDOC_OCSP_RESPONDER_URL1=http://ocsp.accv.es
>> >> > #DIGIDOC_OCSP_RESPONDER_URL2=http://ocsp.dnie.es
>> >> >
>> >> > SIGN_OCSP_REQUESTS=false
>> >> > DIGIDOC_USE_NONCE=false
>> >> >
>> >> > DIGIDOC_CA_CERTS=10
>> >> > DIGIDOC_CA_CERT1=jar://cagva.pem
>> >> > DIGIDOC_CA_CERT2=jar://rootca.pem
>> >> > DIGIDOC_CA_CERT3=jar://accv-ca2.pem
>> >> > DIGIDOC_CA_CERT4=jar://ACDNIE001.pem
>> >> > DIGIDOC_CA_CERT5=jar://ACDNIE002-SHA1.pem
>> >> > DIGIDOC_CA_CERT6=jar://ACDNIE003-SHA1.pem
>> >> > DIGIDOC_CA_CERT7=jar://ACRAIZDNIE.pem
>> >> > DIGIDOC_CA_CERT8=jar://NisuCa.pem
>> >> > DIGIDOC_CA_CERT9=jar://ujica.pem
>> >> > DIGIDOC_CA_CERT10=jar://fnmt.pem
>> >> >
>> >> > DIGIDOC_OCSP_COUNT=0
>> >> >
>> >> > #DIGIDOC_OCSP1_CN=AV DNIE MPR
>> >> > #DIGIDOC_OCSP1_CERT=jar://AVDNIEMPR.pem
>> >> > #DIGIDOC_OCSP1_CA_CERT=jar://ACDNIE001.pem
>> >> > #DIGIDOC_OCSP1_CA_CN=AC DNIE 001
>> >> >
>> >> > #DIGIDOC_OCSP2_CN=ocsp-gva
>> >> > #DIGIDOC_OCSP2_CERT=jar://ocsp-gva.crt
>> >> > #DIGIDOC_OCSP2_CA_CERT=jar://cagva.pem
>> >> > #DIGIDOC_OCSP2_CA_CN=CAGVA
>> >> >
>> >> > #DIGIDOC_OCSP3_CN=AV DNIE FNMT
>> >> > #DIGIDOC_OCSP3_CERT=jar://DNIEOCSP.pem
>> >> > #DIGIDOC_OCSP3_CA_CERT=jar://ACDNIE001.pem
>> >> > #DIGIDOC_OCSP3_CA_CN=AC DNIE 001
>> >> >
>> >> > #DIGIDOC_OCSP4_CN=ocsp-gva
>> >> > #DIGIDOC_OCSP4_CERT=jar://ocsp-gva-old.crt
>> >> > #DIGIDOC_OCSP4_CA_CERT=jar://cagva.pem
>> >> > #DIGIDOC_OCSP4_CA_CN=CAGVA
>> >> >
>> >> > # OCSP, CRL or none selectors
>> >> > DIGIDOC_CERT_VERIFIER=
>> >> > DIGIDOC_SIGNATURE_VERIFIER=
>> >> >
>> >> > # Set this value to false if you are not adding an ocsp
>> >> > # confirmation to your signatures, otherwise, an exception
>> >> > # will be thrown if the confirmation does not exists.
>> >> > DIGIDOC_DEMAND_OCSP_CONFIRMATION_ON_VERIFY=false
>> >> >
>> >> >
>> >> > # Set this value to 0 if you do not want
>> >> > # compute the tsp.
>> >> >
>> >> > DIGIDOC_TSA_COUNT=1
>> >> >
>> >> > #DIGIDOC_TSA1_CERT=jar://des-tsafirma.pem
>> >> > #DIGIDOC_TSA1_CA_CERT=jar://accv-ca2.pem
>> >> > #DIGIDOC_TSA1_USE_NONCE=false
>> >> > #DIGIDOC_TSA1_ASK_CERT=false
>> >> > #DIGIDOC_TSA1_URL=https://10.252.144.129:8443/tsamap/TspHttpServer
>> >> > #DIGIDOC_TSA1_CN=des-tsafirma.redinteradministrativa.es
>> >> > #DIGIDOC_TSA1_CA_CN=ACCV-CA2
>> >> > #DIGIDOC_TSA1_SN=6e6f33858ec20f91
>> >> > #DIGIDOC_MAX_TSA_TIME_ERR_SECS=60
>> >> >
>> >> > DIGIDOC_TSA1_CERT=jar://tsa1_accv.der
>> >> > DIGIDOC_TSA1_CA_CERT=jar://tsa1_accv.der
>> >> > DIGIDOC_TSA1_USE_NONCE=false
>> >> > DIGIDOC_TSA1_ASK_CERT=false
>> >> > DIGIDOC_TSA1_URL=http://tss.accv.es:8318/tsa
>> >> > DIGIDOC_TSA1_CN=TSA1 ACCV
>> >> > DIGIDOC_TSA1_CA_TSA1 ACCV
>> >> > DIGIDOC_TSA1_SN=45633cf6
>> >> > DIGIDOC_MAX_TSA_TIME_ERR_SECS=60
>> >> >
>> >> >
>> >> >
>> >> >
>> >> > #
>> >> > ##
>> >> > ## Pdf related stuff
>> >> > ##
>> >> > #
>> >> >
>> >> > PDFSIG_REASON=CryptoApplet digital signatures
>> >> > PDFSIG_LOCATION=Spain
>> >> > PDFSIG_CONTACT=Jaume I University
>> >> >
>> >> > PDFSIG_CA_CERTS=9
>> >> > PDFSIG_CA_CERT1=cagva.pem
>> >> > PDFSIG_CA_CERT2=rootca.pem
>> >> > PDFSIG_CA_CERT3=accv-ca2.pem
>> >> > PDFSIG_CA_CERT4=ACDNIE001.pem
>> >> > PDFSIG_CA_CERT5=ACDNIE002-SHA1.pem
>> >> > PDFSIG_CA_CERT6=ACDNIE003-SHA1.pem
>> >> > PDFSIG_CA_CERT7=NisuCa.pem
>> >> > PDFSIG_CA_CERT8=test.pem
>> >> > PDFSIG_CA_CERT9=fnmt.pem
>> >> >
>> >> >
>> >> > #
>> >> > #If false, next line will be ignored
>> >> > #
>> >> > PDFSIG_TIMESTAMPING=false
>> >> > PDFSIG_TSA_URL=http://tss.accv.es:8318/tsa
>> >> >
>> >> >
>> >> > #
>> >> > #If false, next line will be ignored
>> >> > #
>> >> > CMS_TIMESTAMPING=false
>> >> > CMS_TSA_URL=http://tss.accv.es:8318/tsa
>> >> >
>> >> > PDFSIG_VISIBLE_SIGNATURE=false
>> >> > PDFSIG_VISIBLE_AREA_X=0
>> >> > PDFSIG_VISIBLE_AREA_Y=830
>> >> > PDFSIG_VISIBLE_AREA_X2=110
>> >> > PDFSIG_VISIBLE_AREA_Y2=785
>> >> > PDFSIG_VISIBLE_AREA_PAGE=1
>> >> > PDFSIG_VISIBLE_AREA_IMGFILE=uji.jpg
>> >> >
>> >> >
>> >> > _______________________________________________
>> >> > 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
>> >
>> >
>> _______________________________________________
>> 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
_______________________________________________
CryptoApplet mailing list
[email protected]
http://llistes.uji.es/mailman/listinfo/cryptoapplet