Class SignatureVerifier
java.lang.Object
br.ufsc.labsec.signature.conformanceVerifier.xades.AbstractVerifier
br.ufsc.labsec.signature.conformanceVerifier.xades.SignatureVerifier
public class SignatureVerifier extends AbstractVerifier
Esta classe é responsável por verificar uma assinatura.
Estende
AbstractVerifier
.-
Field Summary
Fields Modifier and Type Field Description protected byte[]
bytesOfSignedContent
Bytes do conteúdo assinadoprotected SignaturePolicyInterface
signaturePolicy
Política de assinaturaFields inherited from class br.ufsc.labsec.signature.conformanceVerifier.xades.AbstractVerifier
certPath, certStore, component, exceptions, mandatedAttributes, ocspRespList, ocspServerCertificate, optionalAttributes, prohibitedAttributes, signature, signerCert
-
Constructor Summary
Constructors Constructor Description SignatureVerifier(XadesSignature signature, SignatureVerifierParams params, SignaturePolicyInterface signaturePolicyInterface)
Constrói umSignatureVerifier
a partir da assinatura a ser verificada.SignatureVerifier(XadesSignature signature, XadesSignatureComponent xadesSignatureComponent)
Constrói umSignatureVerifier
a partir da assinatura a ser verificada e da política de assinatura usada na assinatura.SignatureVerifier(XadesSignature signature, SignaturePolicyInterface signaturePolicyInterface)
Constrói umSignatureVerifier
a partir da assinatura a ser verificada -
Method Summary
Modifier and Type Method Description protected void
checkAcceptablePolicies()
Percorre o caminho de certificação verificando se as políticas usadas para cada certificado se encontram dentro das permitidas pela política de assinatura.protected boolean
checkExternalSignedData()
Verifica se a assinatura está respeitando a regra da política de assinatura sobre o dado assinado ser interno, externo ou indiferente.protected boolean
checkKeyLength()
Checa se o tamanho da chave usada para assinar é compatível com o tamanho mínimo exigido pela PA.protected boolean
checkPolicyAlgorithmsConstraints()
Verifica se o algoritmo especificado na Política de Assinatura é o mesmo usado na assinatura.protected void
checkPolicyConstraints(List<PbadException> exceptions)
Verifica regras da política de assinatura que não são especificas de apenas um atributo, mas tem um contexto global, como por exemplo restrições de algortimos.protected boolean
checkSignaturePolicyPeriod()
Verifica se a assinatura foi feita dentro do período válido para o uso de políticasList<TimeStamp>
getOrderedTimeStamps()
Retorna uma lista de atributos de Carimbo do Tempo (aqueles referenciados na lista de prioridade) ordenada por identificador, de acordo com o especificado na lista de prioridade, e com cada grupo de mesmo identificador ordenado por tempo (TimeReference).PaReport
getPaReport()
Retorna o relatório da verificação da política de assinaturaXadesSignature
getSignature()
Retorna a assinatura que foi passada na construção da classeSignaturePolicyInterface
getSignaturePolicy()
Retorna a Política de Assinatura da assinatura passada na construção desta classe.List<PbadException>
getSignatureValidationErrors()
Retorna a lista dos erros que ocorreram na última validaçãobyte[]
getSignedContent()
Retorna os bytes do conteúdo assinado que foram passados no métodosetSignedContent(byte[] signedContent)
boolean
verify(SignatureReport sigReport)
Verifica todos os campos da assinatura conforme especificado na PA da assinatura.protected void
verifySchema(SignatureReport sigReport)
Verifica o esquema XML da assinaturaprotected boolean
verifySignature(SignatureReport sigReport, boolean isComplete)
Verifica a assinatura e adiciona os resultados ao relatóriovoid
verifySimple(SignatureReport sigReport)
Faz uma verificação simplificada da assinatura, testando apenas a integridade da assinatura e o seu caminho de certificaçãoMethods inherited from class br.ufsc.labsec.signature.conformanceVerifier.xades.AbstractVerifier
checkAcceptablePolicies, checkAlgorithmsConstraints, getCertStore, getCurrentTimeReference, getOcspList, getOcspServerCertificate, getParams, getSignerCertificate, getSignerCertPath, getTemporaryTimeReference, getTimeReference, getTimeStampPriorityList, getTSTimeReference, getXadesSignatureComponent, hasProofOfExistence, initialize, setCertStore, setCurrentTimeReference, setOcsps, setOcspServerCertificate, setSignerCert, setTemporaryTimeReference, setTimeReference, verifyAttributesInMandatedList, verifyConformity, verifyOnlyUnmandatedAttributes
-
Field Details
-
signaturePolicy
Política de assinatura -
bytesOfSignedContent
protected byte[] bytesOfSignedContentBytes do conteúdo assinado
-
-
Constructor Details
-
SignatureVerifier
public SignatureVerifier(XadesSignature signature, XadesSignatureComponent xadesSignatureComponent) throws SignatureVerifierExceptionConstrói umSignatureVerifier
a partir da assinatura a ser verificada e da política de assinatura usada na assinatura.- Parameters:
signature
- A assinatura XAdES a ser verificadaxadesSignatureComponent
- A política de assinatura- Throws:
SignatureVerifierException
- Exceção caso a assinatura seja nula
-
SignatureVerifier
public SignatureVerifier(XadesSignature signature, SignaturePolicyInterface signaturePolicyInterface) throws SignatureVerifierException, PbadExceptionConstrói umSignatureVerifier
a partir da assinatura a ser verificada- Parameters:
signature
- A assinatura XAdES a ser verificadasignaturePolicyInterface
- A política de assinatura- Throws:
SignatureVerifierException
- Exceção caso a assinatura seja nulaPbadException
- Exceção em caso de erro na inicialização dos atributos
-
SignatureVerifier
public SignatureVerifier(XadesSignature signature, SignatureVerifierParams params, SignaturePolicyInterface signaturePolicyInterface) throws PbadException, SignatureVerifierExceptionConstrói umSignatureVerifier
a partir da assinatura a ser verificada. Serão assumidos os parâmetros passados emparams
para verificação.- Parameters:
signature
- A assinatura XAdES a ser verificadaparams
- Os parâmetros de verificaçãosignaturePolicyInterface
- A política de assinatura- Throws:
PbadException
- Exceção em caso de erro na inicialização dos atributosSignatureVerifierException
- Exceção caso a assinatura seja nula
-
-
Method Details
-
verify
Verifica todos os campos da assinatura conforme especificado na PA da assinatura. Caso a assinatura não seja válida, os erros de validação serão disponibilizados no métodogetSignatureValidationErros
.Todas as regras de verificação da política de assinatura serão levados em conta. Primeiro validando as regras para o caminho do assinante, depois verificando se os atributos obrigatórios estão todos presentes na assinatura, para então verificar a validade de cada atributo e por fim verificar a integridade da assinatura. O resultado da verificação é adicionado ao relatório dado.
- Specified by:
verify
in classAbstractVerifier
- Parameters:
sigReport
- O relatório de verificação da assinatura- Returns:
- Indica se a assinatura é válida
-
verifySimple
Faz uma verificação simplificada da assinatura, testando apenas a integridade da assinatura e o seu caminho de certificação- Parameters:
sigReport
- Relatório da assinatura
-
verifySchema
Verifica o esquema XML da assinatura- Throws:
SAXException
- Exceção em caso de falha na manipulação do esquemaIOException
- Exceção em caso de erro na manipulação da assinaturaXadesSchemaException
- Exceção em caso de erro na obtenção do esquema
-
getSignatureValidationErrors
Retorna a lista dos erros que ocorreram na última validação- Returns:
- A lista de erros
-
getSignedContent
public byte[] getSignedContent()Retorna os bytes do conteúdo assinado que foram passados no métodosetSignedContent(byte[] signedContent)
- Returns:
- Os bytes do conteúdo assinado
-
getSignature
Retorna a assinatura que foi passada na construção da classe- Overrides:
getSignature
in classAbstractVerifier
- Returns:
- A assinatura a ser verificada
-
getSignaturePolicy
Retorna a Política de Assinatura da assinatura passada na construção desta classe.- Specified by:
getSignaturePolicy
in classAbstractVerifier
- Returns:
- A política de assinatura
-
checkPolicyConstraints
Verifica regras da política de assinatura que não são especificas de apenas um atributo, mas tem um contexto global, como por exemplo restrições de algortimos.- Parameters:
exceptions
- Lista de erros da verificação
-
checkPolicyAlgorithmsConstraints
protected boolean checkPolicyAlgorithmsConstraints()Verifica se o algoritmo especificado na Política de Assinatura é o mesmo usado na assinatura.- Returns:
- Indica se os identificadores dos algoritmos de hash são os mesmos
-
checkAcceptablePolicies
Percorre o caminho de certificação verificando se as políticas usadas para cada certificado se encontram dentro das permitidas pela política de assinatura.- Throws:
CertificationPathException
- Exceção em caso de erro no caminho de certificação
-
checkKeyLength
protected boolean checkKeyLength()Checa se o tamanho da chave usada para assinar é compatível com o tamanho mínimo exigido pela PA.- Returns:
- Indica se o tamanho da chave do assinante é igual ou maior que o exigido
-
checkSignaturePolicyPeriod
Verifica se a assinatura foi feita dentro do período válido para o uso de políticas- Returns:
- Indica se a assinatura está dentro do período válido para o uso de políticas
- Throws:
SignatureAttributeException
- Exceção em caso de erro na manipulação de atributos
-
checkExternalSignedData
Verifica se a assinatura está respeitando a regra da política de assinatura sobre o dado assinado ser interno, externo ou indiferente.- Returns:
- Indica se a assinatura está de acordo com a política
- Throws:
PbadException
-
verifySignature
protected boolean verifySignature(SignatureReport sigReport, boolean isComplete) throws VerificationExceptionVerifica a assinatura e adiciona os resultados ao relatório- Parameters:
sigReport
- O relatório de verificação da assinaturaisComplete
- Se o relatório é completo ou simples- Returns:
- Indica se a assinatura está válida
- Throws:
VerificationException
- Exceção em caso de erro durante a verificação
-
getOrderedTimeStamps
public List<TimeStamp> getOrderedTimeStamps() throws SignatureAttributeException, UnknowAttributeExceptionRetorna uma lista de atributos de Carimbo do Tempo (aqueles referenciados na lista de prioridade) ordenada por identificador, de acordo com o especificado na lista de prioridade, e com cada grupo de mesmo identificador ordenado por tempo (TimeReference). Na ordenação por tempo, é considerado que o tempo mais recente (ou seja, maior) tem maior prioridade.- Returns:
- A lista de carimbos de tempo ordenada de acordo
- Throws:
SignatureAttributeException
- Exceção em caso de erro nos atributos da assinaturaUnknowAttributeException
- Exceção em caso de atributo desconhecido
-
getPaReport
Retorna o relatório da verificação da política de assinatura- Returns:
- O relatório da verificação da política de assinatura
- Throws:
SignatureAttributeException
- Exceção em caso de erro nos atributos da assinatura
-