Class XadesVerifier
java.lang.Object
br.ufsc.labsec.signature.AbstractSignatureVerifier<XadesSignature>
br.ufsc.labsec.signature.conformanceVerifier.xades.XadesVerifier
- All Implemented Interfaces:
Verifier
public class XadesVerifier extends AbstractSignatureVerifier<XadesSignature>
Esta classe implementa os métodos para verificação de um documento assinado XAdES.
Implementa
Verifier
.
Esta classe implementa os métodos para verificação de um documento assinado
XAdES.
Estende AbstractXadesSigner
e implementa Verifier
.-
Field Summary
Fields Modifier and Type Field Description protected XadesAttributeFactory
attributeFactory
Fábrica de atributosFields inherited from class br.ufsc.labsec.signature.AbstractSignatureVerifier
currentTimeReference, timeReference
-
Constructor Summary
Constructors Constructor Description XadesVerifier(XadesSignatureComponent xadesSignatureComponent)
Construtor -
Method Summary
Modifier and Type Method Description void
addCounterSignatureToSignatureReport(SignatureReport signatureReport)
Adiciona o relatório de contra-assinatura passado ao relatório da assinaturavoid
addValidationData(XadesSignature xadesSignature)
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 selecionadaList<Certificate>
getCertificateValues(XadesSignature xadesSignature)
Retorna a lista de certificados do atributo CertificateValuesCertPath
getCertPath(Certificate certificate)
XadesSignatureComponent
getComponent()
byte[]
getContainerBytes()
List<String>
getMandatedAttributes()
Retorna uma lista de atributos obrigatóriosProfile.AdESType
getPolicyType()
Retorna o tipo da política de assinaturaXadesSignature
getSelectedSignature()
Retorna a assinatura selecionadaXadesSignatureContainer
getSignatureContainer()
Retorna o contâiner das assinaturasX509Certificate
getSigningCertificate(XadesSignature sig)
Tenta encontrar o certificado do assinante, buscando primeiro no KeyInfo e depois no atributo SiningCertificate.X509Certificate
getSigningCertificateSigReport(SignatureReport sigReport)
Busca certificado do assinante de um relatório de assinaturaboolean
hasSignedData()
Verifica se a assinatura selecionada possui dados assinados.boolean
needSignedContent()
Verifica se a assinatura possui conteúdo destacadovoid
report(Report report, SignatureContainer<XadesSignature> signatureContainer)
Constrói um objetoReport
com as informações da verificaçãovoid
report(Report report, SignatureBytesWrapper wrapper)
Constrói um objetoReport
com as informações da verificaçãovoid
selectSignatures(boolean isComplete, boolean bypassAddValidationData)
Carrega as informações das assinaturas presentes no contâiner XAdEsXadesSignatureContainer
selectTarget(byte[] target, byte[] content)
Inicializa os bytes do documento XAdES assinadoXadesSignatureContainer
selectTarget(SignatureBytesWrapper wrapper)
void
setPolicyType(Profile.AdESType policyType)
Atribue o tipo da política de assinaturaboolean
signatureContainerChanged()
Verifica se o container de assinatura foi alterado para verificaçãoboolean
supports(byte[] sig, byte[] detached)
Verifica se o documento assinado é uma assinatura XAdESprotected boolean
validSignature(XadesSignature s)
Verifica se a assinatura foi feita com um certificado ICP-Brasil e se é uma assinatura XAdESMethods inherited from class br.ufsc.labsec.signature.AbstractSignatureVerifier
getCurrentTimeReference, getTimeReference, setCurrentTimeReference, setTimeReference
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
-
attributeFactory
Fábrica de atributos
-
-
Constructor Details
-
XadesVerifier
Construtor- Parameters:
xadesSignatureComponent
- Componente de assinatura XAdES
-
-
Method Details
-
getSelectedSignature
Retorna a assinatura selecionada- Returns:
- A assinatura XAdES selecionada
-
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
-
getSigningCertificate
Tenta encontrar o certificado do assinante, buscando primeiro no KeyInfo e depois no atributo SiningCertificate.- Specified by:
getSigningCertificate
in classAbstractSignatureVerifier<XadesSignature>
- Parameters:
sig
- Assinatura contendo KeyInfo ou SigningCertificate- Returns:
- Certificado do assinante
-
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<XadesSignature>
- Parameters:
xadesSignature
- A assinatura
-
selectSignatures
public void selectSignatures(boolean isComplete, boolean bypassAddValidationData) throws InterruptedExceptionCarrega as informações das assinaturas presentes no contâiner XAdEs- Parameters:
isComplete
- Se o relatório deve ser completo ou nãobypassAddValidationData
- Se deve ser realizada a captura e adição de artefatos da assinatura ao seu SignatureIdentityInformation durante a execução deste método ou não.- Throws:
InterruptedException
-
getCertificateValues
Retorna a lista de certificados do atributo CertificateValues- Parameters:
xadesSignature
- A assinatura XAdES- Returns:
- A lista de certificados presente no atributo da assinatura CertificateValues
-
getComponent
-
getAvailableAttributes
Retorna os atributos que podem ser inseridos na assinatura selecionada- Returns:
- Os atributos que podem ser inseridos na assinatura
-
getPolicyType
Retorna o tipo da política de assinatura- Returns:
- O tipo da política
-
setPolicyType
Atribue o tipo da política de assinatura- Parameters:
policyType
- O tipo da política
-
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<XadesSignature> signatureContainer) throws InterruptedExceptionConstrói um objetoReport
com as informações da verificação- Specified by:
report
in classAbstractSignatureVerifier<XadesSignature>
- Parameters:
report
- O relatório a ser preenchidosignatureContainer
- Contêiner com as assinaturas- Throws:
InterruptedException
-
report
public void report(Report report, SignatureBytesWrapper wrapper) throws InterruptedException, VerificationExceptionConstrói um objetoReport
com as informações da verificação- Parameters:
report
- O relatório a ser preenchidowrapper
- Wrapper com a assinatura e o conteúdo assinado- Throws:
InterruptedException
VerificationException
-
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
-
selectTarget
public XadesSignatureContainer selectTarget(SignatureBytesWrapper wrapper) throws VerificationException- Throws:
VerificationException
-
selectTarget
public XadesSignatureContainer selectTarget(byte[] target, byte[] content) throws VerificationExceptionInicializa os bytes do documento XAdES assinado- Parameters:
target
- Os bytes do documento XAdES assinadocontent
- Os bytes do conteúdo assinado no documento- Throws:
VerificationException
- Exceção caso os bytes não sejam uma assinatura válida
-
addCounterSignatureToSignatureReport
Adiciona o relatório de contra-assinatura passado ao relatório da assinatura- Parameters:
signatureReport
- O relatório de contra-assinatura a ser adicionado
-
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 XAdES- Parameters:
sig
- Os bytes do documento assinadodetached
- Os bytes do arquivo destacado- Returns:
- Indica se o documento assinado é uma assinatura XAdES
- Throws:
SignatureNotICPBrException
- Exceção caso a assinatura não seja feita com um certificado ICP-Brasil
-
getCertPath
-
validSignature
Verifica se a assinatura foi feita com um certificado ICP-Brasil e se é uma assinatura XAdES- Parameters:
s
- A assinatura a ser verificada- Returns:
- Indica se a assinatura é uma assinatura XAdES e ICP-Brasil
- Throws:
SignatureNotICPBrException
- Exceção caso a assinatura não seja feita com um certificado ICP-Brasil
-
getSignatureContainer
Retorna o contâiner das assinaturas- Returns:
- Contâiner das assinaturas
-
hasSignedData
public boolean hasSignedData()Verifica se a assinatura selecionada possui dados assinados.- Returns:
- true se os dados assinados estiverem presentes ou se o tipo da assinatura não for detached; false caso contrário.
-