Class CadesSignatureInformation
java.lang.Object
br.ufsc.labsec.signature.conformanceVerifier.cades.CadesSignatureInformation
- All Implemented Interfaces:
 CmsParent<CadesSignature>,GenericCadesSignature,Signature<org.bouncycastle.asn1.cms.Attribute>,SignatureObject
- Direct Known Subclasses:
 CadesSimpleSignatureInformation
public abstract class CadesSignatureInformation extends Object implements CmsParent<CadesSignature>, GenericCadesSignature
Esta classe representa tanto uma assinatura quanto uma contra-assinatura CAdES.
 Implementa 
CmsParent e GenericCadesSignature.- 
Field Summary
Fields Modifier and Type Field Description protected booleanisDetachedprotected org.bouncycastle.cms.SignerInformationsignerInformation - 
Constructor Summary
Constructors Modifier Constructor Description protectedCadesSignatureInformation(org.bouncycastle.cms.SignerInformation signerInformation, boolean isDetached, CmsParent<CadesSignature> parent)Constrói umCadesSignatureInformation - 
Method Summary
Modifier and Type Method Description voidaddCounterSignature(IdCounterSignature counterSignatureAttribute)Adiciona uma contra-assinatura.voidaddUnsignedAttribute(SignatureAttribute<org.bouncycastle.asn1.cms.Attribute> attribute)Adiciona um atributo não-assinadoprotected org.bouncycastle.cms.SignerIdbuildSignerIdentifier(X509Certificate counterSignerCertificate)Constrói umSignerIdpara o certificado passado como parâmetrobooleanequals(Object obj)byte[]getArchiveTimeStampATSHashValue(String hashAlgorithmName, CadesSignature signature, byte[] atsHashIndexV3)Utiliza o algoritmo indicado para realizar o resumo criptográfico do carimbo de tempo de arquivamento para verificação do ArchiveTimesStampV3byte[]getArchiveTimeStampHashValue(String hashAlgorithmName)Utiliza o algoritmo indicado para realizar o resumo criptográfico do carimbo de tempo de arquivamentobyte[]getArchiveTimeStampHashValue(String hashAlgorithmName, Time timeReference)Utiliza o algoritmo indicado para realizar o resumo criptográfico do carimbo de tempo de arquivamento.byte[]getArchiveTimeStampHashValue(String hashAlgorithmName, Time timeReference, boolean hashIncludingTag)Utiliza o algoritmo indicado para realizar o resumo criptográfico do carimbo de tempo de arquivamento.List<String>getAttributeList()Retorna a lista de identificadores dos atributos utilizados no processo de assinatura.SignatureContainer<CadesSignature>getContainer()Retorna o contêiner da assinaturabyte[]getContentToBeSigned()Retorna os bytes do conteúdo que será assinadoList<Signature<org.bouncycastle.asn1.cms.Attribute>>getCounterSignatures()org.bouncycastle.asn1.cms.AttributegetEncodedAttribute(String attributeId)Obtém a codificação do primeiro atributo com este identificador na assinaturaorg.bouncycastle.asn1.cms.AttributegetEncodedAttribute(String attributeId, Integer index)Retorna um objeto do atributo desejadoFileFormatgetFormat()Retorna o formato de assinaturabyte[]getMessageDigest(org.bouncycastle.cms.SignerInformation signerInformation)Retorna o message digest para uma assinatura CadesSignatureModeCAdESgetMode()Retorna o modo de assinaturabyte[]getSigAndRefsHashValue(String hashAlgorithmName)Utiliza o algoritmo indicado para realizar o resumo criptográfico das seguintes informações em ordem: - Valor da assinatura - Carimbo do tempo da assinatura - Referências de certificados completa - Referências de dados de validação completa - Referências de certificados de atributo completas* - Referências de dados de validação de certificados de atributo completa*StringgetSignaturePolicyHashValue()Retorna o valor de hash da políticaStringgetSignaturePolicyIdentifier()Obtém o identificador da PA (Política de Assinatura) utilizada nesta assinatura.StringgetSignaturePolicyUri()Obtem a URI da LPA que contém a política de assinatura da assinaturabyte[]getSignatureValue()byte[]getSignatureValueHash(String hashAlgorithmName)Utiliza o algoritmo indicado para realizar o resumo criptográfico da assinaturaList<String>getSignedAttributeList()Retorna a lista de atributos assinadosorg.bouncycastle.asn1.cms.AttributeTablegetSignedAttributes()byte[]getSignedContent()org.bouncycastle.cms.CMSSignedDatagetSignedData()Retorna uma representação do contêiner de assinaturas.org.bouncycastle.cms.SignerInformationgetSignerInformation()org.bouncycastle.cms.SignerInformationVerifiergetSignerInformationVerifier(X509Certificate signerCertificate)Constrói umSignerInformationVerifierrelativo ao signerCertificate.List<String>getUnsignedAttributeList()Retorna a lista de atributos não-assinadosorg.bouncycastle.asn1.cms.AttributeTablegetUnsignedAttributes()inthashCode()booleanisArchiveTimeStampHashValid(String hashAlgorithmName, Time timeReference, boolean hashIncludingTag, byte[] expected)booleanisArchiveTimeStampWithATSHashValueValid(String hashAlgorithmId, CadesSignature signature, byte[] atsHashIndexV3, byte[] expected)booleanisExternalSignedData()Verifica se o dado assinado é externo à assinatura.booleanisSigAndRefsHashValid(String hashAlgorithmName, byte[] expected)Utiliza o algoritmo indicado para realizar o resumo criptográfico das seguintes informações em ordem: - Valor da assinatura - Carimbo do tempo da assinatura - Referências de certificados completa - Referências de dados de validação completa - Referências de certificados de atributo completas* - Referências de dados de validação de certificados de atributo completa*booleanisSignatureValueHashValid(String hashAlgorithmName, byte[] expected)voidremoveUnsignedAttribute(String attributeId, int index)Remove um atributo não-assinadovoidreplaceChildSignature(org.bouncycastle.cms.SignerInformation counterSignerToReplace)Substitui o primeiro contra-assinante que tiver o mesmo identificador do assinante passado como parâmetro.protected voidreplaceSignerInformation()Atualiza as informações doSignerInformationda assinaturavoidreplaceUnsignedAttribute(SignatureAttribute<org.bouncycastle.asn1.cms.Attribute> attribute, int index)Substitui um atributo não assinado qualquervoidsetParent(CmsParent<CadesSignature> parent)StringtoString()Retorna o identificador do assinantebooleanverify(X509Certificate signerCertificate, SignatureReport sigReport, List<PbadException> exceptions, boolean isIcpBr)Verifica a integridade da assinaturaMethods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, waitMethods inherited from interface br.ufsc.labsec.signature.conformanceVerifier.common.Signature
getAlgorithmOid 
- 
Field Details
- 
signerInformation
protected org.bouncycastle.cms.SignerInformation signerInformation - 
isDetached
protected boolean isDetached 
 - 
 - 
