Class XadesVerifier
java.lang.Object
br.ufsc.labsec.signature.conformanceVerifier.xades.XadesVerifier
- All Implemented Interfaces:
Verifier
public class XadesVerifier extends Object implements Verifier
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 atributos -
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
addMissingAttributes(SignatureVerifier verifier, XadesSignature verifiedSignature, XadesSignatureComponent signatureComponent)
Adiciona os atributos ausentes obrigatórios à assinatura selecionada.void
addValidationData(XadesSignature xadesSignature)
Adiciona novos certificados e CRLs ao SignatureIdentityInformation da assinatura de acordo com a presença dos atributos CertificateValues e RevocationValuesboolean
clear()
Limpa as informações do verificadorFileToBeSigned<?>
generateFileToBeSigned(XadesSignature verifiedSignature)
Gera um objetoFileToBeSigned
com as informações necessárias.List<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()
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 assinaturasCertificate
getSignerCertificate(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 assinaturabyte[]
getUpdatedSignatureBytes()
boolean
hasSignedData()
Verifica se a assinatura selecionada possui dados assinados.boolean
needSignedContent()
Verifica se a assinatura possui conteúdo destacadovoid
report(Report report, SignatureBytesWrapper wrapper)
Constrói um objetoReport
com as informações da verificaçãovoid
selectSignatures(boolean isComplete)
Carrega as informações das assinaturas presentes no contâiner XAdEsvoid
selectTarget(byte[] target, byte[] content)
Inicializa os bytes do documento XAdES assinadovoid
selectTarget(SignatureBytesWrapper wrapper)
void
setPolicyType(Profile.AdESType policyType)
Atribue o tipo da política de assinaturaboolean
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 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
-
getUpdatedSignatureBytes
public byte[] getUpdatedSignatureBytes()- Specified by:
getUpdatedSignatureBytes
in interfaceVerifier
-
getSignerCertificate
Tenta encontrar o certificado do assinante, buscando primeiro no KeyInfo e depois no atributo SiningCertificate.- Parameters:
sig
- Assinatura contendo KeyInfo ou SigningCertificate- Returns:
- Certificado do assinante
-
addValidationData
Adiciona novos certificados e CRLs ao SignatureIdentityInformation da assinatura de acordo com a presença dos atributos CertificateValues e RevocationValues- Parameters:
xadesSignature
- A assinatura XAdES
-
selectSignatures
Carrega as informações das assinaturas presentes no contâiner XAdEs- Parameters:
isComplete
- Se o relatório deve ser completo 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
- Specified by:
getComponent
in interfaceVerifier
-
getAvailableAttributes
Retorna os atributos que podem ser inseridos na assinatura selecionada- Specified by:
getAvailableAttributes
in interfaceVerifier
- 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 -
report
public void report(Report report, SignatureBytesWrapper wrapper) throws VerificationException, InterruptedExceptionConstrói um objetoReport
com as informações da verificação- Specified by:
report
in interfaceVerifier
- Parameters:
report
- O relatório a ser preenchidowrapper
- Wrapper com a assinatura e o conteúdo assinado- Throws:
VerificationException
- Exceção caso haja algum problema na verificaçãoInterruptedException
-
getSigningCertificateSigReport
Busca certificado do assinante de um relatório de assinatura- Specified by:
getSigningCertificateSigReport
in interfaceVerifier
- Parameters:
sigReport
- Relatório da assinatura que deseja descobrir o assinante- Returns:
- Certificado do assinate
-
selectTarget
- Throws:
VerificationException
-
selectTarget
Inicializa 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- Specified by:
needSignedContent
in interfaceVerifier
- Returns:
- Indica se a assinatura possui conteúdo destacado
-
getMandatedAttributes
Retorna uma lista de atributos obrigatórios- Specified by:
getMandatedAttributes
in interfaceVerifier
- Returns:
- Uma lista de atributos obrigatórios
-
supports
Verifica se o documento assinado é uma assinatura XAdES- Specified by:
supports
in interfaceVerifier
- 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
- Specified by:
getCertPath
in interfaceVerifier
-
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
-
addMissingAttributes
public void addMissingAttributes(SignatureVerifier verifier, XadesSignature verifiedSignature, XadesSignatureComponent signatureComponent) throws SignatureAttributeException, EncodingException, IOExceptionAdiciona os atributos ausentes obrigatórios à assinatura selecionada. Caso os atributos ausentes sejam adicionados, a assinatura atualizada será armazenada emupdatedSignatureBytes
.- Parameters:
verifier
- Verificador da assinatura.verifiedSignature
- Assinatura XAdES verificada.signatureComponent
- Componente de assinatura XAdES.- Throws:
SignatureAttributeException
- Exceção caso haja erro nos atributos da assinatura.EncodingException
- Exceção caso haja erro na codificação.IOException
- Exceção caso haja erro na manipulação de arquivos.
-
generateFileToBeSigned
Gera um objetoFileToBeSigned
com as informações necessárias.- Parameters:
verifiedSignature
- Assinatura XAdES verificada.- Returns:
- Um objeto
FileToBeSigned
contendo informações da assinatura e arquivo.
-
hasSignedData
public boolean hasSignedData()Verifica se a assinatura selecionada possui dados assinados.- Specified by:
hasSignedData
in interfaceVerifier
- Returns:
- true se os dados assinados estiverem presentes ou se o tipo da assinatura não for detached; false caso contrário.
-