Class SignatureVerifier

java.lang.Object
br.ufsc.labsec.signature.conformanceVerifier.cades.AbstractVerifier
br.ufsc.labsec.signature.conformanceVerifier.cades.SignatureVerifier

public class SignatureVerifier
extends AbstractVerifier
Esta classe é responsável por verificar uma assinatura. Estende AbstractVerifier.
  • Field Details

    • MISSING_CERTIFICATES_IN_SIGNED_DATA

      public static final String MISSING_CERTIFICATES_IN_SIGNED_DATA
      See Also:
      Constant Field Values
    • signaturePolicy

      protected SignaturePolicyInterface signaturePolicy
      A política de assinatura
    • bytesOfSignedContent

      protected byte[] bytesOfSignedContent
      O conteúdo assinado
  • Constructor Details

  • Method Details

    • verify

      public boolean verify​(SignatureReport sigReport)
      Verifica todos os campos da assinatura conforme especificado na PA da assinatura. Caso a assinatura não seja válida, os erros de validação serão disponibilizados no método getSignatureValidationErros . Todas as regras de verificação da política de assinatura serão levadas em conta. Primeiro validando as regras para o caminho do assinante, depois verificando se os atributos obrigatórios estão todos presentes na assinatura, para então verificar a validade de cada atributo e por fim verificar a integridade da assinatura.
      Specified by:
      verify in class AbstractVerifier
      Parameters:
      sigReport - O relatório de verificação da assinatura
      Returns:
      Indica se a assinatura é válida
    • verifySimple

      public void verifySimple​(SignatureReport signatureReport)
      Faz uma verificação simplificada da assinatura, testando apenas a integridade da assinatura e o seu caminho de certificação
      Parameters:
      signatureReport - Relatório da assinatura
    • checkValidationResultAlgorithm

      public ValidationResult checkValidationResultAlgorithm​(SignatureReport sigReport, String exceptionType, List<PbadException> errors, ValidationResult validationResultNow)
      Verifica se o ValidationResult do SignatureReport atual é válido. Se for, colocar como erro, pois o algoritmo é inválido
      Parameters:
      sigReport - Relatório de assinatura
      exceptionType - Tipo de exception gerada
      errors - Erros do relatório
    • verifySignatureTimestamps

      public void verifySignatureTimestamps​(List<TimeStamp> timeStamps, SignatureReport sigReport) throws PbadException
      Verifica os carimbos de tempo em ordem de tempo e atualiza a referência de tempo conforme a validação é executada. Exceções de verificação são adicionadas ao argumento exceptions, informado na chamada da função.
      Parameters:
      timeStamps - Lista de carimbos de tempo
      sigReport - O relatório de verificação da assinatura
      Throws:
      PbadException - Exceção em caso de erro na formação dos carimbos
    • getSignedContent

      public byte[] getSignedContent()
      Retorna os bytes do conteúdo assinado que foram passados no método setSignedContent(byte[] signedContent) .
      Returns:
      Os bytes do conteúdo assinado
    • getSignature

      public CadesSignature getSignature()
      Retorna a assinatura que foi passada na construção da classe.
      Overrides:
      getSignature in class AbstractVerifier
      Returns:
      A assinatura CAdES
    • checkPolicyConstraints

      protected void checkPolicyConstraints​(List<PbadException> exceptions)
      Verifica regras da política de assinatura que não são especificas de apenas um atributo, mas tem um contexto global, como por exemplo restrições de algortimos. Em caso de erros, eles serão adicionados à lista dada
      Parameters:
      exceptions - Lista de erros da verificação
    • checkPolicyAlgorithmsConstraints

      protected void checkPolicyAlgorithmsConstraints() throws org.bouncycastle.operator.OperatorCreationException, VerificationException
      Verifica se o algoritmo especificado na Política de Assinatura é o mesmo usado na assinatura.
      Throws:
      VerificationException - Exceção em caso de erro na verificação
      org.bouncycastle.operator.OperatorCreationException - Exceção em caso de erro na manipulação da assinatura
    • checkAcceptablePolicies

      protected void checkAcceptablePolicies() throws CertificationPathException
      Percorre o caminho de certificação verificando se as políticas usadas para cada certificado se encontram dentro das permitidas pela política de assinatura.
      Throws:
      CertificationPathException
    • checkKeyLength

      protected boolean checkKeyLength()
      Checa se o tamanho da chave usada para assinar é compatível com o tamanho mínimo exigido pela PA.
      Returns:
      Indica se o tamanho da chave do assinante é igual ou maior que o exigido
    • checkSignaturePolicyPeriod

      protected boolean checkSignaturePolicyPeriod() throws SignatureAttributeException
      Verifica se a assinatura foi feita dentro do período válido para o uso de políticas.
      Returns:
      Indica se a assinatura está dentro do período válido para o uso de políticas
      Throws:
      SignatureAttributeException
    • checkExternalSignedData

      protected boolean checkExternalSignedData() throws PbadException
      Verifica se a assinatura está respeitando a regra da política de assinatura sobre o dado assinado ser interno, externo ou indiferente
      Returns:
      Indica se a assinatura está de acordo com a política
      Throws:
      PbadException
    • getOrderedTimeStamps

      public List<TimeStamp> getOrderedTimeStamps() throws SignatureAttributeException, UnknowAttributeException
      Retorna uma lista de atributos de Carimbo do Tempo (aqueles referenciados na lista de prioridade) ordenada por identificador, de acordo com o especificado na lista de prioridade, e com cada grupo de mesmo identificador ordenado por tempo (TimeReference). Na ordenação por tempo, é considerado que o tempo mais recente (ou seja, maior) tem maior prioridade.
      Returns:
      A lista de carimbo de tempo ordenada
      Throws:
      SignatureAttributeException - Exceção em caso de erro nos atributos da assinatura
      UnknowAttributeException - Exceção em caso de atributo desconhecido na assinatura
    • getOrderedTimeStamps

      public List<TimeStamp> getOrderedTimeStamps​(List<String> attributesAlreadyVerified, SignatureReport signatureReport) throws SignatureAttributeException, UnknowAttributeException
      Retorna a lista de carimbos de tempo ordenados e adiciona as exceções carimbos mal formados getOrderedTimeStamps()
      Throws:
      SignatureAttributeException
      UnknowAttributeException
    • getSignaturePolicy

      public SignaturePolicyInterface getSignaturePolicy()
      Retorna a política de assinatura
      Specified by:
      getSignaturePolicy in class AbstractVerifier
      Returns:
      A política de assinatura
    • getPaReport

      public PaReport getPaReport() throws SignatureAttributeException
      Retorna o relatório da política de assinatura
      Returns:
      O relatório da política de assinatura
      Throws:
      SignatureAttributeException - Exceção em caso de erro no atributo