Class AbstractVerifier
java.lang.Object
br.ufsc.labsec.signature.conformanceVerifier.xades.AbstractVerifier
- Direct Known Subclasses:
SignatureVerifier
public abstract class AbstractVerifier extends Object
Esta classe trata as partes de verificação comuns entre assinaturas XAdES e
carimbos do tempo.
-
Field Summary
Fields Modifier and Type Field Description protected CertPathcertPathCaminho de certificação do assinanteprotected CertStorecertStoreRepositório de certificados que serão usados na validaçãoprotected XadesSignatureComponentcomponentComponente de assinatura XAdESprotected List<PbadException>exceptionsLista de erros de validaçãoprotected AttributeListmandatedAttributesprotected List<org.bouncycastle.cert.ocsp.OCSPResp>ocspRespListRepositório de respostas OCSPprotected X509CertificateocspServerCertificateCertificado da autoridade de OCSPprotected AttributeListoptionalAttributesprotected AttributeListprohibitedAttributesprotected XadesSignaturesignatureAssinatura a ser verificada.protected X509CertificatesignerCertCertificado do assinante -
Constructor Summary
Constructors Constructor Description AbstractVerifier() -
Method Summary
Modifier and Type Method Description protected voidcheckAcceptablePolicies(CertificateTrustPoint trustPoint)Executa o algoritmo responsável pela verificação das políticas de certificação aceitáveisprotected voidcheckAlgorithmsConstraints(SignatureReport sigReport, List<PbadException> errors)Verifica se os algoritmos utilizados para assinatura e resumo criptográfico são válidos conforme o DOC ICP-01.01.CertStoregetCertStore()Retorna o repositório de certificados conhecido pelo verificadorTimegetCurrentTimeReference()List<org.bouncycastle.cert.ocsp.OCSPResp>getOcspList()Retorna uma lista de respostas OCSP conhecida pelo verificadorX509CertificategetOcspServerCertificate()Obtém certificado do servidor OCSPSignatureVerifierParamsgetParams()Retorna os paramêtros passados para esse verificadorXadesSignaturegetSignature()Retorna a assinatura que foi passada na construção da classeabstract SignaturePolicyInterfacegetSignaturePolicy()Retorna a política de assinatura utilizada na assinaturaCertificategetSignerCertificate()Retorna o certificado do assinanteCertPathgetSignerCertPath()Retorna o caminho de certificação do assinanteTimegetTimeReference()Retorna o tempo em que o carimbo do tempo foi criado pela ACT ou, caso o carimbo do tempo não existir no conjunto de atributos usados na assinatura, então retorna o tempo atual.List<String>getTimeStampPriorityList()Retorna a lista de prioridades dos carimbos do tempoTimegetTSTimeReference()XadesSignatureComponentgetXadesSignatureComponent()Retorna o componente de assinatura XAdESbooleanhasProofOfExistence()voidinitialize(XadesSignature signature, SignatureVerifierParams params)Inicializa o Verifier de acodo com os parâmetrosvoidsetCertStore(CertStore certStore)Atribue um repositório de certificadosvoidsetCurrentTimeReference(Time currentTimeReference)voidsetOcsps(List<org.bouncycastle.cert.ocsp.OCSPResp> ocsps)Informa a lista de OCSPs que devem ser usadas pelo verificadorvoidsetOcspServerCertificate(X509Certificate ocspServerCertificate)Define o certificado do servidor OCSPprotected voidsetSignerCert()Define o certificado do signatáriovoidsetTimeReference(Time timeReference)Atribue uma refêrencia de tempo que será utilizada no algoritmo de validação dos caminhos de certificaçãoabstract booleanverify(SignatureReport sigReport)Verifica apenas os atributos obrigatórios e valida a assinatura.protected voidverifyAttributesInMandatedList(List<PbadException> warnings, List<String> signatureAttributeList, List<String> attributesToExclude, SignatureReport sigReport)Os atributos da assinatura que tem o seu identificador presente na lista de atributos obrigatórios passados aqui serão verificados.protected voidverifyConformity(CertPath certPath, boolean advanced, SignatureReport report)Verifica se a assinatura pertence a ICP-Brasil e adiciona a InitialSignatureReport a legislação ou âncoro de confiança que é respeitada pelo certificado do assinanteprotected voidverifyOnlyUnmandatedAttributes(List<String> signatureAttributeList, List<String> attributesToExclude, SignatureReport sigReport)Verifica apenas os atributos que não são obrigatórios segundo a lista passada.protected booleanwithReturnArtifacts()
-
Field Details
-
mandatedAttributes
-
optionalAttributes
-
prohibitedAttributes
-
signature
Assinatura a ser verificada. -
certStore
Repositório de certificados que serão usados na validação -
certPath
Caminho de certificação do assinante -
ocspServerCertificate
Certificado da autoridade de OCSP -
exceptions
Lista de erros de validação -
ocspRespList
Repositório de respostas OCSP -
signerCert
Certificado do assinante -
component
Componente de assinatura XAdES
-
-
Constructor Details
-
AbstractVerifier
public AbstractVerifier()
-
-
Method Details
-
initialize
public void initialize(XadesSignature signature, SignatureVerifierParams params) throws SignatureVerifierExceptionInicializa o Verifier de acodo com os parâmetros- Parameters:
signature- A assinatura a ser verificadaparams- Os parâmetros de verificação- Throws:
SignatureVerifierException- Exceção caso a assinatura seja nula
-
withReturnArtifacts
protected boolean withReturnArtifacts() -
verifyAttributesInMandatedList
protected void verifyAttributesInMandatedList(List<PbadException> warnings, List<String> signatureAttributeList, List<String> attributesToExclude, SignatureReport sigReport)Os atributos da assinatura que tem o seu identificador presente na lista de atributos obrigatórios passados aqui serão verificados.Na lista
errorsserão retornados os erros que comprometem a assinatura, já na lista dewarningsseram retornados os erros que aconteceram mas não infuenciam na validade da assinatura.Os atributos que tem seu identificador presente na lista attributesToExclude não serão verificados mesmo que presentes na lista de atributos obrigatórios
- Parameters:
warnings- será atualizada com a lista de erros, que poderão ocorrer ao validar a assinatura, mas que não a tornam inválidasignatureAttributeList- lista de atributos presentes na assinatura que devem ser levados em contaattributesToExclude- lista de atributos que devem ser desconsideradossigReport- o relatório de verificação
-
verifyOnlyUnmandatedAttributes
protected void verifyOnlyUnmandatedAttributes(List<String> signatureAttributeList, List<String> attributesToExclude, SignatureReport sigReport)Verifica apenas os atributos que não são obrigatórios segundo a lista passada. A lista de atributos que não devem ser verificados mesmo que não sejam obrigatórios será levada em conta.- Parameters:
signatureAttributeList- lista de atributos da assinaturaattributesToExclude- atributos a serem ignorados
-
checkAcceptablePolicies
protected void checkAcceptablePolicies(CertificateTrustPoint trustPoint) throws CertificationPathExceptionExecuta o algoritmo responsável pela verificação das políticas de certificação aceitáveis- Parameters:
trustPoint- certificado da âncora de confiança- Throws:
CertificationPathException- exceção em caso de erro no caminho de certificação
-
setSignerCert
Define o certificado do signatário- Throws:
SignerCertificationPathException- exceção em caso de erro ao obter o certificado do assinante
-
getCertStore
Retorna o repositório de certificados conhecido pelo verificador- Returns:
CertStorerepositório de certificados conhecido pelo verificador
-
getSignature
Retorna a assinatura que foi passada na construção da classe- Returns:
- a assinatura que é verificada
-
getTimeReference
Retorna o tempo em que o carimbo do tempo foi criado pela ACT ou, caso o carimbo do tempo não existir no conjunto de atributos usados na assinatura, então retorna o tempo atual.- Returns:
Timetempo em que o camrimbo do tempo foi criado pela ACT
-
getCurrentTimeReference
-
getTSTimeReference
-
hasProofOfExistence
public boolean hasProofOfExistence() -
setTimeReference
Atribue uma refêrencia de tempo que será utilizada no algoritmo de validação dos caminhos de certificação- Parameters:
timeReference- tempo que será usado como referência para a validação do caminho de certificação
-
setCurrentTimeReference
-
getSignerCertPath
Retorna o caminho de certificação do assinante- Returns:
- o caminho de certificação do assinante
-
getOcspList
Retorna uma lista de respostas OCSP conhecida pelo verificador- Returns:
- lista de respostas OCSP
-
getOcspServerCertificate
Obtém certificado do servidor OCSP- Returns:
- o certificado do servidor OCSP
-
setCertStore
Atribue um repositório de certificados- Parameters:
certStore- o repositório de certificados
-
setOcsps
Informa a lista de OCSPs que devem ser usadas pelo verificador- Parameters:
ocsps- a lista de OCSPs que devem ser utilizadas
-
setOcspServerCertificate
Define o certificado do servidor OCSP- Parameters:
ocspServerCertificate- o certificado do servidor OCSP
-
getTimeStampPriorityList
Retorna a lista de prioridades dos carimbos do tempo- Returns:
- a lista de prioridades dos carimbos do tempo
-
getParams
Retorna os paramêtros passados para esse verificador- Returns:
- os paramêtros de inicialização
-
getXadesSignatureComponent
Retorna o componente de assinatura XAdES- Returns:
- o componente de assinatura XAdES
-
getSignerCertificate
Retorna o certificado do assinante- Returns:
- o certificado do assinante
-
verify
Verifica apenas os atributos obrigatórios e valida a assinatura.Independente do resultado desse método, o método getSignatureValidationErrors deve ser chamado.
- Parameters:
sigReport- o relatório de verificação de uma assinatura- Returns:
- indica se a assinatura é válida
-
getSignaturePolicy
Retorna a política de assinatura utilizada na assinatura- Returns:
- a política de assinatura utilizada
-
checkAlgorithmsConstraints
Verifica se os algoritmos utilizados para assinatura e resumo criptográfico são válidos conforme o DOC ICP-01.01. Caso sejam inválidos, um erro é adicionado ao relatório de assinatura.- Parameters:
sigReport- Relatório da assinaturaerrors- Lista de exceções
-
verifyConformity
Verifica se a assinatura pertence a ICP-Brasil e adiciona a InitialSignatureReport a legislação ou âncoro de confiança que é respeitada pelo certificado do assinante- Parameters:
certPath- caminho de certificaçãoadvanced- se a assinatura é avançada
-