Ejemplo de validación de sello de tiempo

El objetivo de este ejemplo es mostrar los pasos necesarios para realizar una validación de un sello de tiempo. El código completo del ejemplo se puede ver aquí. También se puede ver el Javadoc asociado al ejemplo aquí.

Los pasos principales para validar un sello de tiempo son los siguientes:

  1. Invocar al método de validación del sello de tiempo de la clase TSValidator:
    TSValidacion result;
    try {
        result = TSValidator.validarSelloTiempo(Base64.decode(DATA1), Base64.decode(TOKEN_DATA1));
    } catch (NoSuchAlgorithmException e) {
        (... Error validando el sello de tiempo ...)
    } catch (NoSuchProviderException e) {
        (... Error validando el sello de tiempo ...)
    } catch (CertStoreException e) {
        (... Error validando el sello de tiempo ...)
    } catch (TSPException e) {
        (... Error validando el sello de tiempo ...)
    } catch (IOException e) {
        (... Error validando el sello de tiempo ...)
    } catch (TSClienteError e) {
        (... Error validando el sello de tiempo ...)
    }
    

    Como se puede observar, los parámetros recibidos por el método validarSelloTiempo son arrays de bytes. Puesto que las constantes usadas están declaradas como String se puede hacer uso de la clase Base64 para la decodificación de dichas constantes.

  2. Una vez que se tiene el resultado de la validación como un objeto TSValidacion se puede acceder a los datos de la misma. Algunos datos importantes:
    • Si el resultado es una respuesta correcta (es decir, si el token que se validó es correcto)
      result.isRespuesta()
      
    • La fecha del token, que será null en el caso de que la respuesta no haya sido correcta:
      result.getFecha()