Class JadesSignature
java.lang.Object
br.ufsc.labsec.signature.conformanceVerifier.jades.JadesSignature
- All Implemented Interfaces:
- Signature<JadesAttrCommonStruct>,- SignatureObject
- Direct Known Subclasses:
- CounterSignature
public class JadesSignature extends Object implements Signature<JadesAttrCommonStruct>, SignatureObject
Esta classe representa uma assinatura JAdES.
 Implementa 
Signature.- 
Nested Class SummaryNested Classes Modifier and Type Class Description static classJadesSignature.ContentEncod
- 
Field SummaryFields Modifier and Type Field Description booleanpayloadInBase64UrlIndica se é necessário codificar alguns elementos em Base64Url durante a verificação.protected DatetimeReference
- 
Constructor SummaryConstructors Constructor Description JadesSignature(String encodedProtectedHeader, String encodedSignature, JadesSignatureContainer container)Construtor de assinatura e sem atributos não assinadosJadesSignature(String encodedProtectedHeader, String encodedSignature, org.json.JSONObject unprotectedHeader, JadesSignatureContainer container)Construtor de assinatura e com atributos não assinados
- 
Method SummaryModifier and Type Method Description voidaddProcessedCrit(String attr)voidaddUnsignedAttribute(SignatureAttribute<JadesAttrCommonStruct> attribute)Adiciona um atributo não-assinadobooleancontainsUnprotectedHeaders()Verifica a presença de unprotected headers na assinaturaStringgetAlgorithmOid()byte[]getArchiveTimeStampHashValue(String hashAlgorithmId)Calcula o valor de hash do carimbo de tempo de arquivamentoList<String>getAttributeList()Retorna a lista de Strings com os nomes dos atributos presentes na assinaturaList<X509Certificate>getCertificateChain()Busca por headers com os valores dos certificados.List<? extends Signature<JadesAttrCommonStruct>>getCounterSignatures()org.json.JSONObjectgetEncodedAttribute(String identifier)Retorna o atributo correspondente ao identificador dado como JSONObjectJadesAttrCommonStructgetEncodedAttribute(String identifier, Integer index)Retorna o atributo correspondente ao identificador ou índice dadoStringgetEncodedProtectedHeader()Retorna o valor codificado dos protected headersStringgetEncodedSignature()Retorna o valor codificado da assinaturaorg.json.JSONObjectgetEncodedUnprotectedHeaders()Retorna o valor do unprotected headers como JSONObject como um header 'etsiU'FileFormatgetFormat()StringgetPayloadFromSigDHeader()Retorna o valor do payload abtido por processamento do header sigDorg.json.JSONObjectgetProtectedHeaders()Retorna o valor do protected headers como JSONObjectObjectgetProtectedHeaderValue(String headerName)Retorna o valor de um protected headers através do nomebyte[]getRefsOnlyTimeStampHashValue(String hashAlgorithmId)Retorna o hash concatenado das referências do certificado com o hash das referências de revogação.byte[]getSigAndRefsHashValue(String hashAlgorithmId)Retorna o hash concatenado da assinatura, com o hash do carimbo do tempo, o hash das referências do certificado e com o hash das referências de revogação.StringgetSignaturePolicyIdentifier()Retorna o identificador da política de assinatura usadaStringgetSignaturePolicyUri()Obtem a URI da LPA que contém a política de assinatura da assinaturabyte[]getSignatureValueHash(String hashAlgorithmId)Retorna o valor de hash da assinaturaList<String>getSignedAttributeList()Retorna a lista de atributos assinadosbyte[]getSignerDataTimeStampHashValue(String hashAlgorithmId)Calcula o valor de hash do carimbo de tempoDategetTimeReference()org.json.JSONObjectgetUnprotectedHeaders()Retorna o valor do unprotected headers como JSONObjectObjectgetUnprotectedHeaderValue(String headerName)Retorna o valor de um unprotected headers através do nomeList<String>getUnsignedAttributeList()Retorna a lista de atributos não-assinadosinthashCode()voidinitiateCritHeader(Verifier jadesVerifier)booleanisDetached()Retorna se a assinatura é ou não destacadavoidreplaceUnsignedAttribute(SignatureAttribute<JadesAttrCommonStruct> attribute, int index)Substitui um atributo não-assinadovoidsetEtsiuEncod(JadesSignature.ContentEncod etsiuEncod)voidsetTimeReference(Date timeReference)voidvalidateCritHeader()voidverifyIntegrity(X509Certificate signerCertificate, SignatureReport report, boolean isComplete)Valida a integridade da assinatura
- 
Field Details- 
payloadInBase64Urlpublic final boolean payloadInBase64UrlIndica se é necessário codificar alguns elementos em Base64Url durante a verificação. Isto é definido com o header 'b64'.
- 
timeReference
 
