java.lang.Object
br.ufsc.labsec.signature.conformanceVerifier.cades.attributes.signed.IdMessageDigest
All Implemented Interfaces:
SignatureAttribute<org.bouncycastle.asn1.cms.Attribute>

public class IdMessageDigest
extends Object
implements SignatureAttribute<org.bouncycastle.asn1.cms.Attribute>
O atributo message digest é usado para guardar o resumo criptográfico do conteúdo assinado. Para a assinatura ser válida, o resumo criptográfico calculado deve ser o mesmo do atributo message digest. Este atributo é obrigatório para todas as políticas do Padrão Brasileiro de Assinatura Digital. Mais informações: RFC 3852.

Oid e esquema do atributo id-messageDigest retirado da RFC 3852:

id-messageDigest OBJECT IDENTIFIER ::= { iso(1) member-body(2) us(840) rsadsi(113549) pkcs(1) pkcs9(9) 4 }

MessageDigest ::= OCTET STRING

  • Field Summary

    Fields
    Modifier and Type Field Description
    static String IDENTIFIER  
    protected byte[] signedContentHash
    O valor de hash do conteúdo assinado
  • Constructor Summary

    Constructors
    Constructor Description
    IdMessageDigest​(byte[] signedContentHash)
    Cria o atributo id-messageDigest a partir do resumo criptográfico do conteúdo assinado.
    IdMessageDigest​(byte[] signedContent, String algorithmName)  
    IdMessageDigest​(byte[] signedContent, org.bouncycastle.asn1.ASN1ObjectIdentifier digestAlgorithm)  
    IdMessageDigest​(AbstractVerifier signatureVerifier, Integer index)
    Construtor não implementado, pois sua verificação ocorre dentro da classe de validação e não nessa classe de forma separada.
    IdMessageDigest​(org.bouncycastle.asn1.cms.Attribute attributeEncoded)
    Constrói um objeto IdMessageDigest
  • Method Summary

    Modifier and Type Method Description
    org.bouncycastle.asn1.cms.Attribute getEncoded()
    Retorna o atributo codificado
    String getIdentifier()
    Retorna o identificador do atributo
    byte[] getSignedContentHash()
    Retorna o valor de hash do conteúdo assinado
    boolean isSigned()
    Informa se o atributo é assinado
    boolean isUnique()
    Verifica se o atributo deve ter apenas uma instância na assinatura
    void validate()
    Essa validação é realizada no momento da verificação da integridade da assinatura.

    Methods inherited from class java.lang.Object

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

    • IDENTIFIER

      public static final String IDENTIFIER
    • signedContentHash

      protected byte[] signedContentHash
      O valor de hash do conteúdo assinado
  • Constructor Details

    • IdMessageDigest

      public IdMessageDigest​(AbstractVerifier signatureVerifier, Integer index)
      Construtor não implementado, pois sua verificação ocorre dentro da classe de validação e não nessa classe de forma separada.
      Parameters:
      signatureVerifier - Usado para criar e verificar o atributo
      index - Este índide deve ser 0 para este atributo
    • IdMessageDigest

      public IdMessageDigest​(byte[] signedContentHash)
      Cria o atributo id-messageDigest a partir do resumo criptográfico do conteúdo assinado.
      Parameters:
      signedContentHash - O resumo criptográfico do conteúdo assinado
    • IdMessageDigest

      public IdMessageDigest​(byte[] signedContent, org.bouncycastle.asn1.ASN1ObjectIdentifier digestAlgorithm) throws SignatureAttributeException
      Throws:
      SignatureAttributeException
    • IdMessageDigest

      public IdMessageDigest​(byte[] signedContent, String algorithmName) throws SignatureAttributeException
      Throws:
      SignatureAttributeException
    • IdMessageDigest

      public IdMessageDigest​(org.bouncycastle.asn1.cms.Attribute attributeEncoded) throws SignatureAttributeException
      Constrói um objeto IdMessageDigest
      Parameters:
      attributeEncoded - O atributo codificado
      Throws:
      SignatureAttributeException
  • Method Details

    • getEncoded

      public org.bouncycastle.asn1.cms.Attribute getEncoded() throws SignatureAttributeException
      Retorna o atributo codificado
      Specified by:
      getEncoded in interface SignatureAttribute<org.bouncycastle.asn1.cms.Attribute>
      Returns:
      O atributo em formato ASN1
      Throws:
      SignatureAttributeException
    • 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
    • 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
    • getSignedContentHash

      public byte[] getSignedContentHash()
      Retorna o valor de hash do conteúdo assinado
      Returns:
      O hash do conteúdo assinado
    • validate

      public void validate() throws SignatureAttributeException
      Essa validação é realizada no momento da verificação da integridade da assinatura.
      Specified by:
      validate in interface SignatureAttribute<org.bouncycastle.asn1.cms.Attribute>
      Throws:
      SignatureAttributeException
    • 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