Class SignatureVerifier

java.lang.Object
br.ufsc.labsec.signature.conformanceVerifier.xades.AbstractVerifier
br.ufsc.labsec.signature.conformanceVerifier.xades.SignatureVerifier
All Implemented Interfaces:
AbstractVerifierInterface<XadesInformation, Element, XadesSignature>, XadesAbstractVerifierInterface

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
    • 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
      Specified by:
      getSignature in interface AbstractVerifierInterface<XadesInformation, Element, XadesSignature>
      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.
      Returns:
      A política de assinatura
    • checkPolicyConstraints

      protected void checkPolicyConstraints(ValidationResult validationResult)
      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:
      validationResult - O resultado da validação da assinatura
    • 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
    • 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()
      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
    • validSignPolicyPeriod

      protected boolean validSignPolicyPeriod(String revocationDate, String signDate)
    • checkExternalSignedData

      protected boolean checkExternalSignedData()
      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
    • 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
    • getMissingMandatedUnsignedAttributes

      public List<String> getMissingMandatedUnsignedAttributes(List<String> signatureAttributeList)
      O método checa os atributos obrigatórios não assinados contra os atributos não assinados da assinatura. O método retorna os atributos que são obrigatórios porem estão ausentes.
      Returns:
      Uma lista de atributos que deveriam estar presente.
    • getPaReport

      public PaReport getPaReport(String signingTime) 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
    • addLpaToReport

      public void addLpaToReport(Report report)