Class PadesVerifier
java.lang.Object
br.ufsc.labsec.signature.AbstractSignatureVerifier<PadesSignature>
br.ufsc.labsec.signature.conformanceVerifier.pades.PadesVerifier
- All Implemented Interfaces:
Verifier
public class PadesVerifier extends AbstractSignatureVerifier<PadesSignature>
Esta classe implementa os métodos para verificação de uma assinatura PAdES.
Implementa
Verifier
.-
Field Summary
Fields Modifier and Type Field Description protected Time
timeReference
Tempo que será levado em conta para validar a assinatura -
Constructor Summary
Constructors Constructor Description PadesVerifier(PadesSignatureComponent component)
Construtor -
Method Summary
Modifier and Type Method Description void
addValidationData(PadesSignature padesSignature)
Captura e adiciona artefatos presentes na assinatura (como certificados e CRLs) ao SignatureIdentityInformation da assinatura conforme a presença dos atributos CertificateValues e RevocationValuesboolean
clear()
Limpa as informações do verificadorList<String>
getAvailableAttributes()
Retorna os atributos que podem ser inseridos na assinatura selecionadaCadesSignatureComponent
getCadesSignatureComponent()
Retorna o componente de assinatura CAdESCertPath
getCertPath(Certificate certificate)
PadesSignatureComponent
getComponent()
Obtém o componente de assinaturasbyte[]
getContainerBytes()
List<String>
getMandatedAttributes()
Retorna uma lista de atributos obrigatóriosPadesSignature
getPadesSignature()
byte[]
getPDFBytes()
Retorna os bytes da assinaturaSignaturePolicyInterface
getSignaturePolicy()
Retorna a política de assinaturaX509Certificate
getSigningCertificate(PadesSignature padesSignature)
X509Certificate
getSigningCertificateSigReport(SignatureReport sigReport)
Busca certificado do assinante de um relatório de assinaturaTime
getTimeReference()
Retorna a data de referênciaString
getTypeOfDictionary(org.apache.pdfbox.pdmodel.interactive.digitalsignature.PDSignature signatureObj)
Retorna o valor da entrada 'Type' no dicionário da assinaturaboolean
hasSignedData()
Verifica se a assinatura selecionada possui dados assinados.boolean
isPadesAndICPBrasil()
boolean
needSignedContent()
Verifica se a assinatura possui conteúdo destacadovoid
report(Report report, PadesSignature signature, PadesSignatureContainer container)
Cria um objetoReport
com as informações da verificação do documentovoid
report(Report report, SignatureContainer<PadesSignature> signatureContainer)
Cria um objetoReport
com as informações da verificação do documentovoid
report(Report report, SignatureBytesWrapper wrapper)
Cria um objetoReport
com as informações da verificação do documentovoid
setTimeReference(Time timeReference)
Atribui a data de referênciaboolean
signatureContainerChanged()
Verifica se o container de assinatura foi alterado para verificaçãoboolean
supports(byte[] signature, byte[] detached)
Verifica se o documento assinado é uma assinatura PAdESMethods inherited from class br.ufsc.labsec.signature.AbstractSignatureVerifier
getCurrentTimeReference, makeVerificationPackage, setCurrentTimeReference, setup, withReturnArtifacts
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface br.ufsc.labsec.signature.Verifier
checkLastCertificateName, isAnchored, isGovBr, isICPBr
-
Field Details
-
timeReference
Tempo que será levado em conta para validar a assinatura
-
-
Constructor Details
-
PadesVerifier
Construtor- Parameters:
component
- Componente de assinatura PAdES
-
-
Method Details
-
getTimeReference
Retorna a data de referência- Returns:
- A data de referência
-
setTimeReference
Atribui a data de referência- Parameters:
timeReference
- A nova data de referência
-
getAvailableAttributes
Retorna os atributos que podem ser inseridos na assinatura selecionada- Returns:
- Os atributos que podem ser inseridos na assinatura
-
clear
public boolean clear()Limpa as informações do verificador- Returns:
- Indica se a limpeza foi bem sucedida
-
report
public void report(Report report, SignatureContainer<PadesSignature> signatureContainer) throws VerificationException, InterruptedExceptionCria um objetoReport
com as informações da verificação do documento- Specified by:
report
in classAbstractSignatureVerifier<PadesSignature>
- Parameters:
report
- O relatório da verificaçãosignatureContainer
- Contêiner com as assinaturas- Throws:
VerificationException
- Exceção caso haja algum problema na verificaçãoInterruptedException
-
report
public void report(Report report, SignatureBytesWrapper wrapper) throws VerificationException, InterruptedExceptionCria um objetoReport
com as informações da verificação do documento- Parameters:
report
- O relatório da verificaçãowrapper
- Um wrapper que contém a assinatura e o documento a ser verificado- Throws:
VerificationException
- Exceção caso haja algum problema na verificaçãoInterruptedException
-
report
public void report(Report report, PadesSignature signature, PadesSignatureContainer container) throws VerificationException, InterruptedExceptionCria um objetoReport
com as informações da verificação do documento- Parameters:
report
- O relatório da verificaçãosignature
- A assinatura a ser verificada- Throws:
VerificationException
- Exceção caso haja algum problema na verificaçãoInterruptedException
-
needSignedContent
public boolean needSignedContent()Verifica se a assinatura possui conteúdo destacado- Returns:
- Indica se a assinatura possui conteúdo destacado
-
getMandatedAttributes
Retorna uma lista de atributos obrigatórios- Returns:
- Uma lista de atributos obrigatórios
-
supports
Verifica se o documento assinado é uma assinatura PAdES- Parameters:
signature
- Os bytes do documento assinadodetached
- Os bytes do arquivo destacado- Returns:
- Indica se o documento assinado é uma assinatura PAdES
- Throws:
SignatureNotICPBrException
- Exceção caso a assinatura não seja feita com um certificado ICP-Brasil
-
getSigningCertificate
- Specified by:
getSigningCertificate
in classAbstractSignatureVerifier<PadesSignature>
-
getSigningCertificateSigReport
Busca certificado do assinante de um relatório de assinatura- Parameters:
sigReport
- Relatório da assinatura que deseja descobrir o assinante- Returns:
- Certificado do assinate
-
getTypeOfDictionary
public String getTypeOfDictionary(org.apache.pdfbox.pdmodel.interactive.digitalsignature.PDSignature signatureObj)Retorna o valor da entrada 'Type' no dicionário da assinatura- Parameters:
signatureObj
- A assinatura- Returns:
- O valor da entrada 'Type' no dicionário da assinatura
-
addValidationData
Description copied from class:AbstractSignatureVerifier
Captura e adiciona artefatos presentes na assinatura (como certificados e CRLs) ao SignatureIdentityInformation da assinatura conforme a presença dos atributos CertificateValues e RevocationValues- Specified by:
addValidationData
in classAbstractSignatureVerifier<PadesSignature>
- Parameters:
padesSignature
- A assinatura
-
getComponent
Description copied from class:AbstractSignatureVerifier
Obtém o componente de assinaturas- Specified by:
getComponent
in interfaceVerifier
- Specified by:
getComponent
in classAbstractSignatureVerifier<PadesSignature>
- Returns:
- Componente de assinatura
-
getCertPath
-
getContainerBytes
public byte[] getContainerBytes() -
signatureContainerChanged
public boolean signatureContainerChanged()Description copied from interface:Verifier
Verifica se o container de assinatura foi alterado para verificação- Returns:
- true se o container de assinatura foi alterado, false caso contrário
-
getPadesSignature
-
getPDFBytes
public byte[] getPDFBytes()Retorna os bytes da assinatura- Returns:
- Os bytes da assinatura
-
getSignaturePolicy
Retorna a política de assinatura- Returns:
- A política de assinatura
-
getCadesSignatureComponent
Retorna o componente de assinatura CAdES- Returns:
- O componente de assinatura CAdES
-
hasSignedData
public boolean hasSignedData()Verifica se a assinatura selecionada possui dados assinados.- Returns:
- true por ser PADES e sempre ser attached.
-
isPadesAndICPBrasil
public boolean isPadesAndICPBrasil()
-