Constructor Details
- 
CadesSignatureInformation
protected CadesSignatureInformation(org.bouncycastle.cms.SignerInformation signerInformation, boolean isDetached, CmsParent<CadesSignature> parent)Constrói umCadesSignatureInformation- Parameters:
 signerInformation- Objeto que encapsula uma assinaturaisDetached- Indica se a assinatura é destacadaparent- Objeto CMS ao qual o signerInformation pertence
 
 - 
 - 
Method Details
- 
hashCode
public int hashCode() - 
equals
 - 
setParent
 - 
getSignedAttributeList
Description copied from interface:SignatureRetorna a lista de atributos assinados- Specified by:
 getSignedAttributeListin interfaceSignature<org.bouncycastle.asn1.cms.Attribute>- Returns:
 - lista de atributos assinados
 
 - 
getUnsignedAttributeList
Description copied from interface:SignatureRetorna a lista de atributos não-assinados- Specified by:
 getUnsignedAttributeListin interfaceSignature<org.bouncycastle.asn1.cms.Attribute>- Returns:
 - lista de atributos não-assinados
 
 - 
getAttributeList
Description copied from interface:SignatureRetorna a lista de identificadores dos atributos utilizados no processo de assinatura. Se o atributo for do tipo CAdES, o identificador será um OID e se for do tipo XAdES, será o nome de uma tag- Specified by:
 getAttributeListin interfaceSignature<org.bouncycastle.asn1.cms.Attribute>- Returns:
 - A lista de atributos assinados e não-assinados da assinatura
 
 - 
getCounterSignatures
- Specified by:
 getCounterSignaturesin interfaceSignature<org.bouncycastle.asn1.cms.Attribute>
 - 
getEncodedAttribute
public org.bouncycastle.asn1.cms.Attribute getEncodedAttribute(String attributeId, Integer index) throws SignatureAttributeNotFoundExceptionRetorna um objeto do atributo desejado- Specified by:
 getEncodedAttributein interfaceSignature<org.bouncycastle.asn1.cms.Attribute>- Parameters:
 attributeId- O identificador do atributoindex- Índice do atributo- Returns:
 - Um objeto do atributo desejado
 - Throws:
 SignatureAttributeNotFoundException
 - 
