/**
* LICENCIA LGPL:
*
* Esta librería es Software Libre; Usted puede redistribuirlo y/o modificarlo
* bajo los términos de la GNU Lesser General Public License (LGPL)
* tal y como ha sido publicada por la Free Software Foundation; o
* bien la versión 2.1 de la Licencia, o (a su elección) cualquier versión posterior.
*
* Esta librería se distribuye con la esperanza de que sea útil, pero SIN NINGUNA
* GARANTÍA; tampoco las implícitas garantías de MERCANTILIDAD o ADECUACIÓN A UN
* PROPÓSITO PARTICULAR. Consulte la GNU Lesser General Public License (LGPL) para más
* detalles
*
* Usted debe recibir una copia de la GNU Lesser General Public License (LGPL)
* junto con esta librería; si no es así, escriba a la Free Software Foundation Inc.
* 51 Franklin Street, 5º Piso, Boston, MA 02110-1301, USA o consulte
* <http://www.gnu.org/licenses/>.
*
* Copyright 2007 Ministerio de Industria, Turismo y Comercio
*
*/
package es.mityc.firmaJava.ejemplos.xades;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import es.mityc.firmaJava.libreria.xades.ResultadoValidacion;
import es.mityc.firmaJava.libreria.xades.ValidarFirmaXML;
/**
* Clase de ejemplo para realizar la validación de una firma XAdES
* utilizando la librería XADES
*
* @author Ministerio de Industria, Turismo y Comercio
* @version 0.9 beta
*/
public class EjemploXADESValidacion{
private final static String FICHERO_XADES_VALIDO = "out.xml";
private final static String FICHERO_XADES_NO_VALIDO = "out-mal.xml";
public static void main(String[] args) {
EjemploXADESValidacion p = new EjemploXADESValidacion();
System.out.println("\n\nValidando una firma valida:");
p.validarFichero(System.getProperty("user.dir") + "/" + FICHERO_XADES_VALIDO);
System.out.println("-------------------------------------------------------");
System.out.println("\n\nValidando una firma invalida:");
p.validarFichero(System.getProperty("user.dir") + "/" + FICHERO_XADES_NO_VALIDO);
System.out.println("-------------------------------------------------------");
}
/**
* Método que realiza la validación de firma digital XAdES a un fichero y muestra el resultado
* @param fichero
*/
public void validarFichero(String fichero){
// Se declara la estructura de datos que almacenará el resultado de la validación
ResultadoValidacion result = null;
// Se captura el fichero a validar
File file = new File(fichero);
// Se parsea el fichero a validar
byte[] datos= null ;
FileInputStream fis = null;
try
{
fis = new FileInputStream(file) ;
datos= new byte[fis.available()] ;
fis.read(datos) ;
} catch (Exception ex) {
ex.printStackTrace();
} finally {
try {
fis.close();
} catch (IOException e) {
e.printStackTrace();
}
}
// Se instancia el validador y se realiza la validación
try {
ValidarFirmaXML vXml = new ValidarFirmaXML();
result = vXml.validar(datos, null) ;
} catch(Exception e){
e.printStackTrace();
}
// Se muestra por consola el resultado de la validación
boolean isValid = result.isValidate();
System.out.println("-----------------");
System.out.println("--- RESULTADO ---");
System.out.println("-----------------");
if(isValid){
// El método getNivelValido devuelve el último nivel XAdES válido
System.out.println("La firma es valida.\n" + result.getNivelValido());
} else {
// El método getLog devuelve el mensaje de error que invalidó la firma
System.out.println("La firma NO es valida\n" + result.getLog());
}
}
}