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 Summary
Nested Classes Modifier and Type Class Description static class
JadesSignature.ContentEncod
-
Field Summary
Fields Modifier and Type Field Description boolean
payloadInBase64Url
Indica se é necessário codificar alguns elementos em Base64Url durante a verificação. -
Constructor Summary
Constructors 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 Summary
Modifier and Type Method Description void
addProcessedCrit(String attr)
void
addUnsignedAttribute(SignatureAttribute<JadesAttrCommonStruct> attribute)
Adiciona um atributo não-assinadoboolean
containsUnprotectedHeaders()
Verifica a presença de unprotected headers na assinaturabyte[]
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.org.json.JSONObject
getEncodedAttribute(String identifier)
Retorna o atributo correspondente ao identificador dado como JSONObjectJadesAttrCommonStruct
getEncodedAttribute(String identifier, Integer index)
Retorna o atributo correspondente ao identificador ou índice dadoString
getEncodedProtectedHeader()
Retorna o valor codificado dos protected headersString
getEncodedSignature()
Retorna o valor codificado da assinaturaorg.json.JSONObject
getEncodedUnprotectedHeaders()
Retorna o valor do unprotected headers como JSONObject como um header 'etsiU'String
getPayloadFromSigDHeader()
Retorna o valor do payload abtido por processamento do header sigDorg.json.JSONObject
getProtectedHeaders()
Retorna o valor do protected headers como JSONObjectObject
getProtectedHeaderValue(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.String
getSignaturePolicyIdentifier()
Retorna o identificador da política de assinatura usadaString
getSignaturePolicyUri()
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()
byte[]
getSignerDataTimeStampHashValue(String hashAlgorithmId)
Calcula o valor de hash do carimbo de tempoorg.json.JSONObject
getUnprotectedHeaders()
Retorna o valor do unprotected headers como JSONObjectObject
getUnprotectedHeaderValue(String headerName)
Retorna o valor de um unprotected headers através do nomeList<String>
getUnsignedAttributeList()
void
initiateCritHeader(Verifier jadesVerifier)
boolean
isDetached()
Retorna se a assinatura é ou não destacadavoid
setEtsiuEncod(JadesSignature.ContentEncod etsiuEncod)
void
validateCritHeader()
void
verifyIntegrity(X509Certificate signerCertificate, SignatureReport report, boolean isComplete)
Valida a integridade da assinatura
-
Field Details
-
payloadInBase64Url
public final boolean payloadInBase64UrlIndica se é necessário codificar alguns elementos em Base64Url durante a verificação. Isto é definido com o header 'b64'.
-
-
Constructor Details
-
JadesSignature
public 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 codficadosencodedSignature
- Valor da assinatura codificadounprotectedHeader
- Unprotected headerscontainer
- Contêiner de assinatura JAdES- Throws:
SignatureException
-
JadesSignature
public JadesSignature(String encodedProtectedHeader, String encodedSignature, JadesSignatureContainer container) throws SignatureExceptionConstrutor de assinatura e sem atributos não assinados- Parameters:
encodedProtectedHeader
- Protected headers codficadosencodedSignature
- Valor da assinatura codificadocontainer
- Contêiner de assinatura JAdES- Throws:
SignatureException
-
-
Method Details
-
getProtectedHeaderValue
Retorna o valor de um protected headers através do nome- Parameters:
headerName
- O nome do header a ser buscado- Returns:
- O valor do header
-
getUnprotectedHeaderValue
Retorna o valor de um unprotected headers através do nome- Parameters:
headerName
- O nome do header a ser buscado- Returns:
- O valor do header
-
verifyIntegrity
public void verifyIntegrity(X509Certificate signerCertificate, SignatureReport report, boolean isComplete)Valida a integridade da assinatura- Parameters:
report
- O relatório de verificação da assinatura
-
getCertificateChain
Busca 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)
-
getSignedAttributeList
-
getUnsignedAttributeList
-
getAttributeList
Retorna a lista de Strings com os nomes dos atributos presentes na assinatura- Specified by:
getAttributeList
in interfaceSignature<JadesAttrCommonStruct>
- Returns:
- lista de Strings com os nomes dos atributos presentes na assinatura
-
getEncodedAttribute
public JadesAttrCommonStruct getEncodedAttribute(String identifier, Integer index) throws SignatureAttributeNotFoundExceptionRetorna o atributo correspondente ao identificador ou índice dado- Specified by:
getEncodedAttribute
in interfaceSignature<JadesAttrCommonStruct>
- Parameters:
identifier
- o identificador do atributoindex
- o índice do atributo- Returns:
- o elemento XML do atributo na assinatura
- Throws:
SignatureAttributeNotFoundException
-
containsUnprotectedHeaders
public boolean containsUnprotectedHeaders()Verifica a presença de unprotected headers na assinatura- Returns:
- Indica se há unprotected headers na assinatura
-
getEncodedSignature
Retorna o valor codificado da assinatura- Returns:
- O valor codificado da assinatura
-
getEncodedProtectedHeader
Retorna o valor codificado dos protected headers- Returns:
- O valor codificado dos protected headers
-
getUnprotectedHeaders
public org.json.JSONObject getUnprotectedHeaders()Retorna o valor do unprotected headers como JSONObject- Returns:
- O JSONObject do unprotected headers
-
getEncodedUnprotectedHeaders
public 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'
-
getProtectedHeaders
public org.json.JSONObject getProtectedHeaders()Retorna o valor do protected headers como JSONObject- Returns:
- O JSONObject do protected headers
-
getSignatureValueHash
Retorna 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
-
getRefsOnlyTimeStampHashValue
Retorna 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
-
getSigAndRefsHashValue
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.- 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
-
getArchiveTimeStampHashValue
public 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
-
getPayloadFromSigDHeader
Retorna o valor do payload abtido por processamento do header sigD- Returns:
- Throws:
SignatureAttributeException
IOException
-
getSignerDataTimeStampHashValue
public 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
-
addUnsignedAttribute
public void addUnsignedAttribute(SignatureAttribute<JadesAttrCommonStruct> attribute) throws SignatureAttributeExceptionAdiciona um atributo não-assinado- Specified by:
addUnsignedAttribute
in interfaceSignature<JadesAttrCommonStruct>
- Parameters:
attribute
- O atributo a ser adicionado na assinatura- Throws:
SignatureAttributeException
-
getEncodedAttribute
public 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
-
isDetached
public boolean isDetached()Retorna se a assinatura é ou não destacada -
getSignaturePolicyUri
Obtem a URI da LPA que contém a política de assinatura da assinatura- Returns:
- A URI da LPA
-
getSignaturePolicyIdentifier
Retorna 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
-