getEncodedAttribute
public org.bouncycastle.asn1.cms.Attribute getEncodedAttribute(String attributeId) throws SignatureAttributeNotFoundExceptionObtém a codificação do primeiro atributo com este identificador na assinatura- Specified by:
 getEncodedAttributein interfaceGenericCadesSignature- Parameters:
 attributeId- O OID de identificação do atributo- Returns:
 - A codificação específica do atributo
 - Throws:
 SignatureAttributeNotFoundException
 - 
verify
public boolean verify(X509Certificate signerCertificate, SignatureReport sigReport, List<PbadException> exceptions, boolean isIcpBr) throws VerificationExceptionVerifica a integridade da assinatura- Specified by:
 verifyin interfaceGenericCadesSignature- Parameters:
 signerCertificate- O certificado do assinantesigReport- O relatório de verificação da assinaturaisIcpBr- Se as assinaturas são ICP-BR- Returns:
 - Indica se a assinatura é íntegra
 - Throws:
 VerificationException- Exceção em caso de erro durante a validação
 - 
getSignerInformationVerifier
public org.bouncycastle.cms.SignerInformationVerifier getSignerInformationVerifier(X509Certificate signerCertificate) throws VerificationExceptionConstrói umSignerInformationVerifierrelativo ao signerCertificate.- Parameters:
 signerCertificate- O certificado do assinante- Returns:
 - O 
SignerInformationVerifiergerado - Throws:
 VerificationException- Exceção em caso de erro na construção do objeto
 - 
isExternalSignedData
public boolean isExternalSignedData()Description copied from interface:GenericCadesSignatureVerifica se o dado assinado é externo à assinatura.- Specified by:
 isExternalSignedDatain interfaceGenericCadesSignature- Returns:
 - Indica se a assinatura possui conteúdo destacado
 
 - 
getSignaturePolicyIdentifier
Description copied from interface:GenericCadesSignatureObtém o identificador da PA (Política de Assinatura) utilizada nesta assinatura.- Specified by:
 getSignaturePolicyIdentifierin interfaceGenericCadesSignature- Returns:
 - O identificador da política de assinatura
 - Throws:
 PbadException- Exceção em caso de erro na obtenção da PA na assinatura
 - 
getSignatureValueHash
Utiliza o algoritmo indicado para realizar o resumo criptográfico da assinatura- Specified by:
 getSignatureValueHashin interfaceGenericCadesSignature- Parameters:
 hashAlgorithmName- O nome do algoritmo de resumo criptográfico- Returns:
 - Os bytes do resumo criptográfico da assinatura
 - Throws:
 NoSuchAlgorithmException
 - 
isSignatureValueHashValid
 - 
addUnsignedAttribute
public void addUnsignedAttribute(SignatureAttribute<org.bouncycastle.asn1.cms.Attribute> attribute) throws SignatureAttributeExceptionAdiciona um atributo não-assinado- Specified by:
 addUnsignedAttributein interfaceSignature<org.bouncycastle.asn1.cms.Attribute>- Parameters:
 attribute- O atributo a ser adicionado na assinatura- Throws:
 SignatureAttributeException- Exceção em caso de erro no atributo a ser adicionado
 - 
addCounterSignature
Adiciona uma contra-assinatura. Esse método não deve ser utilizado por usuários da biblioteca. Para a adição de contra assinaturas o usuário deve utiliza a classe- Parameters:
 counterSignatureAttribute- O atributo da contra-assinatura
 - 
getSignerInformation
public org.bouncycastle.cms.SignerInformation getSignerInformation()- Specified by:
 getSignerInformationin interfaceGenericCadesSignature- Returns:
 - O conjunto de informações do assinante 
SignerInformation 
 - 
getSignatureValue
public byte[] getSignatureValue()- Returns:
 - Valor da assinatura em bytes
 
 - 
getUnsignedAttributes
public org.bouncycastle.asn1.cms.AttributeTable getUnsignedAttributes()- Returns:
 - Os atributos não-assinados
 
 - 
getSignedAttributes
public org.bouncycastle.asn1.cms.AttributeTable getSignedAttributes()- Returns:
 - Os atributos assinados
 
 - 
