Package br.ufsc.labsec.signature
Class Asn1SignatureContainer<Sig extends Signature<?>>
java.lang.Object
br.ufsc.labsec.signature.Asn1SignatureContainer<Sig>
- All Implemented Interfaces:
CmsParent<Sig>,SignatureContainer<Sig>,AutoCloseable,Iterable<Sig>,org.bouncycastle.util.Encodable
- Direct Known Subclasses:
CadesSignatureContainer
public abstract class Asn1SignatureContainer<Sig extends Signature<?>> extends Object implements SignatureContainer<Sig>, CmsParent<Sig>
-
Field Summary
Fields Modifier and Type Field Description protected org.bouncycastle.cms.CMSSignedDatacmsSignedDataO arquivo assinadoprotected byte[]contentToBeSignedO conteúdo assinadoprotected byte[]signatureBytesBytes da assinaturaprotected List<Sig>signatures -
Constructor Summary
Constructors Constructor Description Asn1SignatureContainer(byte[] signatureBytes)Instancia oSignatureContainera partir dos bytes da assinatura com o conteúdo anexado.Asn1SignatureContainer(byte[] signatureBytes, byte[] contentToBeSigned)Instancia oSignatureContainera partir de umCMSSignedDatae do conteúdo assinado.Asn1SignatureContainer(org.bouncycastle.cms.CMSSignedData cmsSignedData)Instancia oSignatureContainera partir de umCMSSignedData.Asn1SignatureContainer(org.bouncycastle.cms.CMSSignedData cmsSignedData, byte[] contentToBeSigned) -
Method Summary
Modifier and Type Method Description voidaddCertificatesAndRevocationData(Collection<? extends Certificate> certificatesToAdd, Collection<CRL> crlsToAdd, Collection<org.bouncycastle.asn1.ocsp.BasicOCSPResponse> ocspsToAdd)Adiciona dados de revogação ao contêiner de assinaturas.voidencode(OutputStream outputStream)Escreve a assinatura, já codificada para seu formato, noOutputStreamdesejadoorg.bouncycastle.util.Store<org.bouncycastle.cert.X509AttributeCertificateHolder>getAttributeCertificateStore()org.bouncycastle.util.Store<org.bouncycastle.cert.X509CertificateHolder>getCertificateStore()Retorna os certificados utilizados para assinatura no arquivoSignatureContainer<Sig>getContainer()Retorna o contêiner de assinaturabyte[]getContentToBeSigned()Retorna os bytes do conteúdo assinadoorg.bouncycastle.util.Store<org.bouncycastle.cert.X509CRLHolder>getCrls()Retorna a lista de certificados revogadosintgetSignatureCount()Retorna a quantidade de assinaturas no arquivo, desconsiderando contra-assinaturasbyte[]getSignedContent()Retorna uma representação do contêiner de assinaturas.org.bouncycastle.cms.CMSSignedDatagetSignedData()Retorna uma representação do contêiner de assinaturas.booleanhasDetachedContent()Verifica se o arquivo possui assinatura com conteúdo destacadoprotected abstract voidinitializeSignatures()@NotNull Iterator<Sig>iterator()voidreplaceChildSignature(org.bouncycastle.cms.SignerInformation signerToReplace)Substitui o primeiro assinante que tiver o mesmo identificador do assinante passado como parâmetro.voidsetSignedContent(byte[] signedContent)Define qual foi o conteúdo assinado que será usado na verificação da assinatura.Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface java.lang.Iterable
forEach, spliteratorMethods inherited from interface br.ufsc.labsec.signature.signer.SignatureContainer
captureInitialSignatureInformation, close, getEncoded, getFirstSignature, getIndexOfSignature, getLastSignature, getSignatureAt, getSignatures, isEmpty, stream
-
Field Details
-
signatureBytes
protected byte[] signatureBytesBytes da assinatura -
cmsSignedData
protected org.bouncycastle.cms.CMSSignedData cmsSignedDataO arquivo assinado -
contentToBeSigned
protected byte[] contentToBeSignedO conteúdo assinado -
signatures
-
-
Constructor Details
-
Asn1SignatureContainer
public Asn1SignatureContainer(byte[] signatureBytes, byte[] contentToBeSigned) throws CadesSignatureExceptionInstancia oSignatureContainera partir de umCMSSignedDatae do conteúdo assinado.- Parameters:
signatureBytes- Bytes da assinaturacontentToBeSigned- 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 CadesSignatureExceptionInstancia oSignatureContainera partir de umCMSSignedData.- Parameters:
cmsSignedData- Representa o contêiner de assinaturas- Throws:
CadesSignatureException
-
Asn1SignatureContainer
Instancia oSignatureContainera 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
Storecom os certificados
-
getAttributeCertificateStore
public org.bouncycastle.util.Store<org.bouncycastle.cert.X509AttributeCertificateHolder> getAttributeCertificateStore() -
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:
getSignatureCountin interfaceSignatureContainer<Sig extends Signature<?>>- Returns:
- A quantidade de assinaturas no arquivo
-
encode
Escreve a assinatura, já codificada para seu formato, noOutputStreamdesejado- Specified by:
encodein interfaceSignatureContainer<Sig extends Signature<?>>- Parameters:
outputStream- O stream que conterá a assinatura- Throws:
IOException- Exceção em caso de erro na transformação
-
hasDetachedContent
public boolean hasDetachedContent()Verifica se o arquivo possui assinatura com conteúdo destacado- Specified by:
hasDetachedContentin interfaceSignatureContainer<Sig extends Signature<?>>- 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:
replaceChildSignaturein interfaceCmsParent<Sig extends Signature<?>>- 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:
getSignedDatain interfaceCmsParent<Sig extends Signature<?>>- Returns:
- O objeto
CMSSignedData
-
getSignedContent
Retorna uma representação do contêiner de assinaturas.- Specified by:
getSignedContentin interfaceCmsParent<Sig extends Signature<?>>- Returns:
- O objeto
CMSSignedData - Throws:
CadesSignatureException
-
setSignedContent
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
-
addCertificatesAndRevocationData
public void addCertificatesAndRevocationData(Collection<? extends Certificate> certificatesToAdd, Collection<CRL> crlsToAdd, Collection<org.bouncycastle.asn1.ocsp.BasicOCSPResponse> ocspsToAdd) throws CadesSignatureExceptionAdiciona dados de revogação ao contêiner de assinaturas.- Parameters:
crlsToAdd- Coleção de CRLs a serem adicionadasocspsToAdd- Coleção de respostas OCSP a serem adicionadas- Throws:
CadesSignatureException- Exceção em caso de erro ao adicionar os dados de revogação
-
getContentToBeSigned
public byte[] getContentToBeSigned()Retorna os bytes do conteúdo assinado- Specified by:
getContentToBeSignedin interfaceCmsParent<Sig extends Signature<?>>- Returns:
- Os bytes do conteúdo assinado
-
getContainer
Retorna o contêiner de assinatura- Specified by:
getContainerin interfaceCmsParent<Sig extends Signature<?>>- Returns:
- O contêiner de assinatura
-
iterator
-