- 
- 
Constructor Details- 
JadesSignaturepublic JadesSignature(String encodedProtectedHeader, String encodedSignature, org.json.JSONObject unprotectedHeader, JadesSignatureContainer container) throws SignatureExceptionConstrutor de assinatura e com atributos não assinados- Parameters:
- encodedProtectedHeader- Protected headers codficados
- encodedSignature- Valor da assinatura codificado
- unprotectedHeader- Unprotected headers
- container- Contêiner de assinatura JAdES
- Throws:
- SignatureException
 
- 
JadesSignaturepublic JadesSignature(String encodedProtectedHeader, String encodedSignature, JadesSignatureContainer container) throws SignatureExceptionConstrutor de assinatura e sem atributos não assinados- Parameters:
- encodedProtectedHeader- Protected headers codficados
- encodedSignature- Valor da assinatura codificado
- container- Contêiner de assinatura JAdES
- Throws:
- SignatureException
 
 
- 
- 
Method Details- 
hashCodepublic int hashCode()
- 
setTimeReference
- 
getTimeReference
- 
getProtectedHeaderValueRetorna o valor de um protected headers através do nome- Parameters:
- headerName- O nome do header a ser buscado
- Returns:
- O valor do header
 
- 
getUnprotectedHeaderValueRetorna o valor de um unprotected headers através do nome- Parameters:
- headerName- O nome do header a ser buscado
- Returns:
- O valor do header
 
- 
verifyIntegritypublic void verifyIntegrity(X509Certificate signerCertificate, SignatureReport report, boolean isComplete)Valida a integridade da assinatura- Parameters:
- report- O relatório de verificação da assinatura
 
- 
getCertificateChainBusca por headers com os valores dos certificados. Estes headers são "x5c" e "x5u", que podem conter toda a cadeia de certificados ou apenas o certificado do assinante.- Returns:
- A cadeia de certificados (pode conter apenas o certificado do assinante)
 
- 
getSignedAttributeListDescription copied from interface:SignatureRetorna a lista de atributos assinados- Specified by:
- getSignedAttributeListin interface- Signature<JadesAttrCommonStruct>
- Returns:
- lista de atributos assinados
 
- 
getUnsignedAttributeListDescription copied from interface:SignatureRetorna a lista de atributos não-assinados- Specified by:
- getUnsignedAttributeListin interface- Signature<JadesAttrCommonStruct>
- Returns:
- lista de atributos não-assinados
 
- 
getAttributeListRetorna a lista de Strings com os nomes dos atributos presentes na assinatura- Specified by:
- getAttributeListin interface- Signature<JadesAttrCommonStruct>
- Returns:
- lista de Strings com os nomes dos atributos presentes na assinatura
 
- 
getCounterSignatures- Specified by:
- getCounterSignaturesin interface- Signature<JadesAttrCommonStruct>
 
- 
getEncodedAttributepublic JadesAttrCommonStruct getEncodedAttribute(String identifier, Integer index) throws SignatureAttributeNotFoundExceptionRetorna o atributo correspondente ao identificador ou índice dado- Specified by:
- getEncodedAttributein interface- Signature<JadesAttrCommonStruct>
- Parameters:
- identifier- o identificador do atributo
- index- o índice do atributo
- Returns:
- o elemento XML do atributo na assinatura
- Throws:
- SignatureAttributeNotFoundException
 
- 
getFormat- Specified by:
- getFormatin interface- Signature<JadesAttrCommonStruct>
 
- 
getAlgorithmOid- Specified by:
- getAlgorithmOidin interface- Signature<JadesAttrCommonStruct>
 
- 
containsUnprotectedHeaderspublic boolean containsUnprotectedHeaders()Verifica a presença de unprotected headers na assinatura- Returns:
- Indica se há unprotected headers na assinatura
 
- 
getEncodedSignatureRetorna o valor codificado da assinatura- Returns:
- O valor codificado da assinatura
 
- 
getEncodedProtectedHeaderRetorna o valor codificado dos protected headers- Returns:
- O valor codificado dos protected headers
 