buildSignerIdentifier
protected org.bouncycastle.cms.SignerId buildSignerIdentifier(X509Certificate counterSignerCertificate)Constrói umSignerIdpara o certificado passado como parâmetro- Parameters:
 counterSignerCertificate- Certificado o qual será criado umSignerId- Returns:
 - O objeto 
SignerIdcriado 
 - 
replaceUnsignedAttribute
public void replaceUnsignedAttribute(SignatureAttribute<org.bouncycastle.asn1.cms.Attribute> attribute, int index) throws SignatureAttributeExceptionSubstitui um atributo não assinado qualquer- Specified by:
 replaceUnsignedAttributein interfaceSignature<org.bouncycastle.asn1.cms.Attribute>- Parameters:
 attribute- O atributo que foi atualizadoindex- O índice do atributo em relação aos seus similares- Throws:
 PbadException- Exceção em caso de erro na substituição do atributoSignatureAttributeException- Exceção em caso de erro no atributo a ser substituído
 - 
replaceChildSignature
public void replaceChildSignature(org.bouncycastle.cms.SignerInformation counterSignerToReplace)Substitui o primeiro contra-assinante que tiver o mesmo identificador do assinante passado como parâmetro.- Specified by:
 replaceChildSignaturein interfaceCmsParent<CadesSignature>- Parameters:
 counterSignerToReplace- O contra-assinante a ser substituído
 - 
getSigAndRefsHashValue
public byte[] getSigAndRefsHashValue(String hashAlgorithmName) throws PbadException, NoSuchAlgorithmExceptionUtiliza o algoritmo indicado para realizar o resumo criptográfico das seguintes informações em ordem: - Valor da assinatura - Carimbo do tempo da assinatura - Referências de certificados completa - Referências de dados de validação completa - Referências de certificados de atributo completas* - Referências de dados de validação de certificados de atributo completa*Os últimos iténs indicados com * são opcionais e podem ou não estar presentes. Os outros dados devem necessáriamente estar presentes para que se possa obter o resumo criptográfico.
- Specified by:
 getSigAndRefsHashValuein interfaceGenericCadesSignature- Parameters:
 hashAlgorithmName- O algoritmo a ser utilizado para o resumo- Returns:
 - Os bytes do resumo criptográfico
 - Throws:
 PbadException- Exceção em caso de erro no cálculoNoSuchAlgorithmException
 - 
isSigAndRefsHashValid
public boolean isSigAndRefsHashValid(String hashAlgorithmName, byte[] expected) throws PbadExceptionUtiliza o algoritmo indicado para realizar o resumo criptográfico das seguintes informações em ordem: - Valor da assinatura - Carimbo do tempo da assinatura - Referências de certificados completa - Referências de dados de validação completa - Referências de certificados de atributo completas* - Referências de dados de validação de certificados de atributo completa*Os últimos iténs indicados com * são opcionais e podem ou não estar presentes. Os outros dados devem necessáriamente estar presentes para que se possa obter o resumo criptográfico.
- Parameters:
 hashAlgorithmName- O algoritmo a ser utilizado para o resumo- Returns:
 - Os bytes do resumo criptográfico
 - Throws:
 PbadException- Exceção em caso de erro no cálculo
 - 
replaceSignerInformation
protected void replaceSignerInformation()Atualiza as informações doSignerInformationda assinatura - 
toString
Retorna o identificador do assinante - 
getMode
Description copied from interface:GenericCadesSignatureRetorna o modo de assinatura- Specified by:
 getModein interfaceGenericCadesSignature- Returns:
 - O modo da assinatura
 
 - 
getFormat
Retorna o formato de assinatura - 
getSignaturePolicyUri
Description copied from interface:GenericCadesSignatureObtem a URI da LPA que contém a política de assinatura da assinatura- Specified by:
 getSignaturePolicyUriin interfaceGenericCadesSignature- Returns:
 - A URI da LPA que contém a política de assinatura da assinatura
 
 - 
getSignaturePolicyHashValue
Description copied from interface:GenericCadesSignatureRetorna o valor de hash da política- Specified by:
 getSignaturePolicyHashValuein interfaceGenericCadesSignature- Returns:
 - O valor de hash da política
 
 - 
removeUnsignedAttribute
public void removeUnsignedAttribute(String attributeId, int index) throws SignatureAttributeNotFoundExceptionRemove um atributo não-assinado- Parameters:
 attributeId- O identificador do atributo a ser removidoindex- O índice do atributo que será removido- Throws:
 SignatureAttributeNotFoundException- Exceção caso o atributo não seja encontrado
 - 
