Class SignatureVerifier
java.lang.Object
br.ufsc.labsec.signature.conformanceVerifier.cades.AbstractVerifier
br.ufsc.labsec.signature.conformanceVerifier.cades.SignatureVerifier
Esta classe é responsável por verificar uma assinatura.
Estende
AbstractVerifier.-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected byte[]O conteúdo assinadostatic final Stringprotected SignaturePolicyInterfaceA política de assinaturaFields inherited from class AbstractVerifier
ATTRIBUTE_NOT_FOUND, certPath, component, exceptions, mandatedAttributes, ocspRespList, ocspServerCertificate, optionalAttributes, prohibitedAttributes, proofOfExistence, signature, signerCert -
Constructor Summary
ConstructorsConstructorDescriptionSignatureVerifier(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 TypeMethodDescriptionvoidaddLpaToReport(Report report) protected voidPercorre 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 booleanVerifica se a assinatura está respeitando a regra da política de assinatura sobre o dado assinado ser interno, externo ou indiferenteprotected booleanCheca se o tamanho da chave usada para assinar é compatível com o tamanho mínimo exigido pela PA.protected voidVerifica 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 booleanVerifica se a assinatura foi feita dentro do período válido para o uso de políticas.checkValidationResultAlgorithm(SignatureReport sigReport, String exceptionType, List<PbadException> errors, ValidationResult validationResultNow) Verifica se o ValidationResult do SignatureReport atual é válido.getMissingMandatedUnsignedAttributes(List<String> signatureAttributeList) O método checa os atributos obrigatórios não assinados contra os atributos não assinados da assinatura.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).getOrderedTimeStamps(List<String> attributesAlreadyVerified, SignatureReport signatureReport) Retorna a lista de carimbos de tempo ordenados e adiciona as exceções carimbos mal formadosgetOrderedTimeStamps()getPaReport(String signingTime) Retorna o relatório da política de assinaturaRetorna a assinatura que foi passada na construção da classe.Retorna a política de assinaturabyte[]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 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:
-
signaturePolicy
A política de assinatura -
bytesOfSignedContent
protected byte[] bytesOfSignedContentO conteúdo assinado
-
-
Constructor Details
-
SignatureVerifier
public SignatureVerifier(CadesSignature signature, CadesSignatureComponent cadesSignatureComponent) throws PbadException Constró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
Constró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, SignatureVerifierException Constró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, SignatureVerifierException Constró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 PbadException Verifica 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, UnknowAttributeException Retorna 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
-