PERMISO Y EXENCIÓN DE RESPONSABILIDAD En este sitio web aparecen programas que pueden ser descargados. Estos programas están sujetos a derechos de reproducción y su dueño reclama derecho exclusivo sobre estos programas. El propietario de los programas que usted se descarga en este sitio web puede aparecer indicado en los ficheros READ-ME o dentro del código fuente. Por esta nota se permite el uso, copia, modificación y distribución de estos programas y su código fuente para uso no comercial y sin pago alguno, siempre que el dueño de los derechos u otras personas que contribuyan no se usen con fines publicitarios sin un previo permiso por escrito. El dueño de los derechos y las personas que han contribuido no garantizan que estos programas sean apropiados para uso alguno. Estos programas se distribuyen "tal cual" sin garantía explícita o implícita, incluyendo sin limitación las garantías implícitas de comerciabilidad y adecuación a un uso especifico. En ningún caso, el autor y los que han contribuido a estos programas, serán responsables de ningún daño directo, indirecto, incidental, especial, punitivo o consecuente causados por los programas (incluyendo sin limitación la pérdida de uso, datos, ganancias o interrupción de negocios) sea cual fuera su causa y bajo cualquier teoría de responsabilidad. AcceptCancel
Este ejemplo tiene como objetivo validar la firma del documento que se ha realizado en el ejemplo de Generación de una firma XML. Para la comprensión de este ejemplo se recomienda haber entendido previamente el ejemplo de Verificación de una firma CMS/PKCS#7.
Para poder probar este ejemplo se debe descargar el archivo sampleAxis7.zip y seguir las instrucciones que se encuentran en Configuración del entorno.
El archivo descargado ya contiene una firma a verificar, pero si se desea se puede cambiar este archivo por el generado en el ejemplo Generación de una firma XML para comprobar la validez de la firma generada.
Este ejemplo es muy similar al de Verificación de una firma CMS/PKCS#7 aplicándolo al perfil XADES.
VerifyRequest vr = new VerifyRequest();
vr.setProfile(new URI(PROF_VERIFY_XADES));
Dado que la firma generada es detached, en la petición se deben incluir los datos del archivo firmado y de la firma. Por un lado se introducen los datos de la firma, en un objeto de tipo SignatureObject y en este caso codificados en binario. Además de los datos también se indica que el formato de la firma introducida es CMS.
SignatureObject sobj = new SignatureObject();
Base64Binary b64bin = new Base64Binary();
b64bin.set_value(Util.readBinaryFile(path_in + signname));
sobj.setBase64XMLSignature(b64bin);
vr.setSignatureObject(sobj);
Los datos del archivo firmado se introducen en la petición como InputDocuments, también codificados en Base64 dentro de un objeto de tipo Document.
InputDocuments idoc = new InputDocuments();
Document doc = new Document();
doc.setBase64XML(Util.readBinaryFile(path_in + filename));
idoc.setDocument(doc);
vr.setInputDocuments(idoc);
Una vez se han introducido todos los datos en la petición se invoca la operación verify() que envía la petición al host y recoge la respuesta en un objeto VerifyResponse.
VerifyResponse vrs = bindingDsv.verify(vr);
Si se ejecuta el ejemplo se obtendrá una respuesta como la siguiente.
** RESPONSE **
---------------------
Major: urn:oasis:names:tc:dss:1.0:resultmajor:Success
Minor: urn:oasis:names:tc:dss:1.0:resultminor:ValidSignature_OnAllDocuments
DN: CN=Dave, OU=Demo, O=TrustedX, C=ES
Issuer Trust Level: 0
Issuer Trust Label: Administration
|