es.gob.afirma.cert.signvalidation.SignValidity Maven / Gradle / Ivy
/* Copyright (C) 2011 [Gobierno de Espana]
* This file is part of "Cliente @Firma".
* "Cliente @Firma" is free software; you can redistribute it and/or modify it under the terms of:
* - the GNU General Public License as published by the Free Software Foundation;
* either version 2 of the License, or (at your option) any later version.
* - or The European Software License; either version 1.1 or (at your option) any later version.
* You may contact the copyright holder at: [email protected]
*/
package es.gob.afirma.cert.signvalidation;
/**
* Indica si la firma es válida o no.
* @author Carlos Gamuci
*/
public final class SignValidity {
@Override
public String toString() {
if (this.validity.equals(SIGN_DETAIL_TYPE.OK)) {
return "Firma valida"; //$NON-NLS-1$
}
if (this.validity.equals(SIGN_DETAIL_TYPE.UNKNOWN)) {
return "Validez de la firma desconocida"; //$NON-NLS-1$
}
final String ret = "Firma no valida"; //$NON-NLS-1$
if (this.error == null) {
return ret;
}
switch (this.error) {
case NO_DATA:
return ret + ": no se puede comprobar la validez por no tener los datos firmados"; //$NON-NLS-1$
case CORRUPTED_SIGN:
return ret + ": la informacion contenida en la firma no es consistente (certificados corruptos, etc.)"; //$NON-NLS-1$
case NO_MATCH_DATA:
return ret + ": la firma no se corresponde con los datos firmados"; //$NON-NLS-1$
case NO_SIGN:
return ret + ": no se encuentra la firma dentro del documento"; //$NON-NLS-1$
case CERTIFICATE_PROBLEM:
return ret + ": no se puede extraer un certificado o este no es valido"; //$NON-NLS-1$
case CERTIFICATE_EXPIRED:
return ret + ": existe un certificado de firma caducado"; //$NON-NLS-1$
case CERTIFICATE_NOT_VALID_YET:
return ret + ": existe un certificado de firma que aun no es valido"; //$NON-NLS-1$
case ALGORITHM_NOT_SUPPORTED:
return ret + ": la firma contiene un algoritmo no reconocido o no soportado"; //$NON-NLS-1$
case CA_NOT_SUPPORTED:
return ret + ": no se soporta la CA de expedición."; //$NON-NLS-1$
case CRL_PROBLEM:
return ret + ": existe algun problema con las CRLs incrustadas en la firma"; //$NON-NLS-1$
case PDF_UNKOWN_VALIDITY:
return ret + ": no se puede comprobar la validez de la firma PDF"; //$NON-NLS-1$
case OOXML_UNKOWN_VALIDITY:
return ret + ": no se puede comprobar la validez de la firma OOXML"; //$NON-NLS-1$
case ODF_UNKOWN_VALIDITY:
return ret + ": no se puede comprobar la validez de la firma ODF"; //$NON-NLS-1$
case UNKOWN_ERROR:
return ret + ": no se puede comprobar la validez de la firma"; //$NON-NLS-1$
case UNKOWN_SIGNATURE_FORMAT:
return ret + ": los datos proporcionados no se corresponden con ningun formato de firma reconocido"; //$NON-NLS-1$
default:
return ret;
}
}
/** Tipo del resultado de la firma. */
public enum SIGN_DETAIL_TYPE {
/** Firma válida. */
OK,
/** Firma inválida. */
KO,
/** Validez desconocida. */
UNKNOWN,
/** Firma generada en la misma aplicación, se considera siempre válida. */
GENERATED
}
/** Errores que invalidan una firma o impiden conocer si es válida o no. */
public enum VALIDITY_ERROR {
/** Cuando no se puede comprobar la validez por no tener los datos firmados. */
NO_DATA,
/** Cuando la informacion contenida en la firma no sea consistente (certificados corruptos, etc.). */
CORRUPTED_SIGN,
/** Cuando la firma no se corresponde con los datos firmados. */
NO_MATCH_DATA,
/** Cuando no se encuentra la firma dentro del documento. */
NO_SIGN,
/** Cuando no se puede extraer un certificado o este no es válido. */
CERTIFICATE_PROBLEM,
/** Cuando existe un certificado de firma caducado. */
CERTIFICATE_EXPIRED,
/** Cuando existe un certificado de firma que aun no es válido. */
CERTIFICATE_NOT_VALID_YET,
/** Cuando la firma contiene un algoritmo no reconocido o no soportado. */
ALGORITHM_NOT_SUPPORTED,
/** Cuando el emisor del certificado no es válido. */
CA_NOT_SUPPORTED,
/** Cuando existe algún problema con las CRLs incrustadas en la firma. */
CRL_PROBLEM,
/** Cuando se trata de una firma PDF. */
PDF_UNKOWN_VALIDITY,
/** Cuando se trata de una firma OOXML. */
OOXML_UNKOWN_VALIDITY,
/** Cuando se trata de una firma ODF. */
ODF_UNKOWN_VALIDITY,
/** Cuando la firma es inválida pero no se sabe la razón. */
UNKOWN_ERROR,
/** Cuando los datos proporcionado no sean ningún tipo de firma reconocida. */
UNKOWN_SIGNATURE_FORMAT
}
/** Validez de la firma. */
private final SIGN_DETAIL_TYPE validity;
/** Error que invalida la firma o hace que la validez sea desconocida. */
private final VALIDITY_ERROR error;
/**
* Identifica la validez de una firma.
* @param type Validez de la firma.
* @param error Error que invalida o impide comprobar la firma.
*/
public SignValidity(final SIGN_DETAIL_TYPE type, final VALIDITY_ERROR error) {
this.validity = type;
this.error = error;
}
/**
* Recupera la validez de la firma.
* @return Validez de la firma.
*/
public SIGN_DETAIL_TYPE getValidity() {
return this.validity;
}
/**
* Recupera el error que invalida la firma. Si no existe ningún error o este es desconocido,
* se devolverá {@code null}.
* @return Error que invalida la firma o impide comprobar su validez.
*/
public VALIDITY_ERROR getError() {
return this.error;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy