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

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

Esta versão representa uma referência do certificado do signatário utilizando qualquer algoritmo de resumo criptográfico, exceto o SHA-1.

 SigningCertificateV2 ::= SEQUENCE {
        certs SEQUENCE OF ESSCertIDv2,
        policies SEQUENCE OF PolicyInformation OPTIONAL
 }
 
See Also:
RFC 5035
  • Field Summary

    Fields
    Modifier and Type Field Description
    protected List<org.bouncycastle.asn1.ess.ESSCertIDv2> certs
    Lista de identificadores dos certificados
    static String IDENTIFIER
    Identificador do objeto do atributo
    protected AbstractVerifier verifier
    Objeto de verificador
  • Constructor Summary

    Constructors
    Constructor Description
    IdAaSigningCertificateV2​(AbstractVerifier verifier, Integer index)
    Deve-se utilizar este construtor no momento de validação do atributo.
    IdAaSigningCertificateV2​(String algorithm, List<Certificate> certificates)
    Constrói o atributo a partir do identificador do algoritmo de resumo criptográfico e de uma lista de certificados.
    IdAaSigningCertificateV2​(org.bouncycastle.asn1.cms.Attribute attr)
    Constrói um objeto IdAaSigningCertificateV2.
  • Method Summary

    Modifier and Type Method Description
    CertSelector clone()  
    org.bouncycastle.asn1.cms.Attribute getEncoded()
    Gera uma representação equivalente do atributo em formato ASN.1.
    List<org.bouncycastle.asn1.ess.ESSCertID> getESSCertID()
    Obtém todos os identificadores de certificados guardados no atributo no formato ESSCertID, para compatibilidade com a geração de contra-assinaturas.
    List<org.bouncycastle.asn1.ess.ESSCertIDv2> getESSCertIDV2()  
    String getIdentifier()
    Retorna o identificador do atributo
    boolean isSigned()
    Indica se o atributo é assinado.
    boolean isUnique()
    Indica se o atributo deve existir apenas uma vez na assinatura.
    boolean match​(Certificate certificate)
    Verifica se o certificado fornecido é o mesmo que está representado no atributo através do cálculo do resumo criptográfico.
    static boolean match​(Certificate certificate, org.bouncycastle.asn1.ess.ESSCertIDv2 essCertIDv2)  
    void validate()
    Valida o atributo de acordo com suas regras específicas.

    Methods inherited from class java.lang.Object

    equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Field Details

    • IDENTIFIER

      public static final String IDENTIFIER
      Identificador do objeto do atributo
    • certs

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

      protected AbstractVerifier verifier
      Objeto de verificador
  • Constructor Details

    • IdAaSigningCertificateV2

      public IdAaSigningCertificateV2​(AbstractVerifier verifier, Integer index) throws SignatureAttributeNotFoundException
      Deve-se utilizar este construtor no momento de validação do atributo. Este método decodifica todos os certificados adicionados no atributo, ou seja, ele funciona para os casos SignerOnly e FullPath.
      Parameters:
      verifier - Carrega informações sobre a assinatura para criar e verificar o atributo
      index - Este índice deve ser 0 para este atributo, pois apenas um deve existir
      Throws:
      SignatureAttributeNotFoundException - Ocorre quando o atributo não é encontrado pelo objeto de verificador.
    • IdAaSigningCertificateV2

      public IdAaSigningCertificateV2​(org.bouncycastle.asn1.cms.Attribute attr)
      Constrói um objeto IdAaSigningCertificateV2.
      Parameters:
      attr - O atributo codificado no formato ASN.1.
    • IdAaSigningCertificateV2

      public IdAaSigningCertificateV2​(String algorithm, List<Certificate> certificates) throws AlgorithmException, EncodingException, SignatureAttributeException
      Constrói o atributo a partir do identificador do algoritmo de resumo criptográfico e de uma lista de certificados.
      Parameters:
      algorithm - Identificador do algoritmo de resumo criptográfico
      certificates - Lista de certificados
      Throws:
      AlgorithmException - Ocorre quando o algoritmo de resumo criptográfico é desconhecido.
      EncodingException - Ocorre quando existe uma falha na codificação de um dos certificados.
      SignatureAttributeException - Ocorre quando um algoritmo fraco é solicitado, ou quando nenhum certificado é repassado.
  • Method Details

    • getIdentifier

      public String getIdentifier()
      Description copied from interface: SignatureAttribute
      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 - Ocorre quando o certificado do assinante não é corretamente identificado no atributo.
    • getEncoded

      public org.bouncycastle.asn1.cms.Attribute getEncoded()
      Gera uma representação equivalente do atributo em formato ASN.1.
      Specified by:
      getEncoded in interface SignatureAttribute<org.bouncycastle.asn1.cms.Attribute>
      Returns:
      O atributo no formato em que foi parametrizado a classe
    • isSigned

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

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

      public boolean match​(Certificate certificate)
      Verifica se o certificado fornecido é o mesmo que está representado no atributo através do cálculo do resumo criptográfico.
      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()
      Specified by:
      clone in interface CertSelector
      Specified by:
      clone in interface org.bouncycastle.util.Selector<Certificate>
      Overrides:
      clone in class Object
    • isUnique

      public boolean isUnique()
      Indica se o atributo deve existir apenas uma vez 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
    • getESSCertIDV2

      public List<org.bouncycastle.asn1.ess.ESSCertIDv2> getESSCertIDV2()
    • getESSCertID

      public List<org.bouncycastle.asn1.ess.ESSCertID> getESSCertID()
      Obtém todos os identificadores de certificados guardados no atributo no formato ESSCertID, para compatibilidade com a geração de contra-assinaturas.
      Specified by:
      getESSCertID in interface SigningCertificateInterface
      Returns:
      Uma lista de identificadores de certificado no formato ESSCertID.