Class SignatureVerifier
java.lang.Object
br.ufsc.labsec.signature.conformanceVerifier.xades.AbstractVerifier
br.ufsc.labsec.signature.conformanceVerifier.xades.SignatureVerifier
Esta classe é responsável por verificar uma assinatura.
Estende
AbstractVerifier.-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected byte[]Bytes do conteúdo assinadoprotected SignaturePolicyInterfacePolítica de assinaturaFields inherited from class AbstractVerifier
certPath, certStore, component, exceptions, mandatedAttributes, ocspRespList, ocspServerCertificate, optionalAttributes, prohibitedAttributes, signature, signerCert -
Constructor Summary
ConstructorsConstructorDescriptionSignatureVerifier(XadesSignature signature, SignatureVerifierParams params, SignaturePolicyInterface signaturePolicyInterface) Constrói umSignatureVerifiera partir da assinatura a ser verificada.SignatureVerifier(XadesSignature signature, XadesSignatureComponent xadesSignatureComponent) Constrói umSignatureVerifiera partir da assinatura a ser verificada e da política de assinatura usada na assinatura.SignatureVerifier(XadesSignature signature, SignaturePolicyInterface signaturePolicyInterface) 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 indiferente.protected booleanCheca se o tamanho da chave usada para assinar é compatível com o tamanho mínimo exigido pela PA.protected booleanVerifica 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íticasgetMissingMandatedUnsignedAttributes(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).getPaReport(String signingTime) Retorna o relatório da verificação da política de assinaturaRetorna a assinatura que foi passada na construção da classeRetorna a Política de Assinatura da assinatura passada na construção desta classe.Retorna a lista dos erros que ocorreram na última validaçãobyte[]Retorna os bytes do conteúdo assinado que foram passados no métodosetSignedContent(byte[] signedContent)protected booleanvalidSignPolicyPeriod(String revocationDate, String signDate) booleanverify(SignatureReport sigReport) Verifica todos os campos da assinatura conforme especificado na PA da assinatura.protected voidverifySchema(SignatureReport sigReport) Verifica o esquema XML da assinaturaprotected booleanverifySignature(SignatureReport sigReport, boolean isComplete) Verifica a assinatura e adiciona os resultados ao relatóriovoidverifySimple(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 AbstractVerifier
checkAcceptablePolicies, checkAlgorithmsConstraints, getCertStore, getCurrentTimeReference, getOcspList, getOcspServerCertificate, getParams, getSignerCertificate, getSignerCertPath, getTimeReference, getTimeStampPriorityList, getTSTimeReference, getXadesSignatureComponent, hasProofOfExistence, initialize, setCertStore, setCurrentTimeReference, setOcsps, setOcspServerCertificate, setSignerCert, setTimeReference, verifyAttributesInMandatedList, verifyConformity, verifyOnlyUnmandatedAttributes, withReturnArtifacts
-
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 SignatureVerifierException Constrói umSignatureVerifiera 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, PbadException Constrói umSignatureVerifiera 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, SignatureVerifierException Constrói umSignatureVerifiera partir da assinatura a ser verificada. Serão assumidos os parâmetros passados emparamspara 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:
verifyin 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:
getSignaturein classAbstractVerifier- Returns:
- A assinatura a ser verificada
-
getSignaturePolicy
Retorna a Política de Assinatura da assinatura passada na construção desta classe.- Specified by:
getSignaturePolicyin 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
-
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
-
verifySignature
protected boolean verifySignature(SignatureReport sigReport, boolean isComplete) throws VerificationException Verifica 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
-
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.
-
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
-
addLpaToReport
-