Class AbstractVerifier
java.lang.Object
br.ufsc.labsec.signature.conformanceVerifier.cades.AbstractVerifier
- Direct Known Subclasses:
SignatureVerifier, TimeStampVerifier
Esta classe trata as partes de verificação comuns entre assinaturas CAdES e
carimbos do tempo.
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected static final Stringprotected CertPathCaminho de certificação do assinanteprotected CadesSignatureComponentComponente de assinatura CAdESprotected List<PbadException> Lista de erros de validaçãoprotected AttributeListprotected List<org.bouncycastle.cert.ocsp.OCSPResp> Repositório de respostas OCSPprotected X509CertificateCertificado da autoridade de OCSPprotected AttributeListprotected AttributeListprotected booleanDefine se a referência de tempo foi definida com prova de existênciaprotected CadesSignatureAssinatura a ser verificadaprotected X509CertificateCertificado do assinante -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected voidbuildCertPath(Set<TrustAnchor> trustAnchors) Constrói o caminho de certificação do signatário.protected voidcheckTimeStampAlgorithmsConstraints(SignatureReport sigReport, List<PbadException> errors) Verifica se os algoritmos utilizados para assinatura e resumo criptográfico de carimbos de tempo são válidos conforme o DOC ICP-01.01.Retorna o componente de assinaturas CAdESRetorna o caminho de certificaçãoRetorna o tempo atual definido pelo verificador.List<org.bouncycastle.cert.ocsp.OCSPResp> Retorna uma lista de respostas OCSP conhecida pelo verificadorRetorna o certificado do servidor OCSPRetorna os paramêtros passados para esse verificadorRetorna a assinatura passada na construção da classe.abstract SignaturePolicyInterfaceObtém a política de assinatura que define a verificação desse verificadorRetorna o certificado do assinanteRetorna o tempo em que o carimbo do tempo foi criado pela ACT.Retorna a lista de prioridades dos carimbos do tempoRetorna o tempo em que o carimbo do tempo foi criado pela ACT.booleanRetorna se há a presença de pelo menos um carimbo de tempo que forneça prova de existência.voidinitialize(CadesSignature signature) Método para inicializar um CAdES Verifiervoidinitialize(CadesSignature signature, boolean isTimeStamp) Inicializa os valores de atributos da classevoidinitialize(CadesSignature signature, SignatureVerifierParams param) Método para inicializar um CAdES Verifiervoidinitialize(CadesSignature signature, SignatureVerifierParams params, boolean isTimeStamp) Inicializa os valores de atributos da classebooleanInforma se a assinatura a ser verificada é um carimbo de tempoprotected voidmakeVerificationPackage(SignatureReport signatureReport) voidsetComponent(CadesSignatureComponent component) Define o componente de assinaturas cades.voidsetCurrentTimeReference(Time currentTimeReference) Define o tempo atual a ser utilizado pelo verificador.voidInforma a lista de OCSPs que devem ser usadas pelo verificadorvoidsetOcspServerCertificate(X509Certificate ocspServerCertificate) Define o certificado do servidor OCSPprotected voidDefine o certificado do signatáriovoidsetTimeReference(Time timeReference) Atribui uma refêrencia de tempo criado por alguma ACT confiável.abstract booleanverify(SignatureReport report) Verifica apenas os atributos obrigatórios e valida a assinatura.voidverifyAttributesInMandatedList(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 voidverifyConformity(CertPath certPath, boolean advanced, SignatureReport report) Verifica se a assinatura pertence a ICP-Brasil e adiciona a InitialSignatureReport a legislação ou âncora de confiança respeitada pelo certificado do assinantevoidverifyOnlyUnmandatedAttributes(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.protected boolean
-
Field Details
-
ATTRIBUTE_NOT_FOUND
- See Also:
-
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 assinatura 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 SignatureVerifierException Método para inicializar um CAdES Verifier- Throws:
SignatureVerifierException
-
initialize
public void initialize(CadesSignature signature, boolean isTimeStamp) throws SignatureVerifierException Inicializa 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 SignatureVerifierException Inicializa 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
-
withReturnArtifacts
protected boolean withReturnArtifacts() -
makeVerificationPackage
-
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 listaerrorsserã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. 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á considerada.- Parameters:
signatureAttributeList- Lista de atributos da assinaturamandatedAttributeList- Lista de atributo obrigatórios, conforme a política de assinaturaattributesToExclude- Atributos a serem ignorados
-
buildCertPath
protected void buildCertPath(Set<TrustAnchor> trustAnchors) throws SignerCertificationPathException, SignatureAttributeException Constró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 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 carimbo 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 carimbo 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 a 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
-
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
-
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 conforme 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 âncora de confiança respeitada pelo certificado do assinante- Parameters:
certPath- caminho de certificaçãoadvanced- se a assinatura é avançada
-