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 CertPath
certPath
Caminho de certificação do assinanteprotected CertStore
certStore
Repositório de certificados que serão usados na validaçãoprotected XadesSignatureComponent
component
Componente de assinatura XAdESprotected List<PbadException>
exceptions
Lista de erros de validaçãoprotected AttributeList
mandatedAttributes
protected List<org.bouncycastle.cert.ocsp.OCSPResp>
ocspRespList
Repositório de respostas OCSPprotected X509Certificate
ocspServerCertificate
Certificado da autoridade de OCSPprotected AttributeList
optionalAttributes
protected AttributeList
prohibitedAttributes
protected XadesSignature
signature
Assinatura a ser verificada.protected Certificate
signerCert
Certificado do assinante -
Constructor Summary
Constructors Constructor Description AbstractVerifier()
-
Method Summary
Modifier and Type Method Description protected void
checkAcceptablePolicies(CertificateTrustPoint trustPoint)
Executa o algoritmo responsável pela verificação das políticas de certificação aceitáveisprotected void
checkAlgorithmsConstraints(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.CertStore
getCertStore()
Retorna o repositório de certificados conhecido pelo verificadorTime
getCurrentTimeReference()
List<org.bouncycastle.cert.ocsp.OCSPResp>
getOcspList()
Retorna uma lista de respostas OCSP conhecida pelo verificadorX509Certificate
getOcspServerCertificate()
Obtém certificado do servidor OCSPSignatureVerifierParams
getParams()
Retorna os paramêtros passados para esse verificadorXadesSignature
getSignature()
Retorna a assinatura que foi passada na construção da classeabstract SignaturePolicyInterface
getSignaturePolicy()
Retorna a política de assinatura utilizada na assinaturaCertificate
getSignerCertificate()
Retorna o certificado do assinanteCertPath
getSignerCertPath()
Retorna o caminho de certificação do assinanteTime
getTemporaryTimeReference()
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.Time
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.List<String>
getTimeStampPriorityList()
Retorna a lista de prioridades dos carimbos do tempoTime
getTSTimeReference()
XadesSignatureComponent
getXadesSignatureComponent()
Retorna o componente de assinatura XAdESboolean
hasProofOfExistence()
void
initialize(XadesSignature signature, SignatureVerifierParams params)
Inicializa o Verifier de acodo com os parâmetrosvoid
setCertStore(CertStore certStore)
Atribue um repositório de certificadosvoid
setCurrentTimeReference(Time currentTimeReference)
void
setOcsps(List<org.bouncycastle.cert.ocsp.OCSPResp> ocsps)
Informa a lista de OCSPs que devem ser usadas pelo verificadorvoid
setOcspServerCertificate(X509Certificate ocspServerCertificate)
Define o certificado do servidor OCSPprotected void
setSignerCert()
Define o certificado do signatáriovoid
setTemporaryTimeReference(Time timeReference)
Atribue uma refêrencia de tempo que será utilizada no algoritmo de validação dos caminho de certificação caso uma assinatura RT esteja valida.void
setTimeReference(Time timeReference)
Atribue uma refêrencia de tempo que será utilizada no algoritmo de validação dos caminhos de certificaçãoabstract boolean
verify(SignatureReport sigReport)
Verifica apenas os atributos obrigatórios e valida a assinatura.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.protected void
verifyConformity(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 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.
-
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
-
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
errors
serão retornados os erros que comprometem a assinatura, já na lista dewarnings
seram 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:
CertStore
repositó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:
Time
tempo 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
-
setTemporaryTimeReference
Atribue uma refêrencia de tempo que será utilizada no algoritmo de validação dos caminho de certificação caso uma assinatura RT esteja valida.- Parameters:
timeReference
- tempo que será usado como referência para a validação do caminho de certificação
-
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
-
getTemporaryTimeReference
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:
Time
tempo em que o camrimbo do tempo foi criado pela ACT
-
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
-