Class SignatureVerifier

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

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

    • signaturePolicy

      protected SignaturePolicyInterface signaturePolicy
      Política de assinatura
    • bytesOfSignedContent

      protected byte[] bytesOfSignedContent
      Bytes do 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 levados 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. O resultado da verificação é adicionado ao relatório dado.

      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 sigReport)
      Faz uma verificação simplificada da assinatura, testando apenas a integridade da assinatura e o seu caminho de certificação
      Parameters:
      sigReport - Relatório da assinatura
    • verifySchema

      protected void verifySchema​(SignatureReport sigReport)
      Verifica o esquema XML da assinatura
      Throws:
      SAXException - Exceção em caso de falha na manipulação do esquema
      IOException - Exceção em caso de erro na manipulação da assinatura
      XadesSchemaException - Exceção em caso de erro na obtenção do esquema
    • getSignatureValidationErrors

      public List<PbadException> getSignatureValidationErrors()
      Retorna a lista dos erros que ocorreram na última validação
      Returns:
      A lista de erros
    • 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 XadesSignature getSignature()
      Retorna a assinatura que foi passada na construção da classe
      Overrides:
      getSignature in class AbstractVerifier
      Returns:
      A assinatura a ser verificada
    • getSignaturePolicy

      public SignaturePolicyInterface getSignaturePolicy()
      Retorna a Política de Assinatura da assinatura passada na construção desta classe.
      Specified by:
      getSignaturePolicy in class AbstractVerifier
      Returns:
      A política de assinatura
    • 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.
      Parameters:
      exceptions - Lista de erros da verificação
    • checkPolicyAlgorithmsConstraints

      protected boolean checkPolicyAlgorithmsConstraints()
      Verifica se o algoritmo especificado na Política de Assinatura é o mesmo usado na assinatura.
      Returns:
      Indica se os identificadores dos algoritmos de hash são os mesmos
    • 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 - Exceção em caso de erro no caminho de certificação
    • 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 - Exceção em caso de erro na manipulação de atributos
    • 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
    • verifySignature

      protected boolean verifySignature​(SignatureReport sigReport, boolean isComplete) throws VerificationException
      Verifica a assinatura e adiciona os resultados ao relatório
      Parameters:
      sigReport - O relatório de verificação da assinatura
      isComplete - Se o relatório é completo ou simples
      Returns:
      Indica se a assinatura está válida
      Throws:
      VerificationException - Exceção em caso de erro durante a verificação
    • 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 carimbos de tempo ordenada de acordo
      Throws:
      SignatureAttributeException - Exceção em caso de erro nos atributos da assinatura
      UnknowAttributeException - Exceção em caso de atributo desconhecido
    • getPaReport

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