java.lang.Object
br.ufsc.labsec.signature.conformanceVerifier.cades.CadesVerifier
All Implemented Interfaces:
Verifier

public class CadesVerifier
extends Object
implements Verifier
Esta classe implementa os métodos para verificação de uma assinatura CAdES. Implementa Verifier.
  • Constructor Details

    • CadesVerifier

      public CadesVerifier​(CadesSignatureComponent cadesSignature)
      Construtor
      Parameters:
      cadesSignature - Componente de assinatura CAdES
  • Method Details

    • getOid

      public String getOid()
      Retorna o identificador da política de assinatura
      Returns:
      O identificador da política de assinatura
    • addValidationData

      public void addValidationData​(CadesSignature signature) throws CertificateException, CRLException, IOException
      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
      Throws:
      CertificateException - Ocorre esta exceção quando for encontrado algum erro no certificado
      IOException - Ocorre esta exceção quando for encontrado algum erro no arquivo de entrada/saída
      CRLException
    • 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
    • getSignerClaimedAttributes

      public Map<org.bouncycastle.asn1.ASN1ObjectIdentifier,​List<org.bouncycastle.asn1.ASN1Encodable>> getSignerClaimedAttributes​(CadesSignature signature)
    • getSignerCertifiedAttributes

      public List<org.bouncycastle.cert.X509AttributeCertificateHolder> getSignerCertifiedAttributes​(CadesSignature signature)
    • selectSignatures

      public void selectSignatures​(boolean isComplete) throws InterruptedException
      Carrega as informações de todas as assinaturas no container Cades
      Throws:
      InterruptedException
    • getSignatureContainer

      public Asn1SignatureContainer<?> getSignatureContainer()
      Retorna o container contendo a assinatura
      Returns:
      Container da assinatura
    • getSigningCertificateSigReport

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

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

      public void report​(Report report, SignatureBytesWrapper wrapper) throws VerificationException, InterruptedException
      Cria um objeto Report com as informações da verificação
      Specified by:
      report in interface Verifier
      Parameters:
      report - O relatório a ser preenchido
      wrapper - O objeto que representa o arquivo de assinatura
      Throws:
      VerificationException - Exceção caso haja algum problema na verificação
      InterruptedException
    • report

      public void report​(Report report, CadesSignatureContainer container) throws VerificationException, InterruptedException
      Throws:
      VerificationException
      InterruptedException
    • getReport

      public Report getReport()
      Retorna o relatório da verificação do arquivo de assinatura
      Returns:
      O relatório de verificação
    • selectTarget

      public void selectTarget​(SignatureBytesWrapper wrapper) throws VerificationException
      Inicializa os bytes do documento CAdES
      Parameters:
      wrapper - Wrapper da assinatura
      Throws:
      VerificationException - Exceção caso os bytes não sejam uma assinatura válida
    • selectTarget

      public void selectTarget​(CadesSignatureContainer container) throws VerificationException
      Inicializa os bytes do documento CAdES
      Parameters:
      container - Container de assinatura CAdES
      Throws:
      VerificationException - Exceção caso os bytes não sejam uma assinatura válida
    • getSelectedSignature

      public CadesSignature getSelectedSignature()
    • getSignatureRevocationValues

      public List<CRL> getSignatureRevocationValues​(CadesSignature signature)
      Retorna a lista de CRLs do atributo IdAaEtsRevocationValues
      Parameters:
      signature - A assinatura CAdES
      Returns:
      A lista de CRLs dos certificados presentes na assinatura
    • getAvailableAttributes

      public List<String> getAvailableAttributes()
      Retorna os atributos que podem ser inseridos na assinatura selecionada
      Specified by:
      getAvailableAttributes in interface Verifier
      Returns:
      Os atributos que podem ser inseridos na assinatura
    • needSignedContent

      public boolean needSignedContent()
      Verifica se a assinatura possui conteúdo destacado
      Specified by:
      needSignedContent in interface Verifier
      Returns:
      Indica se a assinatura possui conteúdo destacado
    • getMandatedAttributes

      public List<String> getMandatedAttributes()
      Retorna uma lista de atributos obrigatórios
      Specified by:
      getMandatedAttributes in interface Verifier
      Returns:
      A lista de atributos obrigatórios
    • getCadesSignature

      public CadesSignatureComponent getCadesSignature()
      Retorna o componente de assinatura CAdES
      Returns:
      O componente da assinatura
    • supports

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

      public Certificate getSigningCertificate​(CadesSignature signature)
    • validSignature

      protected boolean validSignature​(CadesSignature s) throws SignatureNotICPBrException
      Verifica se a assinatura foi feita com um certificado ICP-Brasil e se é uma assinatura CAdES
      Parameters:
      s - A assinatura a ser verificada
      Returns:
      Indica se a assinatura é uma assinatura CAdES e ICP-Brasil
      Throws:
      SignatureNotICPBrException - Exceção caso a assinatura não seja feita com um certificado ICP-Brasil
    • getCertPath

      public CertPath getCertPath​(Certificate cert)
      Specified by:
      getCertPath in interface Verifier
    • setPolicyType

      public void setPolicyType​(Profile.AdESType policyType)
      Atribue o tipo da política de assinatura
      Parameters:
      policyType - O tipo da política
    • getPolicyType

      public Profile.AdESType getPolicyType()
      Retorna o tipo da política de assinatura
      Returns:
      O tipo da política
    • isCadesOID

      public boolean isCadesOID()
      Informa se a política de assinatura é CAdES
      Returns:
      Indica se a política de assinatura é CAdES
    • containsValidPolicy

      public boolean containsValidPolicy()
      Informa se a assinatura contém um identificador de política
      Returns:
      Indica se a assinatura contém uma política de assinatura
    • getReceiptRequest

      public byte[] getReceiptRequest()
      Retorna os bytes do arquivo de requisição de um recibo
      Returns:
      os bytes da requisição ou nulo
    • setReceiptRequest

      public void setReceiptRequest​(byte[] receiptRequest)