java.lang.Object
br.ufsc.labsec.signature.AbstractSignatureVerifier<PadesSignature>
br.ufsc.labsec.signature.conformanceVerifier.pades.PadesVerifier
All Implemented Interfaces:
Verifier

public class PadesVerifier
extends AbstractSignatureVerifier<PadesSignature>
Esta classe implementa os métodos para verificação de uma assinatura PAdES. Implementa Verifier.
  • Constructor Details

    • PadesVerifier

      public PadesVerifier​(PadesSignatureComponent component)
      Construtor
      Parameters:
      component - Componente de assinatura PAdES
  • Method Details

    • getAvailableAttributes

      public List<String> getAvailableAttributes()
      Retorna os atributos que podem ser inseridos na assinatura selecionada
      Returns:
      Os atributos que podem ser inseridos na assinatura
    • clear

      public boolean clear()
      Limpa as informações do verificador
      Returns:
      Indica se a limpeza foi bem sucedida
    • report

      public void report​(Report report, SignatureContainer<PadesSignature> signatureContainer) throws VerificationException, InterruptedException
      Cria um objeto Report com as informações da verificação do documento
      Specified by:
      report in class AbstractSignatureVerifier<PadesSignature>
      Parameters:
      report - O relatório da verificação
      signatureContainer - Contêiner com as assinaturas
      Throws:
      VerificationException - Exceção caso haja algum problema na verificação
      InterruptedException
    • report

      public void report​(Report report, SignatureBytesWrapper wrapper) throws VerificationException, InterruptedException
      Cria um objeto Report com as informações da verificação do documento
      Parameters:
      report - O relatório da verificação
      wrapper - Um wrapper que contém a assinatura e o documento a ser verificado
      Throws:
      VerificationException - Exceção caso haja algum problema na verificação
      InterruptedException
    • report

      public void report​(Report report, PadesSignature signature, PadesSignatureContainer container) throws VerificationException, InterruptedException
      Cria um objeto Report com as informações da verificação do documento
      Parameters:
      report - O relatório da verificação
      signature - A assinatura a ser verificada
      Throws:
      VerificationException - Exceção caso haja algum problema na verificação
      InterruptedException
    • needSignedContent

      public boolean needSignedContent()
      Verifica se a assinatura possui conteúdo destacado
      Returns:
      Indica se a assinatura possui conteúdo destacado
    • getMandatedAttributes

      public List<String> getMandatedAttributes()
      Retorna uma lista de atributos obrigatórios
      Returns:
      Uma lista de atributos obrigatórios
    • supports

      public boolean supports​(byte[] signature, byte[] detached) throws SignatureNotICPBrException
      Verifica se o documento assinado é uma assinatura PAdES
      Parameters:
      signature - Os bytes do documento assinado
      detached - Os bytes do arquivo destacado
      Returns:
      Indica se o documento assinado é uma assinatura PAdES
      Throws:
      SignatureNotICPBrException - Exceção caso a assinatura não seja feita com um certificado ICP-Brasil
    • getSigningCertificate

      public X509Certificate getSigningCertificate​(PadesSignature padesSignature)
      Specified by:
      getSigningCertificate in class AbstractSignatureVerifier<PadesSignature>
    • getSigningCertificateSigReport

      public X509Certificate getSigningCertificateSigReport​(SignatureReport sigReport)
      Busca certificado do assinante de um relatório de assinatura
      Parameters:
      sigReport - Relatório da assinatura que deseja descobrir o assinante
      Returns:
      Certificado do assinate
    • getTypeOfDictionary

      public String getTypeOfDictionary​(org.apache.pdfbox.pdmodel.interactive.digitalsignature.PDSignature signatureObj)
      Retorna o valor da entrada 'Type' no dicionário da assinatura
      Parameters:
      signatureObj - A assinatura
      Returns:
      O valor da entrada 'Type' no dicionário da assinatura
    • addValidationData

      public void addValidationData​(PadesSignature padesSignature)
      Description copied from class: AbstractSignatureVerifier
      Captura e adiciona artefatos presentes na assinatura (como certificados e CRLs) ao SignatureIdentityInformation da assinatura conforme a presença dos atributos CertificateValues e RevocationValues
      Specified by:
      addValidationData in class AbstractSignatureVerifier<PadesSignature>
      Parameters:
      padesSignature - A assinatura
    • getComponent

      public PadesSignatureComponent getComponent()
      Retorna o componente de assinatura PAdES
      Returns:
      O componente de assinatura PAdES
    • getCertPath

      public CertPath getCertPath​(Certificate certificate)
    • getContainerBytes

      public byte[] getContainerBytes()
    • signatureContainerChanged

      public boolean signatureContainerChanged()
      Description copied from interface: Verifier
      Verifica se o container de assinatura foi alterado para verificação
      Returns:
      true se o container de assinatura foi alterado, false caso contrário
    • getPadesSignature

      public PadesSignature getPadesSignature()
    • getPDFBytes

      public byte[] getPDFBytes()
      Retorna os bytes da assinatura
      Returns:
      Os bytes da assinatura
    • getSignaturePolicy

      public SignaturePolicyInterface getSignaturePolicy()
      Retorna a política de assinatura
      Returns:
      A política de assinatura
    • getCadesSignatureComponent

      public CadesSignatureComponent getCadesSignatureComponent()
      Retorna o componente de assinatura CAdES
      Returns:
      O componente de assinatura CAdES
    • hasSignedData

      public boolean hasSignedData()
      Verifica se a assinatura selecionada possui dados assinados.
      Returns:
      true por ser PADES e sempre ser attached.
    • isPadesAndICPBrasil

      public boolean isPadesAndICPBrasil()