java.lang.Object
br.ufsc.labsec.signature.conformanceVerifier.cades.attributes.signed.IdAaSigningCertificate
All Implemented Interfaces:
SigningCertificateInterface, SignatureAttribute<org.bouncycastle.asn1.cms.Attribute>, Cloneable, CertSelector, org.bouncycastle.util.Selector<Certificate>

public class IdAaSigningCertificate
extends Object
implements SigningCertificateInterface
O atributo IdAaSigningCertificate é designado para previnir o ataque de substituição, e para permitir um conjunto restrito de certificados a serem usados na verificação da assinatura.

Este atributo é obrigatório para todas as políticas do Padrão Brasileiro de Assinatura Digital.

Esta versão representa uma referência do certificado do signatário utilizando o algoritmo de hash SHA1.

 SigningCertificate ::= SEQUENCE {
 certs SEQUENCE OF ESSCertID,
 policies SEQUENCE OF PolicyInformation OPTIONAL
 }
 
See Also:
RFC 5035
  • Field Details

    • IDENTIFIER

      public static final String IDENTIFIER
    • certs

      protected List<org.bouncycastle.asn1.ess.ESSCertID> certs
      Lista de identificadores dos certificados
    • signatureVerifier

      protected AbstractVerifier signatureVerifier
      Objeto de verificador
  • Constructor Details

    • IdAaSigningCertificate

      public IdAaSigningCertificate​(AbstractVerifier signatureVerifier, Integer index) throws SignatureAttributeException
      Deve-se utilizar este construtor no momento de validação do atributo. Este método decodifica todos os certificados que foram adicionados no atributo SigningCertificate, ou seja, ele funciona para os casos SignerOnly e FullPath.
      Parameters:
      signatureVerifier - Usado para criar e verificar o atributo
      index - Este índide deve ser 0 para este atributo
      Throws:
      SignatureAttributeException
    • IdAaSigningCertificate

      public IdAaSigningCertificate​(List<Certificate> certificates) throws SignatureAttributeException
      Cria o atributo id-aa-signingCertificate a partir de uma lista de certificados. Este método decodifica todos os certificados que foram adicionados no atributo SigningCertificate.
      Parameters:
      certificates - Lista de certificados que serão guardados no atributo signing certificate da assinatura
      Throws:
      SignatureAttributeException
    • IdAaSigningCertificate

      public IdAaSigningCertificate​(org.bouncycastle.asn1.cms.Attribute genericEncoding)
      Constrói um objeto IdAaSigningCertificate.
      Parameters:
      genericEncoding - O atributo codificado
  • Method Details

    • getIdentifier

      public String getIdentifier()
      Retorna o identificador do atributo
      Specified by:
      getIdentifier in interface SignatureAttribute<org.bouncycastle.asn1.cms.Attribute>
      Returns:
      O identificador do atributo
    • validate

      public void validate() throws SignatureAttributeException
      Valida o atributo de acordo com suas regras específicas
      Specified by:
      validate in interface SignatureAttribute<org.bouncycastle.asn1.cms.Attribute>
      Throws:
      SignatureAttributeException
    • getEncoded

      public org.bouncycastle.asn1.cms.Attribute getEncoded()
      Retorna o atributo codificado
      Specified by:
      getEncoded in interface SignatureAttribute<org.bouncycastle.asn1.cms.Attribute>
      Returns:
      O atributo em formato ASN1
    • isSigned

      public boolean isSigned()
      Informa se o atributo é assinado
      Specified by:
      isSigned in interface SignatureAttribute<org.bouncycastle.asn1.cms.Attribute>
      Returns:
      Indica se o atributo é assinado
    • getESSCertID

      public List<org.bouncycastle.asn1.ess.ESSCertID> getESSCertID()
      Obtém todos os certificados que foram guardados no atributo signing certificate da assinatura.
      Specified by:
      getESSCertID in interface SigningCertificateInterface
      Returns:
      A lista dos certificados do atributo
    • match

      public static boolean match​(Certificate certificate, org.bouncycastle.asn1.ess.ESSCertID essCertID)
    • match

      public boolean match​(Certificate certificate)
      Verifica se o certificado dado é o mesmo que está no atributo
      Specified by:
      match in interface CertSelector
      Specified by:
      match in interface org.bouncycastle.util.Selector<Certificate>
      Parameters:
      certificate - O certificado a ser comparado
      Returns:
      Indica se o certificado dado é o mesmo que está no atributo
    • clone

      public CertSelector clone()
      Faz uma cópia deste objeto
      Specified by:
      clone in interface CertSelector
      Specified by:
      clone in interface org.bouncycastle.util.Selector<Certificate>
      Overrides:
      clone in class Object
      Returns:
      Uma cópia do objeto
    • isUnique

      public boolean isUnique()
      Verifica se o atributo deve ter apenas uma instância na assinatura
      Specified by:
      isUnique in interface SignatureAttribute<org.bouncycastle.asn1.cms.Attribute>
      Returns:
      Indica se o atributo deve ter apenas uma instância na assinatura