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

Responder a