Class SignatureVerifier
java.lang.Object
br.ufsc.labsec.signature.conformanceVerifier.cades.AbstractVerifier
br.ufsc.labsec.signature.conformanceVerifier.cades.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
O conteúdo assinadostatic String
MISSING_CERTIFICATES_IN_SIGNED_DATA
protected SignaturePolicyInterface
signaturePolicy
A política de assinaturaFields inherited from class br.ufsc.labsec.signature.conformanceVerifier.cades.AbstractVerifier
certPath, component, exceptions, mandatedAttributes, ocspRespList, ocspServerCertificate, optionalAttributes, prohibitedAttributes, proofOfExistence, signature, signerCert
-
Constructor Summary
Constructors Constructor Description SignatureVerifier(CadesSignature signature)
Constrói umSignatureVerifier
a partir da assinatura a ser verificada.SignatureVerifier(CadesSignature signature, CadesSignatureComponent cadesSignatureComponent)
Constrói umSignatureVerifier
a partir da assinatura a ser verificada e da política de assinatura usada na assinatura.SignatureVerifier(CadesSignature signature, SignatureVerifierParams params, CadesSignatureComponent cadesSignatureComponent)
Constrói umSignatureVerifier
a partir da assinatura a ser verificada.SignatureVerifier(CadesSignature signature, SignatureVerifierParams params, SignaturePolicyInterface signaturePolicy)
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 indiferenteprotected boolean
checkKeyLength()
Checa se o tamanho da chave usada para assinar é compatível com o tamanho mínimo exigido pela PA.protected void
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íticas.ValidationResult
checkValidationResultAlgorithm(SignatureReport sigReport, String exceptionType, List<PbadException> errors, ValidationResult validationResultNow)
Verifica se o ValidationResult do SignatureReport atual é válido.List<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).List<TimeStamp>
getOrderedTimeStamps(List<String> attributesAlreadyVerified, SignatureReport signatureReport)
Retorna a lista de carimbos de tempo ordenados e adiciona as exceções carimbos mal formadosgetOrderedTimeStamps()
PaReport
getPaReport()
Retorna o relatório da política de assinaturaCadesSignature
getSignature()
Retorna a assinatura que foi passada na construção da classe.SignaturePolicyInterface
getSignaturePolicy()
Retorna a política de assinaturabyte[]
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.void
verifySignatureTimestamps(List<TimeStamp> timeStamps, SignatureReport sigReport)
Verifica os carimbos de tempo em ordem de tempo e atualiza a referência de tempo conforme a validação é executada.void
verifySimple(SignatureReport signatureReport)
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.cades.AbstractVerifier
buildCertPath, checkTimeStampAlgorithmsConstraints, getCadesSignatureComponent, getCertPath, getCurrentTimeReference, getOcspList, getOcspServerCertificate, getParams, getSignerCert, getTimeReference, getTimeStampPriorityList, getTSTimeReference, hasProofOfExistence, initialize, initialize, initialize, initialize, isTimeStamp, setComponent, setCurrentTimeReference, setOcsps, setOcspServerCertificate, setSignerCert, setTimeReference, verifyAttributesInMandatedList, verifyConformity, verifyOnlyUnmandatedAttributes
-
Field Details
-
MISSING_CERTIFICATES_IN_SIGNED_DATA
- See Also:
- Constant Field Values
-
signaturePolicy
A política de assinatura -
bytesOfSignedContent
protected byte[] bytesOfSignedContentO conteúdo assinado
-
-
Constructor Details
-
SignatureVerifier
public SignatureVerifier(CadesSignature signature, CadesSignatureComponent cadesSignatureComponent) throws PbadExceptionConstrói umSignatureVerifier
a partir da assinatura a ser verificada e da política de assinatura usada na assinatura.- Parameters:
signature
- A assinatura a ser verificadacadesSignatureComponent
- Componente de assinatura CAdES- Throws:
PbadException
- Exceção em caso de erro na inicialização da classe
-
SignatureVerifier
public SignatureVerifier(CadesSignature signature) throws SignatureVerifierException, PbadExceptionConstrói umSignatureVerifier
a partir da assinatura a ser verificada.- Parameters:
signature
- A assinatura a ser verificada- Throws:
SignatureVerifierException
PbadException
- Exceção em caso de erro na inicialização da classe
-
SignatureVerifier
public SignatureVerifier(CadesSignature signature, SignatureVerifierParams params, SignaturePolicyInterface signaturePolicy) 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 a ser verificadaparams
- Os parâmetros de verificaçãosignaturePolicy
- A política de assinatura- Throws:
PbadException
- Exceção em caso de erro na inicialização da classeSignatureVerifierException
-
SignatureVerifier
public SignatureVerifier(CadesSignature signature, SignatureVerifierParams params, CadesSignatureComponent cadesSignatureComponent) 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 a ser verificadaparams
- Os parâmetros de verificaçãocadesSignatureComponent
- COmponente de assinatura CAdES- Throws:
PbadException
- Exceção em caso de erro na inicialização da classeSignatureVerifierException
-
-
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 levadas 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.- 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:
signatureReport
- Relatório da assinatura
-
checkValidationResultAlgorithm
public ValidationResult checkValidationResultAlgorithm(SignatureReport sigReport, String exceptionType, List<PbadException> errors, ValidationResult validationResultNow)Verifica se o ValidationResult do SignatureReport atual é válido. Se for, colocar como erro, pois o algoritmo é inválido- Parameters:
sigReport
- Relatório de assinaturaexceptionType
- Tipo de exception geradaerrors
- Erros do relatório
-
verifySignatureTimestamps
public void verifySignatureTimestamps(List<TimeStamp> timeStamps, SignatureReport sigReport) throws PbadExceptionVerifica os carimbos de tempo em ordem de tempo e atualiza a referência de tempo conforme a validação é executada. Exceções de verificação são adicionadas ao argumento exceptions, informado na chamada da função.- Parameters:
timeStamps
- Lista de carimbos de temposigReport
- O relatório de verificação da assinatura- Throws:
PbadException
- Exceção em caso de erro na formação dos carimbos
-
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 CAdES
-
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. Em caso de erros, eles serão adicionados à lista dada- Parameters:
exceptions
- Lista de erros da verificação
-
checkPolicyAlgorithmsConstraints
protected void checkPolicyAlgorithmsConstraints() throws org.bouncycastle.operator.OperatorCreationException, VerificationExceptionVerifica se o algoritmo especificado na Política de Assinatura é o mesmo usado na assinatura.- Throws:
VerificationException
- Exceção em caso de erro na verificaçãoorg.bouncycastle.operator.OperatorCreationException
- Exceção em caso de erro na manipulação da assinatura
-
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
-
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
-
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
-
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 carimbo de tempo ordenada
- Throws:
SignatureAttributeException
- Exceção em caso de erro nos atributos da assinaturaUnknowAttributeException
- Exceção em caso de atributo desconhecido na assinatura
-
getOrderedTimeStamps
public List<TimeStamp> getOrderedTimeStamps(List<String> attributesAlreadyVerified, SignatureReport signatureReport) throws SignatureAttributeException, UnknowAttributeExceptionRetorna a lista de carimbos de tempo ordenados e adiciona as exceções carimbos mal formadosgetOrderedTimeStamps()
-
getSignaturePolicy
Retorna a política de assinatura- Specified by:
getSignaturePolicy
in classAbstractVerifier
- Returns:
- A política de assinatura
-
getPaReport
Retorna o relatório da política de assinatura- Returns:
- O relatório da política de assinatura
- Throws:
SignatureAttributeException
- Exceção em caso de erro no atributo
-