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[]bytesOfSignedContentO conteúdo assinadostatic StringMISSING_CERTIFICATES_IN_SIGNED_DATAprotected SignaturePolicyInterfacesignaturePolicyA política de assinaturaFields inherited from class br.ufsc.labsec.signature.conformanceVerifier.cades.AbstractVerifier
ATTRIBUTE_NOT_FOUND, certPath, component, exceptions, mandatedAttributes, ocspRespList, ocspServerCertificate, optionalAttributes, prohibitedAttributes, proofOfExistence, signature, signerCert -
Constructor Summary
Constructors Constructor Description SignatureVerifier(CadesSignature signature)Constrói umSignatureVerifiera partir da assinatura a ser verificada.SignatureVerifier(CadesSignature signature, CadesSignatureComponent cadesSignatureComponent)Constrói umSignatureVerifiera partir da assinatura a ser verificada e da política de assinatura usada na assinatura.SignatureVerifier(CadesSignature signature, SignatureVerifierParams params, CadesSignatureComponent cadesSignatureComponent)Constrói umSignatureVerifiera partir da assinatura a ser verificada.SignatureVerifier(CadesSignature signature, SignatureVerifierParams params, SignaturePolicyInterface signaturePolicy)Constrói umSignatureVerifiera partir da assinatura a ser verificada. -
Method Summary
Modifier and Type Method Description voidaddLpaToReport(Report report)protected voidcheckAcceptablePolicies()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 booleancheckExternalSignedData()Verifica se a assinatura está respeitando a regra da política de assinatura sobre o dado assinado ser interno, externo ou indiferenteprotected booleancheckKeyLength()Checa se o tamanho da chave usada para assinar é compatível com o tamanho mínimo exigido pela PA.protected voidcheckPolicyAlgorithmsConstraints()Verifica se o algoritmo especificado na Política de Assinatura é o mesmo usado na assinatura.protected voidcheckPolicyConstraints(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 booleancheckSignaturePolicyPeriod()Verifica se a assinatura foi feita dentro do período válido para o uso de políticas.ValidationResultcheckValidationResultAlgorithm(SignatureReport sigReport, String exceptionType, List<PbadException> errors, ValidationResult validationResultNow)Verifica se o ValidationResult do SignatureReport atual é válido.List<String>getMissingMandatedUnsignedAttributes(List<String> signatureAttributeList)O método checa os atributos obrigatórios não assinados contra os atributos não assinados da assinatura.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()PaReportgetPaReport(String signingTime)Retorna o relatório da política de assinaturaCadesSignaturegetSignature()Retorna a assinatura que foi passada na construção da classe.SignaturePolicyInterfacegetSignaturePolicy()Retorna a política de assinaturabyte[]getSignedContent()Retorna os bytes do conteúdo assinado que foram passados no métodosetSignedContent(byte[] signedContent).voidsetPreviouslyCheckedTimeReferences(List<TimeStamp<Object>> timeStamps)protected booleanvalidSignPolicyPeriod(String revocationDate, String signDate)booleanverify(SignatureReport sigReport)Verifica todos os campos da assinatura conforme especificado na PA da assinatura.voidverifySignatureTimestamps(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.voidverifySimple(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, makeVerificationPackage, setComponent, setCurrentTimeReference, setOcsps, setOcspServerCertificate, setSignerCert, setTimeReference, verifyAttributesInMandatedList, verifyConformity, verifyOnlyUnmandatedAttributes, withReturnArtifacts
-
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 umSignatureVerifiera 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 umSignatureVerifiera partir da assinatura a ser verificada.- Parameters:
signature- A assinatura a ser verificada- Throws:
SignatureVerifierExceptionPbadException- Exceção em caso de erro na inicialização da classe
-
SignatureVerifier
public SignatureVerifier(CadesSignature signature, SignatureVerifierParams params, SignaturePolicyInterface signaturePolicy) throws PbadException, SignatureVerifierExceptionConstrói umSignatureVerifiera partir da assinatura a ser verificada. Serão assumidos os parâmetros passados emparamspara 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 umSignatureVerifiera partir da assinatura a ser verificada. Serão assumidos os parâmetros passados emparamspara 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:
verifyin classAbstractVerifier- Parameters:
sigReport- O relatório de verificação da assinatura- Returns:
- Indica se a assinatura é válida
-
getMissingMandatedUnsignedAttributes
O método checa os atributos obrigatórios não assinados contra os atributos não assinados da assinatura. O método retorna os atributos que são obrigatórios porem estão ausentes.- Returns:
- Uma lista de atributos que deveriam estar presente.
-
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
-
setPreviouslyCheckedTimeReferences
-
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:
getSignaturein 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
-
validSignPolicyPeriod
-
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:
getSignaturePolicyin 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
-
addLpaToReport
-