Class AbstractVerifier
java.lang.Object
br.ufsc.labsec.signature.conformanceVerifier.cades.AbstractVerifier
- Direct Known Subclasses:
SignatureVerifier
,TimeStampVerifier
public abstract class AbstractVerifier extends Object
Esta classe trata as partes de verificação comuns entre assinaturas CAdES e
carimbos do tempo.
-
Field Summary
Fields Modifier and Type Field Description protected CertPath
certPath
Caminho de certificação do assinanteprotected CadesSignatureComponent
component
Componente de assinautra CAdESprotected 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 boolean
proofOfExistence
Define se a referência de tempo foi definida com prova de existênciaprotected CadesSignature
signature
Assinatura a ser verificadaprotected X509Certificate
signerCert
Certificado do assinante -
Constructor Summary
Constructors Constructor Description AbstractVerifier()
-
Method Summary
Modifier and Type Method Description protected void
buildCertPath(Set<TrustAnchor> trustAnchors)
Constrói o caminho de certificação do signatário.protected void
checkTimeStampAlgorithmsConstraints(SignatureReport sigReport, List<PbadException> errors)
Verifica se os algoritmos utilizados para assinatura e resumo criptográfico de carimbos de tempo são válidos de acordo com o DOC ICP-01.01.CadesSignatureComponent
getCadesSignatureComponent()
Retorna o componente de assinaturas CAdESCertPath
getCertPath()
Retorna o caminho de certificaçãoTime
getCurrentTimeReference()
Retorna o tempo atual definido pelo verificador.List<org.bouncycastle.cert.ocsp.OCSPResp>
getOcspList()
Retorna uma lista de respostas OCSP conhecida pelo verificadorX509Certificate
getOcspServerCertificate()
Retorna o certificado do servidor OCSPSignatureVerifierParams
getParams()
Retorna os paramêtros passados para esse verificadorCadesSignature
getSignature()
Retorna a assinatura que foi passada na construção da classe.abstract SignaturePolicyInterface
getSignaturePolicy()
Obtém a política de assinatura que define a verificação desse verificadorX509Certificate
getSignerCert()
Retorna o certificado do assinanteTime
getTimeReference()
Retorna o tempo em que o carimbo do tempo foi criado pela ACT.List<String>
getTimeStampPriorityList()
Retorna a lista de prioridades dos carimbos do tempoTime
getTSTimeReference()
Retorna o tempo em que o carimbo do tempo foi criado pela ACT.boolean
hasProofOfExistence()
Retorna se há a presença de pelo menos um carimbo de tempo que forneça prova de existência.void
initialize(CadesSignature signature)
Método para inicializar um CAdES Verifiervoid
initialize(CadesSignature signature, boolean isTimeStamp)
Inicializa os valores de atributos da classevoid
initialize(CadesSignature signature, SignatureVerifierParams param)
Método para inicializar um CAdES Verifiervoid
initialize(CadesSignature signature, SignatureVerifierParams params, boolean isTimeStamp)
Inicializa os valores de atributos da classeboolean
isTimeStamp()
Informa se a assinatura a ser verificada é um carimbo de tempovoid
setComponent(CadesSignatureComponent component)
Define o componente de assinaturas cades.void
setCurrentTimeReference(Time currentTimeReference)
Define o tempo atual à ser utilizado pelo verificador.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
setTimeReference(Time timeReference)
Atribui uma refêrencia de tempo criado por alguma ACT confiável.abstract boolean
verify(SignatureReport report)
Verifica apenas os atributos obrigatórios e valida a assinatura.void
verifyAttributesInMandatedList(List<PbadException> warnings, List<PbadException> exceptions, List<String> signatureAttributeList, List<String> mandatedAttributeList, 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 assinantevoid
verifyOnlyUnmandatedAttributes(List<PbadException> warnings, List<PbadException> exceptions, List<String> signatureAttributeList, List<String> mandatedAttributeList, List<String> optionalAttributeList, 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 -
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 -
proofOfExistence
protected boolean proofOfExistenceDefine se a referência de tempo foi definida com prova de existência -
component
Componente de assinautra CAdES
-
-
Constructor Details
-
AbstractVerifier
public AbstractVerifier()
-
-
Method Details
-
initialize
Método para inicializar um CAdES Verifier- Throws:
SignatureVerifierException
-
initialize
public void initialize(CadesSignature signature, SignatureVerifierParams param) throws SignatureVerifierExceptionMétodo para inicializar um CAdES Verifier- Throws:
SignatureVerifierException
-
initialize
public void initialize(CadesSignature signature, boolean isTimeStamp) throws SignatureVerifierExceptionInicializa os valores de atributos da classe- Parameters:
signature
- A assinatura a ser verificadaisTimeStamp
- Indica se a assinatura a ser verificada é um carimbo de tempo- Throws:
SignatureVerifierException
-
initialize
public void initialize(CadesSignature signature, SignatureVerifierParams params, boolean isTimeStamp) throws SignatureVerifierExceptionInicializa os valores de atributos da classe- Parameters:
signature
- A assinatura a ser verificadaparams
- Os parâmetros de validaçãoisTimeStamp
- Indica se a assinatura a ser verificada é um carimbo de tempo- Throws:
SignatureVerifierException
-
verifyAttributesInMandatedList
public void verifyAttributesInMandatedList(List<PbadException> warnings, List<PbadException> exceptions, List<String> signatureAttributeList, List<String> mandatedAttributeList, 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 listaerrors
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. O resultado da verificação será adicionado ao relatório dado.- Parameters:
warnings
- - Lista de alertas. Irá ser atualizada com a lista de erros, que poderão ocorrer ao validar a assinatura, mas que não a tornam inválidaexceptions
- Lista de erros da verificação. Será atualizada com a lista de erros que tornam a assinatura inválidasignatureAttributeList
- Lista de atributos presentes na assinatura que devem ser levados em contamandatedAttributeList
- Lista de atributos que devem ser considerados obrigatóriosattributesToExclude
- Lista de atributos que devem ser desconsideradossigReport
- O relatório da verificação da assinatura
-
verifyOnlyUnmandatedAttributes
public void verifyOnlyUnmandatedAttributes(List<PbadException> warnings, List<PbadException> exceptions, List<String> signatureAttributeList, List<String> mandatedAttributeList, List<String> optionalAttributeList, 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 assinaturamandatedAttributeList
- Lista de atributo obrigatórios, de acordo com a política de assinaturaattributesToExclude
- Atributos a serem ignorados
-
buildCertPath
protected void buildCertPath(Set<TrustAnchor> trustAnchors) throws SignerCertificationPathException, SignatureAttributeExceptionConstrói o caminho de certificação do signatário.- Parameters:
trustAnchors
- As âncoras de confiança do caminho- Throws:
SignerCertificationPathException
- Exceção em caso de erro na construção do caminho de certificaçãoSignatureAttributeException
-
setSignerCert
Define o certificado do signatário- Throws:
SignerCertificationPathException
- Exceção em caso de erro durante a busca pelo certificado
-
getSignature
Retorna a assinatura que foi passada na construção da classe.- Returns:
- A assinatura CAdES
-
getTimeReference
Retorna o tempo em que o carimbo do tempo foi criado pela ACT. Caso nenhum carimbo do tempo existir na assinatura, retorna-se o tempo atual.- Returns:
- Horário em que o camrimbo do tempo foi criado pela ACT ou horário atual.
-
getTSTimeReference
Retorna o tempo em que o carimbo do tempo foi criado pela ACT. Caso nenhum carimbo do tempo existir na assinatura, retorna-se nulo.- Returns:
- Horário em que o camrimbo do tempo foi criado pela ACT.
-
getCurrentTimeReference
Retorna o tempo atual definido pelo verificador. Caso o tempo atual não ter sido definido previamente, retorna-se nulo.- Returns:
- Horário de tempo atual.
-
setCurrentTimeReference
Define o tempo atual à ser utilizado pelo verificador. -
hasProofOfExistence
public boolean hasProofOfExistence()Retorna se há a presença de pelo menos um carimbo de tempo que forneça prova de existência.- Returns:
- Retorna se há a presença de pelo menos um carimbo de tempo que forneça prova de existência.
-
setTimeReference
Atribui uma refêrencia de tempo criado por alguma ACT confiável. Esta referência será utilizada na validação dos caminhos de certificação. Portanto, deve-se atribuir somente referências de tempo válidas, que foneça prova de existência à assinatura.- Parameters:
timeReference
- O horário criado por alguma ACT confiável que será usado na validação do caminho de certificação
-
getOcspList
Retorna uma lista de respostas OCSP conhecida pelo verificador- Returns:
- A lista de respostas OCSP
-
getOcspServerCertificate
Retorna o certificado do servidor OCSP- Returns:
- O certificado do servidor OCSP
-
setOcsps
Informa a lista de OCSPs que devem ser usadas pelo verificador- Parameters:
ocsps
- A lista de respostas OCSP
-
setOcspServerCertificate
Define o certificado do servidor OCSP- Parameters:
ocspServerCertificate
- O certificado do servidor
-
getTimeStampPriorityList
Retorna a lista de prioridades dos carimbos do tempo- Returns:
- A lista de prioridades dos carimbos
-
getParams
Retorna os paramêtros passados para esse verificador- Returns:
- Os parâmetros do verificador
-
getCadesSignatureComponent
Retorna o componente de assinaturas CAdES- Returns:
- O componente de assinaturas CAdES
-
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:
report
- O relatório de verificação da assinatura- Returns:
- Indica se a assinatura é válida
- Throws:
PbadException
- Exceção em caso de erro durante a validaçãoVerificationException
- Exceção em caso de erro durante a validação
-
getSignaturePolicy
Obtém a política de assinatura que define a verificação desse verificador- Returns:
- A política de assinatura
-
getCertPath
Retorna o caminho de certificação- Returns:
- O caminho de certificação
-
getSignerCert
Retorna o certificado do assinante- Returns:
- O certificado do assinante
-
isTimeStamp
public boolean isTimeStamp()Informa se a assinatura a ser verificada é um carimbo de tempo- Returns:
- Indica se a assinatura a ser verificada é um carimbo
-
setComponent
Define o componente de assinaturas cades.- Parameters:
component
- Componente de assinatura cades.
-
checkTimeStampAlgorithmsConstraints
protected void checkTimeStampAlgorithmsConstraints(SignatureReport sigReport, List<PbadException> errors)Verifica se os algoritmos utilizados para assinatura e resumo criptográfico de carimbos de tempo são válidos de acordo com o DOC ICP-01.01. Caso sejam inválidos, um erro é adicionado ao relatório de assinatura- Parameters:
sigReport
- Relatório do carimbo de tempoerrors
- 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
-