Class Asn1SignatureContainer<Sig>

java.lang.Object
br.ufsc.labsec.signature.Asn1SignatureContainer<Sig>
All Implemented Interfaces:
CmsParent, SignatureContainer<Sig>, Iterable<Sig>, org.bouncycastle.util.Encodable
Direct Known Subclasses:
CadesSignatureContainer

public abstract class Asn1SignatureContainer<Sig>
extends Object
implements SignatureContainer<Sig>, CmsParent
  • Field Details

    • signatureBytes

      protected byte[] signatureBytes
      Bytes da assinatura
    • cmsSignedData

      protected org.bouncycastle.cms.CMSSignedData cmsSignedData
      O arquivo assinado
    • contentToBeSigned

      protected byte[] contentToBeSigned
      O conteúdo assinado
    • signatures

      protected final List<Sig> signatures
  • Constructor Details

    • Asn1SignatureContainer

      public Asn1SignatureContainer​(byte[] signatureBytes, byte[] contentToBeSigned) throws CadesSignatureException
      Instancia o SignatureContainer a partir de um CMSSignedData e do conteúdo assinado.
      Parameters:
      signatureBytes - Bytes da assinatura
      contentToBeSigned - O conteúdo assinado
      Throws:
      CadesSignatureException - Exceção em caso de erro na criação do contêiner
    • Asn1SignatureContainer

      public Asn1SignatureContainer​(org.bouncycastle.cms.CMSSignedData cmsSignedData, byte[] contentToBeSigned) throws CadesSignatureException
      Throws:
      CadesSignatureException
    • Asn1SignatureContainer

      public Asn1SignatureContainer​(org.bouncycastle.cms.CMSSignedData cmsSignedData) throws CadesSignatureException
      Instancia o SignatureContainer a partir de um CMSSignedData.
      Parameters:
      cmsSignedData - Representa o contêiner de assinaturas
      Throws:
      CadesSignatureException
    • Asn1SignatureContainer

      public Asn1SignatureContainer​(byte[] signatureBytes) throws CadesSignatureException
      Instancia o SignatureContainer a partir dos bytes da assinatura com o conteúdo anexado.
      Parameters:
      signatureBytes - Bytes do arquivo da assinatura
      Throws:
      CadesSignatureException - Exceção em caso de erro na criação do contêiner
  • Method Details

    • initializeSignatures

      protected abstract void initializeSignatures()
    • getCertificateStore

      public org.bouncycastle.util.Store<org.bouncycastle.cert.X509CertificateHolder> getCertificateStore()
      Retorna os certificados utilizados para assinatura no arquivo
      Returns:
      Um objeto Store com os certificados
    • getCrls

      public org.bouncycastle.util.Store<org.bouncycastle.cert.X509CRLHolder> getCrls()
      Retorna a lista de certificados revogados
      Returns:
      A lista de certificados revogados
    • getSignatureCount

      public int getSignatureCount()
      Retorna a quantidade de assinaturas no arquivo, desconsiderando contra-assinaturas
      Specified by:
      getSignatureCount in interface SignatureContainer<Sig>
      Returns:
      A quantidade de assinaturas no arquivo
    • encode

      public void encode​(OutputStream outputStream) throws IOException
      Escreve a assinatura, já codificada para seu formato, no OutputStream desejado
      Specified by:
      encode in interface SignatureContainer<Sig>
      Parameters:
      outputStream - O stream que conterá a assinatura
      Throws:
      EncodingException - Exceção em caso de erro na transformação
      IOException
    • hasDetachedContent

      public boolean hasDetachedContent()
      Verifica se o arquivo possui assinatura com conteúdo destacado
      Specified by:
      hasDetachedContent in interface SignatureContainer<Sig>
      Returns:
      Indica se o arquivo possui conteúdo destacado
    • replaceChildSignature

      public void replaceChildSignature​(org.bouncycastle.cms.SignerInformation signerToReplace)
      Substitui o primeiro assinante que tiver o mesmo identificador do assinante passado como parâmetro.
      Specified by:
      replaceChildSignature in interface CmsParent<Sig>
      Parameters:
      signerToReplace - O assinante a ser substituído
    • getSignedData

      public org.bouncycastle.cms.CMSSignedData getSignedData()
      Retorna uma representação do contêiner de assinaturas.
      Specified by:
      getSignedData in interface CmsParent<Sig>
      Returns:
      O objeto CMSSignedData
    • getSignedContent

      public byte[] getSignedContent() throws CadesSignatureException
      Retorna uma representação do contêiner de assinaturas.
      Specified by:
      getSignedContent in interface CmsParent<Sig>
      Returns:
      O objeto CMSSignedData
      Throws:
      CadesSignatureException
    • setSignedContent

      public void setSignedContent​(File signedContent) throws PbadException
      Define qual foi o conteúdo assinado que será usado na verificação da assinatura.
      Parameters:
      signedContent - O arquivo que contém o conteúdo que foi assinado
      Throws:
      PbadException - Exceção em caso de erro ao decodificar a assinatura
    • setSignedContent

      public void setSignedContent​(byte[] signedContent) throws PbadException
      Define qual foi o conteúdo assinado que será usado na verificação da assinatura.
      Parameters:
      signedContent - Bytes do conteúdo que foi assinado
      Throws:
      PbadException - Exceção em caso de erro ao decodificar a assinatura
    • getContentToBeSigned

      public byte[] getContentToBeSigned()
      Retorna os bytes do conteúdo assinado
      Specified by:
      getContentToBeSigned in interface CmsParent<Sig>
      Returns:
      Os bytes do conteúdo assinado
    • getContainer

      public SignatureContainer<Sig> getContainer()
      Retorna o contêiner de assinatura
      Specified by:
      getContainer in interface CmsParent<Sig>
      Returns:
      O contêiner de assinatura
    • iterator

      @NotNull public @NotNull Iterator<Sig> iterator()
      Specified by:
      iterator in interface Iterable<Sig>