getArchiveTimeStampHashValue
public byte[] getArchiveTimeStampHashValue(String hashAlgorithmName) throws NoSuchAlgorithmException, PbadExceptionUtiliza o algoritmo indicado para realizar o resumo criptográfico do carimbo de tempo de arquivamento- Specified by:
 getArchiveTimeStampHashValuein interfaceGenericCadesSignature- Parameters:
 hashAlgorithmName- O nome do algoritmo a ser utilizado para o resumo- Returns:
 - Os bytes do resumo criptográfico
 - Throws:
 PbadException- Exceção em caso de erro no cálculoNoSuchAlgorithmException
 - 
getArchiveTimeStampHashValue
public byte[] getArchiveTimeStampHashValue(String hashAlgorithmName, Time timeReference) throws NoSuchAlgorithmException, PbadExceptionUtiliza o algoritmo indicado para realizar o resumo criptográfico do carimbo de tempo de arquivamento.- Specified by:
 getArchiveTimeStampHashValuein interfaceGenericCadesSignature- Parameters:
 hashAlgorithmName- O algoritmo a ser utilizado para o resumotimeReference- A data de referência do carimbo- Returns:
 - Os bytes do resumo criptográfico
 - Throws:
 PbadException- Exceção em caso de erro no cálculoNoSuchAlgorithmException
 - 
getArchiveTimeStampHashValue
public byte[] getArchiveTimeStampHashValue(String hashAlgorithmName, Time timeReference, boolean hashIncludingTag) throws PbadException, NoSuchAlgorithmExceptionUtiliza o algoritmo indicado para realizar o resumo criptográfico do carimbo de tempo de arquivamento.- Parameters:
 hashAlgorithmName- O algoritmo a ser utilizado para o resumotimeReference- A data de referência do carimbohashIncludingTag- Indica a forma de cálculo da hash, de acordo com as notas 2 e 3 da página 109 do ETSI TS 101 733 V2.2.1. Se verdadeiro, indica que o cálculo é feito sem incluir tag e length.- Returns:
 - Os bytes do resumo criptográfico
 - Throws:
 PbadException- Exceção em caso de erro no cálculoNoSuchAlgorithmException
 - 
getArchiveTimeStampATSHashValue
public byte[] getArchiveTimeStampATSHashValue(String hashAlgorithmName, CadesSignature signature, byte[] atsHashIndexV3) throws NoSuchAlgorithmExceptionUtiliza o algoritmo indicado para realizar o resumo criptográfico do carimbo de tempo de arquivamento para verificação do ArchiveTimesStampV3- Parameters:
 hashAlgorithmName- Algoritmo a ser usado para o resumo criptográficosignature- Assinatura com atributos a serem obtidosatsHashIndexV3- ATSHashIndex utilizado na verificação- Returns:
 - Throws:
 PbadExceptionNoSuchAlgorithmExceptionIOException
 - 
isArchiveTimeStampWithATSHashValueValid
public boolean isArchiveTimeStampWithATSHashValueValid(String hashAlgorithmId, CadesSignature signature, byte[] atsHashIndexV3, byte[] expected) throws PbadException, IOException- Throws:
 PbadExceptionIOException
 - 
isArchiveTimeStampHashValid
public boolean isArchiveTimeStampHashValid(String hashAlgorithmName, Time timeReference, boolean hashIncludingTag, byte[] expected) throws PbadException- Throws:
 PbadException
 - 
getSignedData
public org.bouncycastle.cms.CMSSignedData getSignedData()Retorna uma representação do contêiner de assinaturas.- Specified by:
 getSignedDatain interfaceCmsParent<CadesSignature>- Returns:
 - O objeto 
CMSSignedData 
 - 
getContentToBeSigned
public byte[] getContentToBeSigned()Retorna os bytes do conteúdo que será assinado- Specified by:
 getContentToBeSignedin interfaceCmsParent<CadesSignature>- Returns:
 - Os bytes do conteúdo que será assinado
 
 - 
getSignedContent
- Specified by:
 getSignedContentin interfaceCmsParent<CadesSignature>- Throws:
 CadesSignatureException
 - 
getContainer
Retorna o contêiner da assinatura- Specified by:
 getContainerin interfaceCmsParent<CadesSignature>- Returns:
 - O contêiner da assinatura
 
 - 
getMessageDigest
public byte[] getMessageDigest(org.bouncycastle.cms.SignerInformation signerInformation)Retorna o message digest para uma assinatura Cades- Parameters:
 signerInformation- informações da assinatura cades- Returns:
 - byte do message digest
 
 
 -