Class CadesVerifier
java.lang.Object
br.ufsc.labsec.signature.AbstractSignatureVerifier<CadesSignature>
br.ufsc.labsec.signature.conformanceVerifier.cades.CadesVerifier
- All Implemented Interfaces:
Verifier
public class CadesVerifier extends AbstractSignatureVerifier<CadesSignature>
Esta classe implementa os métodos para verificação de uma assinatura CAdES.
Implementa
Verifier
.-
Field Summary
Fields inherited from class br.ufsc.labsec.signature.AbstractSignatureVerifier
currentTimeReference, timeReference
-
Constructor Summary
Constructors Constructor Description CadesVerifier(CadesSignatureComponent cadesSignature)
Construtor -
Method Summary
Modifier and Type Method Description protected void
addAttributeCertificates(CadesSignature signature, SignatureIdentityInformation signatureIdentityInformation)
void
addValidationData(CadesSignature signature)
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 verificadorboolean
containsValidPolicy()
Informa se a assinatura contém um identificador de políticaList<String>
getAvailableAttributes()
Retorna os atributos que podem ser inseridos na assinatura selecionadaCadesSignatureComponent
getCadesSignature()
Retorna o componente de assinatura CAdESCertPath
getCertPath(Certificate cert)
Component
getComponent()
byte[]
getContainerBytes()
List<String>
getMandatedAttributes()
Retorna uma lista de atributos obrigatóriosString
getOid()
Retorna o identificador da política de assinaturaProfile.AdESType
getPolicyType()
Retorna o tipo da política de assinaturabyte[]
getReceiptRequest()
Retorna os bytes do arquivo de requisição de um reciboReport
getReport()
Retorna o relatório da verificação do arquivo de assinaturaCadesSignature
getSelectedSignature()
List<Certificate>
getSignatureCertificateValues(CadesSignature signature)
Retorna a lista de certificados do atributo IdAaEtsCertValuesList<CRL>
getSignatureRevocationValues(CadesSignature signature)
Retorna a lista de CRLs do atributoIdAaEtsRevocationValues
List<org.bouncycastle.cert.X509AttributeCertificateHolder>
getSignerCertifiedAttributes(CadesSignature signature)
Map<org.bouncycastle.asn1.ASN1ObjectIdentifier,List<org.bouncycastle.asn1.ASN1Encodable>>
getSignerClaimedAttributes(CadesSignature signature)
X509Certificate
getSigningCertificate(CadesSignature signature)
X509Certificate
getSigningCertificateSigReport(SignatureReport sigReport)
Busca certificado do assinante de um relatório de assinaturaboolean
hasSignedData()
Verifica se a assinatura selecionada possui dados assinados.boolean
isCadesOID()
Informa se a política de assinatura é CAdESboolean
needSignedContent()
Verifica se a assinatura possui conteúdo destacadovoid
report(Report report, CadesSignatureContainer container, List<TimeStamp<Object>> timeStamps)
void
report(Report report, SignatureContainer<CadesSignature> signatureContainer)
Cria um objetoReport
com as informações da verificaçãovoid
report(Report report, SignatureBytesWrapper wrapper)
void
report(Report report, SignatureBytesWrapper wrapper, List<TimeStamp<Object>> timestamps)
void
selectSignatures(boolean isComplete, boolean bypassAddValidationData)
Carrega as informações de todas as assinaturas no container CadesCadesSignatureContainer
selectTarget(SignatureBytesWrapper wrapper)
Constrói umCadesSignatureContainer
void
setPolicyType(Profile.AdESType policyType)
Atribue o tipo da política de assinaturavoid
setReceiptRequest(byte[] receiptRequest)
boolean
signatureContainerChanged()
Verifica se o container de assinatura foi alterado para verificaçãoboolean
supports(byte[] sig, byte[] detached)
Verifica se o documento assinado é uma assinatura CAdESprotected boolean
validSignature(CadesSignature s)
Verifica se a assinatura foi feita com um certificado ICP-Brasil e se é uma assinatura CAdESMethods 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
-
Constructor Details
-
CadesVerifier
Construtor- Parameters:
cadesSignature
- Componente de assinatura CAdES
-
-
Method Details
-
getOid
Retorna o identificador da política de assinatura- Returns:
- O identificador da política de assinatura
-
getSignatureCertificateValues
Retorna a lista de certificados do atributo IdAaEtsCertValues- Parameters:
signature
- A assinatura CAdES- Returns:
- A lista de certificados presente no atributo da assinatura CertificateValues
-
addAttributeCertificates
protected void addAttributeCertificates(CadesSignature signature, SignatureIdentityInformation signatureIdentityInformation) -
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<CadesSignature>
- Parameters:
signature
- A assinatura
-
getSignerClaimedAttributes
public Map<org.bouncycastle.asn1.ASN1ObjectIdentifier,List<org.bouncycastle.asn1.ASN1Encodable>> getSignerClaimedAttributes(CadesSignature signature) -
getSignerCertifiedAttributes
public List<org.bouncycastle.cert.X509AttributeCertificateHolder> getSignerCertifiedAttributes(CadesSignature signature) -
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
-
selectSignatures
public void selectSignatures(boolean isComplete, boolean bypassAddValidationData) throws InterruptedExceptionCarrega as informações de todas as assinaturas no container Cades- 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
-
getComponent
-
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
-
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<CadesSignature> signatureContainer) throws VerificationException, InterruptedExceptionCria um objetoReport
com as informações da verificação- Specified by:
report
in classAbstractSignatureVerifier<CadesSignature>
- Parameters:
report
- O relatório a ser preenchidosignatureContainer
- O objeto que representa o arquivo de assinatura- Throws:
VerificationException
- Exceção caso haja algum problema na verificaçãoInterruptedException
-
report
public void report(Report report, SignatureBytesWrapper wrapper) throws VerificationException, InterruptedException -
report
public void report(Report report, SignatureBytesWrapper wrapper, List<TimeStamp<Object>> timestamps) throws VerificationException, InterruptedException -
report
public void report(Report report, CadesSignatureContainer container, List<TimeStamp<Object>> timeStamps) throws VerificationException, InterruptedException -
getReport
Retorna o relatório da verificação do arquivo de assinatura- Returns:
- O relatório de verificação
-
selectTarget
public CadesSignatureContainer selectTarget(SignatureBytesWrapper wrapper) throws VerificationExceptionConstrói umCadesSignatureContainer
- Parameters:
wrapper
- Wrapper da assinatura- Throws:
VerificationException
- Exceção caso os bytes não sejam uma assinatura válida
-
getSelectedSignature
-
getSignatureRevocationValues
Retorna a lista de CRLs do atributoIdAaEtsRevocationValues
- Parameters:
signature
- A assinatura que contém o atributo- Returns:
- A lista de CRLs dos certificados presentes na assinatura
-
getAvailableAttributes
Retorna os atributos que podem ser inseridos na assinatura selecionada- Returns:
- Os atributos que podem ser inseridos na assinatura
-
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:
- A lista de atributos obrigatórios
-
getCadesSignature
Retorna o componente de assinatura CAdES- Returns:
- O componente da assinatura
-
supports
Verifica se o documento assinado é uma assinatura CAdES- Parameters:
sig
- Os bytes do documento assinadodetached
- Os bytes do arquivo destacado- Returns:
- Indica se o documento assinado é uma assinatura CAdES
- Throws:
SignatureNotICPBrException
- Exceção caso a assinatura não seja feita com um certificado ICP-Brasil
-
getSigningCertificate
- Specified by:
getSigningCertificate
in classAbstractSignatureVerifier<CadesSignature>
-
validSignature
Verifica se a assinatura foi feita com um certificado ICP-Brasil e se é uma assinatura CAdES- Parameters:
s
- A assinatura a ser verificada- Returns:
- Indica se a assinatura é uma assinatura CAdES e ICP-Brasil
- Throws:
SignatureNotICPBrException
- Exceção caso a assinatura não seja feita com um certificado ICP-Brasil
-
getCertPath
-
setPolicyType
Atribue o tipo da política de assinatura- Parameters:
policyType
- O tipo da política
-
getPolicyType
Retorna o tipo da política de assinatura- Returns:
- O tipo da política
-
isCadesOID
public boolean isCadesOID()Informa se a política de assinatura é CAdES- Returns:
- Indica se a política de assinatura é CAdES
-
containsValidPolicy
public boolean containsValidPolicy()Informa se a assinatura contém um identificador de política- Returns:
- Indica se a assinatura contém uma política de assinatura
-
getReceiptRequest
public byte[] getReceiptRequest()Retorna os bytes do arquivo de requisição de um recibo- Returns:
- os bytes da requisição ou nulo
-
setReceiptRequest
public void setReceiptRequest(byte[] receiptRequest) -
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.
-