java.lang.Object
br.ufsc.labsec.signature.conformanceVerifier.cades.AbstractVerifier
br.ufsc.labsec.signature.conformanceVerifier.cades.attributes.TimeStampVerifier
All Implemented Interfaces:
TimeStampVerifierInterface

public class TimeStampVerifier
extends AbstractVerifier
implements TimeStampVerifierInterface
Responsável pela verificação de carimbos do tempo
  • Constructor Details

    • TimeStampVerifier

      public TimeStampVerifier​(CadesSignatureComponent cadesSignatureComponent)
      Construtor do verificador de carimbos do tempo
      Parameters:
      cadesSignatureComponent - Componente de assinatura CAdES
  • Method Details

    • setTimeStamp

      public boolean setTimeStamp​(byte[] timeStamp, String timeStampIdentifier, int timeStampIndex, List<String> mandatedAttributes, List<String> optionalAttributes, List<String> prohibitedAttributes, Time timeReference, Time currentTimeReference)
      Inicializa um TimeStampVerifier
      Specified by:
      setTimeStamp in interface TimeStampVerifierInterface
      Parameters:
      timeStamp - Carimbo a ser verificado
      mandatedAttributes - Lista de atributos obrigatórios no carimbo de tempo
      optionalAttributes - Lista de atributos opcionais no carimbo de tempo
      prohibitedAttributes - Lista de atributos proibidos no carimbo de tempo
      timeReference - Referência do tempo, onde é permitido o uso de prova de existência por outros carimbos.
      currentTimeReference - Referência do tempo atual, independente de provas de existência fornecida por outros carimbos.
      timeStampIdentifier - Identificador do carimbo do tempo
      Returns:
      Indica se a inicilização foi realizada com sucesso
    • setTimeStamp

      public boolean setTimeStamp​(org.bouncycastle.tsp.TimeStampToken timeStampToken, String identifier, int index, List<String> mandatedAttributes, List<String> optionalAttributes, List<String> prohibitedAttributes, Time timeReference, Time currentTimeReference)
      Specified by:
      setTimeStamp in interface TimeStampVerifierInterface
    • getSignatureIdentityInformation

      public SignatureIdentityInformation getSignatureIdentityInformation()
      Specified by:
      getSignatureIdentityInformation in interface TimeStampVerifierInterface
    • getSignatureCertificateValues

      public List<Certificate> getSignatureCertificateValues​(CadesSignature signature)
      Retorna a lista de certificados do atributo IdAaEtsCertValues
      Parameters:
      signature - A assinatura CAdES
      Returns:
      A lista de certificados presente no atributo da assinatura CertificateValues
    • addAttributeCertificates

      protected void addAttributeCertificates​(CadesSignature signature, SignatureIdentityInformation signatureIdentityInformation)
    • getSignatureRevocationValues

      public List<CRL> getSignatureRevocationValues​(CadesSignature signature)
      Retorna a lista de CRLs do atributo IdAaEtsRevocationValues
      Parameters:
      signature - A assinatura que contém o atributo
      Returns:
      A lista de CRLs dos certificados presentes na assinatura
    • addValidationData

      public boolean addValidationData​(CadesSignature signature)
      Adiciona novos certificados e CRLs ao SignatureIdentityInformation da assinatura de acordo com a presença dos atributos CertificateValues e RevocationValues
      Parameters:
      signature - A assinatura CAdES
    • getSignatureAttributeCertificateValues

      public List<org.bouncycastle.cert.X509AttributeCertificateHolder> getSignatureAttributeCertificateValues​(CadesSignature signature)
    • verify

      public boolean verify​(SignatureReport report) throws NotInICPException
      Valida os atributos do carimbo do tempo
      Specified by:
      verify in interface TimeStampVerifierInterface
      Specified by:
      verify in class AbstractVerifier
      Parameters:
      report - O relatório de verificação do carimbo
      Returns:
      Indica se o carimbo é válido
      Throws:
      NotInICPException
    • getValidationErrors

      public List<Exception> getValidationErrors()
      Retorna a lista dos erros que ocorreram na última validação
      Specified by:
      getValidationErrors in interface TimeStampVerifierInterface
      Returns:
      A lista de erros
    • getSignaturePolicy

      public SignaturePolicyInterface getSignaturePolicy()
      Retorna a política de assinatura da assinatura que contém o carimbo do tempo
      Specified by:
      getSignaturePolicy in class AbstractVerifier
      Returns:
      A política de assinatura
    • addAttribute

      public void addAttribute​(String attributeId, AttributeParams params)
      Cria e adiciona um atributo na lista de atributos não assinados
      Specified by:
      addAttribute in interface TimeStampVerifierInterface
      Parameters:
      attributeId - O identificador do atributo
      params - Os parâmetros do atributo
    • removeAttribute

      public void removeAttribute​(String attributeId, int index)
      Remove um atributo da lista de atributos não-assinados
      Specified by:
      removeAttribute in interface TimeStampVerifierInterface
      Parameters:
      attributeId - O identificador do atributo
      index - A posição na assinatura do atributo a ser retirado
    • setupValidationData

      public void setupValidationData​(TimeStampReport report) throws CertificateException, IOException, CRLException
      Inicializa os dados de validação dos atributos antes de validar a assinatura
      Specified by:
      setupValidationData in interface TimeStampVerifierInterface
      Parameters:
      report - A estrutura de relatório para inserção dos dados de validação
      Throws:
      CertificateException
      IOException
      CRLException
    • getTimeStampGenerationTime

      public Time getTimeStampGenerationTime()
      Retorna o horário do carimbo
      Specified by:
      getTimeStampGenerationTime in interface TimeStampVerifierInterface
      Returns:
      O horário do carimbo
    • getIndex

      public int getIndex()
      Retorna o índice do carimbo de tempo
      Returns:
      O índice do carimbo de tempo