- 
getUnprotectedHeaderspublic org.json.JSONObject getUnprotectedHeaders()Retorna o valor do unprotected headers como JSONObject- Returns:
- O JSONObject do unprotected headers
 
- 
getEncodedUnprotectedHeaderspublic org.json.JSONObject getEncodedUnprotectedHeaders()Retorna o valor do unprotected headers como JSONObject como um header 'etsiU'- Returns:
- O JSONObject do unprotected headers como entrada 'etsiU'
 
- 
getProtectedHeaderspublic org.json.JSONObject getProtectedHeaders()Retorna o valor do protected headers como JSONObject- Returns:
- O JSONObject do protected headers
 
- 
getSignatureValueHashRetorna o valor de hash da assinatura- Parameters:
- hashAlgorithmId- O algoritmo a ser utilizado para o cálculo de hash
- Returns:
- Array de bytes com valor de hash da assinatura
 
- 
getRefsOnlyTimeStampHashValueRetorna o hash concatenado das referências do certificado com o hash das referências de revogação.- Parameters:
- hashAlgorithmId- O algoritmo a ser utilizado para o cálculo de hash
- Returns:
- Array de bytes com valor de hash
 
- 
getSigAndRefsHashValueRetorna o hash concatenado da assinatura, com o hash do carimbo do tempo, o hash das referências do certificado e com o hash das referências de revogação.- Parameters:
- hashAlgorithmId- O algoritmo a ser utilizado para o cálculo de hash
- Returns:
- Array de bytes com valor de hash
- Throws:
- PbadException- Exceção em caso de erro no cálculo
 
- 
getArchiveTimeStampHashValuepublic byte[] getArchiveTimeStampHashValue(String hashAlgorithmId) throws PbadException, IOExceptionCalcula o valor de hash do carimbo de tempo de arquivamento- Parameters:
- hashAlgorithmId- O algoritmo a ser utilizado no cálculo
- Returns:
- O valor de hash do carimbo
- Throws:
- PbadException
- IOException
 
- 
getPayloadFromSigDHeaderRetorna o valor do payload abtido por processamento do header sigD- Returns:
- Throws:
- SignatureAttributeException
- IOException
 
- 
getSignerDataTimeStampHashValuepublic byte[] getSignerDataTimeStampHashValue(String hashAlgorithmId) throws PbadException, IOExceptionCalcula o valor de hash do carimbo de tempo- Parameters:
- hashAlgorithmId- O algoritmo a ser utilizado no cálculo
- Returns:
- O valor de hash do carimbo
- Throws:
- PbadException
- IOException
 
- 
addUnsignedAttributepublic void addUnsignedAttribute(SignatureAttribute<JadesAttrCommonStruct> attribute) throws SignatureAttributeExceptionAdiciona um atributo não-assinado- Specified by:
- addUnsignedAttributein interface- Signature<JadesAttrCommonStruct>
- Parameters:
- attribute- O atributo a ser adicionado na assinatura
- Throws:
- SignatureAttributeException
 
- 
replaceUnsignedAttributepublic void replaceUnsignedAttribute(SignatureAttribute<JadesAttrCommonStruct> attribute, int index) throws SignatureAttributeExceptionDescription copied from interface:SignatureSubstitui um atributo não-assinado- Specified by:
- replaceUnsignedAttributein interface- Signature<JadesAttrCommonStruct>
- Parameters:
- attribute- atributo a ser substituído
- index- índice do atributo a ser substituído
- Throws:
- SignatureAttributeException
 
- 
getEncodedAttributepublic org.json.JSONObject getEncodedAttribute(String identifier) throws SignatureAttributeNotFoundExceptionRetorna o atributo correspondente ao identificador dado como JSONObject- Parameters:
- identifier- O identificador do atributo
- Returns:
- O JSONObject do atributo correspondente ao identificador dado
- Throws:
- SignatureAttributeNotFoundException
 
- 
isDetachedpublic boolean isDetached()Retorna se a assinatura é ou não destacada
- 
getSignaturePolicyUriObtem a URI da LPA que contém a política de assinatura da assinatura- Returns:
- A URI da LPA
 
- 
getSignaturePolicyIdentifierRetorna o identificador da política de assinatura usada- Returns:
- O identificador da política de assinatura
- Throws:
- PbadException- Exceção em caso de erro na obtenção da PA na assinatura
 
- 
initiateCritHeader
- 
validateCritHeader- Throws:
- PbadException
 
- 
addProcessedCrit
- 
setEtsiuEncod
 
-