java.lang.Object
br.ufsc.labsec.signature.conformanceVerifier.report.AbstractReport
br.ufsc.labsec.signature.conformanceVerifier.report.SignatureReport
All Implemented Interfaces:
ReportElement
Direct Known Subclasses:
TimeStampReport

public class SignatureReport
extends AbstractReport
Esta classe representa o relatório de uma assinatura
  • Field Details

    • conformity

      protected SignatureReport.Conformity conformity
    • signatureType

      protected SignatureReport.SignerType signatureType
    • validation

      protected LinkedList<ValidationDataReport> validation
      Conjunto da validação de certificados e CRLs
    • attributeValidation

      protected Map<Object,​LinkedList<ValidationDataReport>> attributeValidation
      Conjunto da validação de certificados de atributo e CRLs.
    • claimedAttributes

      protected Map<String,​List<String>> claimedAttributes
      Conjunto da validação de certificados de atributo e CRLs.
    • stamps

      protected List<TimeStampReport> stamps
      Lista de relatórios de carimbo de tempo
    • counterSignatures

      protected List<SignatureReport> counterSignatures
      Lista de contra assinaturas
    • requiredAttrib

      protected List<AttribReport> requiredAttrib
      Lista de relatórios de atributos obrigatórios
    • optionalAttrib

      protected List<AttribReport> optionalAttrib
      Lista de relatórios de atributos opcionais
    • ignoredAttrib

      protected List<AttribReport> ignoredAttrib
      Lista de relatórios de atributos ignorados
    • extraReports

      protected List<AttribReport> extraReports
      Lista de relatórios de atributos extra
    • references

      protected List<Boolean> references
      Lista de validade de referências
    • signerSubjectName

      protected String signerSubjectName
      Nome do assinante
    • requiredRules

      protected String requiredRules
      Regras obrigatórias
    • prohibitedRules

      protected String prohibitedRules
      Regras proibidas
    • errorMessages

      protected List<String> errorMessages
      Lista de mensagens de erro da verificação
    • present

      protected boolean present
    • schema

      protected boolean schema
      Validade do esquema XML
    • messageDigest

      protected byte[] messageDigest
      Valor do hash da assinatura
    • hash

      protected boolean hash
      Validade do hash da assinatura
    • asymmetricCipher

      protected SignatureReport.AsymmetricCipherValidity asymmetricCipher
      Validade da cifra assimétrica
    • certValidity

      protected ValidationResult certValidity
      Validade do caminho de certificação, sua respectiva mensagem e seus problemas encontrados (caso haja algum)
    • attributeCertValidity

      protected Map<Object,​ValidationResult> attributeCertValidity
      Conjunto da validação de certificados de atributo e CRLs.
    • hasMandatedAttributeExceptions

      protected boolean hasMandatedAttributeExceptions
      Indica a presença de um atributo inválido
    • hasProhibitedAttributeException

      protected boolean hasProhibitedAttributeException
    • hasOptionalAttributeException

      protected boolean hasOptionalAttributeException
    • updateVerificationMethod

      protected String updateVerificationMethod
      Indica os métodos de verificação incremental.
    • hasInvalidUpdates

      protected boolean hasInvalidUpdates
      Indica a presença de atualizações incrementais inválidas
    • hasPossibleInvalidUpdates

      protected boolean hasPossibleInvalidUpdates
      Indica indeterminação por atualizações incrementais
    • hasOneInvalidTimeStamp

      protected boolean hasOneInvalidTimeStamp
      Indica a presença de um carimbo de tempo inválido
    • hasOneIndeterminateTimeStamp

      protected boolean hasOneIndeterminateTimeStamp
      Indica a presença de um carimbo de tempo expirado
    • hasOnlyExpiredTimeStamps

      protected boolean hasOnlyExpiredTimeStamps
      Indica a presença de apenas carimbos de tempo expirados
    • extensionsReport

      protected ExtensionsReport extensionsReport
      Relatório das extensões SubjectAlternativeNames e CertificatePolicies do certificado do assinante
    • signerCertificateSelector

      protected CertSelector signerCertificateSelector
      Seletor do certificado do assinante
    • isCompleteReport

      protected boolean isCompleteReport
      Indica se o relatório é completo ou não
    • signingTime

      protected String signingTime
      Indica data e hora da assinatura (se conter)
    • isICPBr

      protected boolean isICPBr
      Boolean que indica se uma assinatura é ICP-Br, caso verdadeiro, serão verificados os algoritmos do Doc-ICP-01.01
    • xPathSignature

      protected String xPathSignature
    • objectDictionarySignature

      protected String objectDictionarySignature
    • signerCertificate

      protected Certificate signerCertificate
    • sigPolicyName

      protected String sigPolicyName
  • Constructor Details

    • SignatureReport

      public SignatureReport()
      Construtor da classe
  • Method Details

    • getVerificationPackage

      public VerificationPackage getVerificationPackage()
    • with

      public SignatureReport with​(boolean verifyNotAnchored, boolean isCounterSignature, boolean isCompleteReport)
    • setRequiredRules

      public void setRequiredRules​(String required)
      Atribue as regras obrigatórias
      Parameters:
      required - As regras obrigatórias
    • setExtensionsReport

      public void setExtensionsReport​(ExtensionsReport extensionsReport)
      Atribue o relatório das extensões
      Parameters:
      extensionsReport - O relatório das extensões
    • setProhibitedRules

      public void setProhibitedRules​(String prohibited)
      Atribue as regras proibidas
      Parameters:
      prohibited - As regras proibidas
    • setErrorMessage

      public void setErrorMessage​(Collection<? extends Exception> errorMessages)
      Atribue uma mensagem de erro
      Parameters:
      errorMessages - A mensagem de erro
    • setErrorMessage

      public void setErrorMessage​(String errorMessages)
      Atribue uma mensagem de erro
      Parameters:
      errorMessages - A mensagem de erro
    • setWarningMessage

      public void setWarningMessage​(String warningMessage)
      Atribue uma mensagem de alerta
      Parameters:
      warningMessage - A mensagem de erro
    • setPresent

      public void setPresent​(boolean present)
      Atribue se está presente
      Parameters:
      present - Se está presente
    • setForm

      public void setForm​(SignatureReport.Form form)
      Atribue form
      Parameters:
      form - Form
    • setSchema

      public void setSchema​(boolean schema)
      Atribue a validade do esquema
      Parameters:
      schema - A validade do esquema
    • setSchemaPattern

      public void setSchemaPattern​(SignatureReport.SchemaPatternState pattern)
      Atribue o padrão ao qual o esquema está ou não em conformidade
      Parameters:
      pattern - O padrão do esquema
    • setHash

      public void setHash​(boolean hash)
      Atribue a validade do hash
      Parameters:
      hash - A validade do hash
    • setAsymmetricCipher

      public void setAsymmetricCipher​(SignatureReport.AsymmetricCipherValidity asymmetricCipher)
      Atribue a validade da cifra assimétrica
      Parameters:
      asymmetricCipher - A validade da cifra assimétrica
    • setAsymmetricCipher

      public void setAsymmetricCipher​(boolean asymmetricCipher)
      Atribue a validade da cifra assimétrica
      Parameters:
      asymmetricCipher - A validade da cifra assimétrica
    • setSignerSubjectName

      public void setSignerSubjectName​(String name)
      Atribue o nome do assinante
      Parameters:
      name - O nome do assinante
    • setSignerCertificateSelector

      public void setSignerCertificateSelector​(Certificate certificate)
      Constroi o seletor para o certificado do assinante
      Parameters:
      certificate - O certificado do assinante
    • setPaOidValid

      public void setPaOidValid​(boolean valid)
      Atribue a validade do OID da PA
      Parameters:
      valid - A validade do OID da PA
    • setSigningTime

      public void setSigningTime​(Date date)
      Atribue a data e horário de assinatura
      Parameters:
      date - Data do atributo signing-time ou dicionário M
    • setxPathSignature

      public void setxPathSignature​(String xPath)
      Atribue o XPath de uma assinatura XML
      Parameters:
      xPath - XPath da assinatura XML
    • setUpdateVerificationMethod

      public void setUpdateVerificationMethod​(String updateVerificationMethod)
    • getUpdateVerificationMethod

      public String getUpdateVerificationMethod()
    • setObjectDictionarySignature

      public void setObjectDictionarySignature​(String objectSignature)
      Atribue o objeto de dicionário da assinatura PDF
      Parameters:
      objectSignature - Objeto de dicionário da assinatura PDF
    • getSignerCertificate

      public Certificate getSignerCertificate()
      Retorna o certificado do assinante
    • getExtensionsReport

      public ExtensionsReport getExtensionsReport()
      Retorna o relatório de extensões da assinatura
    • getObjectDictionarySignature

      public String getObjectDictionarySignature()
    • getXPathSignature

      public String getXPathSignature()
      Retorna o XPath de uma assinatura XML
    • getSigningTime

      public String getSigningTime()
      Retorna o horário de assinatura
      Returns:
      Horário de assinatura
    • invalidateDueToIncrementalUpdates

      public void invalidateDueToIncrementalUpdates()
      Atribue invalidação por atualização incrementais
    • indeterminateDueToPossibleIncrementalUpdate

      public void indeterminateDueToPossibleIncrementalUpdate()
      Atribue indeterminação por atualizações incrementais
    • isInvalidDueToIncrementalUpdates

      public boolean isInvalidDueToIncrementalUpdates()
      Retorna se a assinatura é inválida pela validação de atualizações incrementais
      Returns:
      Se há atualizações incrementais inválidas
    • isIndeterminateDueToIncrementalUpdates

      public boolean isIndeterminateDueToIncrementalUpdates()
      Retorna se a assinatura é indeterminada pela validação de atualizações incrementais
      Returns:
      Se há atualizações incrementais inválidas
    • addValidation

      public void addValidation​(ValidationDataReport validationData)
      Adiciona um relatório de validação de CRLs e certificados
      Parameters:
      validationData - O relatório de validação de CRLs e certificados
    • addValidationSignerCertificate

      public void addValidationSignerCertificate​(ValidationDataReport validationDataReport)
    • addAttributeValidation

      public void addAttributeValidation​(ValidationDataReport validationData)
    • removeAttributeValidation

      public void removeAttributeValidation​(ValidationDataReport validationDataReport)
    • getAttributeValidationReports

      public List<ValidationDataReport> getAttributeValidationReports​(ValidationDataReport attributeValidationReport)
    • addAttributeValidation

      public void addAttributeValidation​(ValidationDataReport validationData, ValidationDataReport pathValidationData)
    • addClaimedAttributes

      public void addClaimedAttributes​(String identifier, List<String> values)
    • addTimeStampReport

      public void addTimeStampReport​(TimeStampReport timeStampReport)
      Adiciona um relatório de carimbo de tempo
      Parameters:
      timeStampReport - O relatório de carimbo de tempo a ser adicionado
    • addCounterSignatureReport

      public void addCounterSignatureReport​(SignatureReport counterSignatureReport)
      Adiciona relatórios de verificação de contra-assinaturas recursivamente
      Parameters:
      counterSignatureReport - O relatório com as contra-assinaturas
    • addAttribOptionalReport

      public void addAttribOptionalReport​(AttribReport attrib)
      Adiciona um relatório de atributo opcional
      Parameters:
      attrib - O relatório de atributo a ser adicionado
    • addAttribIgnoredReport

      public void addAttribIgnoredReport​(AttribReport attrib)
      Adiciona um relatório de atributo ignorado
      Parameters:
      attrib - O relatório de atributo a ser adicionado
    • addAttribRequiredReport

      public void addAttribRequiredReport​(AttribReport attrib)
      Adiciona um relatório de atributo obrigatório
      Parameters:
      attrib - O relatório de atributo a ser adicionado
    • addReferences

      public void addReferences​(boolean bool)
      Adiciona a validade de uma referência
      Parameters:
      bool - A validade de uma referência
    • addExtraAttrReport

      public void addExtraAttrReport​(AttribReport attribReport)
      Adiciona um relatório de atributo extra
      Parameters:
      attribReport - O relatório de atributo a ser adicionado
    • getCountryRD

      public String getCountryRD()
    • filterPersonalInformationInName

      public static String filterPersonalInformationInName​(String principalName)
      Filtra informações pessoais, como cpf, no nome (principal name) de certificados.
      Parameters:
      principalName - Nome a ser filtrado
    • getElementTag

      public String getElementTag()
      Description copied from interface: ReportElement
      Retorna a tag do elemento
      Returns:
      A tag do elemento
    • setCertValidity

      public void setCertValidity​(ValidationResult validity)
      Atribue a validade do caminho de certificação, contendo os problemas (caso encontrados) e demais detalhes necessários
      Parameters:
      validity - A validade do caminho de certificação
    • setCertificationPathMessage

      public void setCertificationPathMessage​(String message)
      Atribue a mensagem do caminho de certificação Por poder ser encontrada em diferentes etapas da verificação, é necessário ter esse método para mudá-lo dinamicamente
      Parameters:
      message - A mensagem do caminho de certificação
    • setCertificatesRequiredOnSignature

      public void setCertificatesRequiredOnSignature​(SignerRules.CertInfoReq mandatedCertificateInfo)
      Atribue o valor do atributo mandatedCertificateInfo de acordo com o parâmetro
      Parameters:
      mandatedCertificateInfo - O valor da informação obrigatória de certificado
    • setContainsMandatedCertificates

      public void setContainsMandatedCertificates​(boolean contains)
      Atribue a presença de todos os certificados necessários
      Parameters:
      contains - Presença de todos os certificados necessários
    • setSchemaMessage

      public void setSchemaMessage​(String message)
      Atribue a mensagem do esquema
      Parameters:
      message - A mensagem do esquema
    • getValidation

      public List<ValidationDataReport> getValidation()
      Retorna o conjunto de relatórios de validação de certificados e CRLs
      Returns:
      O conjunto de validações de certificados e CRLs
    • getValidation

      public List<ValidationDataReport> getValidation​(ValidationDataReport attributeValidation)
    • getStamps

      public List<TimeStampReport> getStamps()
      Retorna a lista de carimbos de tempo
      Returns:
      A lista de carimbos de tempo
    • getRequiredAttrib

      public List<AttribReport> getRequiredAttrib()
      Retorna a lista de atributos obrigatórios
      Returns:
      A lista de atributos obrigatórios
    • getAllAttributes

      public List<AttribReport> getAllAttributes()
    • getOptionalAttrib

      public List<AttribReport> getOptionalAttrib()
      Retorna a lista de atributos opcionais
      Returns:
      A lista de atributos opcionais
    • getIgnoredAttrib

      public List<AttribReport> getIgnoredAttrib()
      Retorna a lista de atributos ignorados
      Returns:
      A lista de atributos ignorados
    • getReferences

      public List<Boolean> getReferences()
      Retorna a lista de referências
      Returns:
      A lista de referências
    • getSignerSubjectName

      public String getSignerSubjectName()
      Retorna o nome do assinante
      Returns:
      O nome do assinante
    • getSignerCertificateSelector

      public CertSelector getSignerCertificateSelector()
      Retorna o seletor do certificado do assinante
      Returns:
      O certificado do assinante
    • getRequiredRules

      public String getRequiredRules()
      Retorna as regras obrigatórias
      Returns:
      As regras obrigatórias
    • getProhibitedRules

      public String getProhibitedRules()
      Retorna as regras proibidas
      Returns:
      As regras proibidas
    • buildElements

      protected void buildElements​(ReportBuilder<?,​?> documentBuilder)
      Description copied from class: AbstractReport
      Constroi os elementos específicos do relatório
      Specified by:
      buildElements in class AbstractReport
      Parameters:
      documentBuilder - builder
    • buildCertPathElement

      protected void buildCertPathElement​(Collection<ValidationDataReport> reports, ReportBuilder<?,​?> documentBuilder)
    • buildAttributes

      protected void buildAttributes​(ReportBuilder<?,​?> reportBuilder)
    • buildIntegrity

      protected void buildIntegrity​(ReportBuilder<?,​?> documentBuilder)
    • buildReference

      protected void buildReference​(Boolean reference, ReportBuilder<?,​?> documentBuilder)
    • getErrorMessages

      public List<String> getErrorMessages()
      Retorna a lista de mensagens de erro
      Overrides:
      getErrorMessages in class AbstractReport
      Returns:
      A lista de mensagens de erro
    • getWarningMessages

      public List<String> getWarningMessages()
      Retorna a lista de mensagens de alerta
      Returns:
      A lista de mensagens de alerta
    • isPresent

      public boolean isPresent()
      Retorna se está presente
      Returns:
      Indica se está presente
    • isHash

      public boolean isHash()
      Retorna a validade do hash
      Returns:
      Indica se o hash é válido
    • hasAttributeExceptions

      public boolean hasAttributeExceptions()
      Retorna a validade dos atributos
      Returns:
      validade dos atributos
    • hasMandatedAttributeExceptions

      public boolean hasMandatedAttributeExceptions()
      Retorna a validade dos atributos obrigatórios
      Returns:
      validade dos atributos obrigatórios
    • hasOptionalAttributeException

      public boolean hasOptionalAttributeException()
      Retorna a validade dos atributos opcionais
      Returns:
      validade dos atributos opcionais
    • hasProhibitedAttributeException

      public boolean hasProhibitedAttributeException()
      Retorna a validade dos atributos proibidos
      Returns:
      validade dos atributos proibidos
    • isValid

      public boolean isValid()
      Retorna se a assinatura é válida
      Returns:
      Indica se a assinatura é válida
    • isInvalid

      public boolean isInvalid()
      Retorna se a assinatura é inválida
      Returns:
      Indica se a assinatura é válida
    • validityStatus

      public SignatureReport.SignatureValidity validityStatus()
      Retorna a validade da assinatura
      Returns:
      Indica a validade da assinatura
    • isSchemaValid

      public boolean isSchemaValid()
      Retorna se a estrutura do arquivo está de acordo com o padrão especificado
      Returns:
      Validade da estrutura do documento da assinatura
    • isNonRepudiable

      public boolean isNonRepudiable()
      Retorna a validade da cifra assimétrica
      Returns:
      A validade da cifra assimétrica
    • getForm

      public SignatureReport.Form getForm()
      Retorna a forma de obter o certificado do assinante
      Returns:
      A forma de obter o certificado do assinante
    • isCertPathValid

      public boolean isCertPathValid()
      Retorna se o caminho de certificação é válido
      Returns:
      Indica se o caminho de certificação é válido
    • isCertPathInvalid

      public boolean isCertPathInvalid()
      Retorna se o caminho de certificação é inválido
      Returns:
      Indica se o caminho de certificação é válido
    • isHasAttributeExceptions

      public boolean isHasAttributeExceptions()
      Retorna a presença de atributos com exceções
      Returns:
      Indica a presença de atributos inválidos
    • getCertPathState

      public String getCertPathState()
      Retorna a validade do caminho de certificação
      Returns:
      A validade do caminho de certificação
    • getCertPathValidity

      public ValidationResult getCertPathValidity()
      Retorna a validade do caminho de certificação
      Returns:
      A validade do caminho de certificação
    • getAttributeCertPathValidity

      public ValidationResult getAttributeCertPathValidity​(ValidationDataReport attributeReport)
    • setAttributeCertValidity

      public void setAttributeCertValidity​(ValidationDataReport attributeReport, ValidationResult certValidity)
    • getCertPathMessage

      public String getCertPathMessage()
      Retorna a mensagem do caminho de certificação
      Returns:
      A mensagem do caminho de certificação
    • getMandatedCertificateInfo

      public String getMandatedCertificateInfo()
      Retorna a informação obrigatória de certificado
      Returns:
      A informação obrigatória de certificado
    • isContainsAllCertificatesNeeded

      public boolean isContainsAllCertificatesNeeded()
      Retorna se todos os certificados necessários estão presentes
      Returns:
      Indica a presença de todos os certificados necessários
    • getSchemaMessage

      public String getSchemaMessage()
      Retorna a mensagem do esquema
      Returns:
      A mensagem do esquema
    • getSignaturePolicy

      public SignaturePolicyInstance getSignaturePolicy()
      Retorna a política de assinatura
      Returns:
      A política de assinatura
    • setSignaturePolicyInstance

      public void setSignaturePolicyInstance​(SignaturePolicyInstance signaturePolicy)
      Atribue a política de assinatura
      Parameters:
      signaturePolicy - A política de assinatura
    • setPresenceOfMandatoryInvalidAttributes

      public void setPresenceOfMandatoryInvalidAttributes​(boolean hasAttributeExceptions)
      Atribue a presença de atributos obrigatórios inválidos
      Parameters:
      hasAttributeExceptions - A presença de atributos inválidos
    • setPresenceOfOptionalInvalidAttributes

      public void setPresenceOfOptionalInvalidAttributes​(boolean hasAttributeExceptions)
      Atribue a presença de atributos opcionais inválidos
      Parameters:
      hasAttributeExceptions - A presença de atributos inválidos
    • setPresenceOfProhibitedInvalidAttributes

      public void setPresenceOfProhibitedInvalidAttributes​(boolean hasAttributeExceptions)
      Atribue a presença de proibidos inválidos
      Parameters:
      hasAttributeExceptions - A presença de atributos inválidos
    • isPaOidValid

      public boolean isPaOidValid()
      Retorna se o OID da política de assinatura é válido
      Returns:
      Indica se o OID da política de assinatura é válido
    • getMessageDigest

      public String getMessageDigest()
      Retorna o valor do hash da assinatura
      Returns:
      O hash da assinatura
    • setMessageDigest

      public void setMessageDigest​(byte[] messageDigest)
      Atribue o valor do hash da assinatura
      Parameters:
      messageDigest - O hash da assinatura
    • setHasOneIndeterminateTimeStamp

      public void setHasOneIndeterminateTimeStamp​(boolean hasOneIndeterminateTimeStamp)
      Atribue a presença de um carimbo de tempo expirado
      Parameters:
      hasOneIndeterminateTimeStamp - A presença de um carimbo de tempo expirado
    • setHasOneInvalidTimeStamp

      public void setHasOneInvalidTimeStamp​(boolean hasOneInvalidTimeStamp)
      Atribue a presença de um carimbo de tempo inválido
      Parameters:
      hasOneInvalidTimeStamp - A presença de um carimbo de tempo inválido
    • setConformity

      public void setConformity​(SignatureReport.Conformity conformity)
    • getConformity

      public SignatureReport.Conformity getConformity()
    • setSignatureType

      public void setSignatureType​(SignatureReport.SignerType signatureType)
    • getSignatureType

      public SignatureReport.SignerType getSignatureType()
    • hasOneIndeterminateTimeStamp

      public boolean hasOneIndeterminateTimeStamp()
      Retorna a presença de um carimbo de tempo expirado
    • hasOneInvalidTimeStamp

      public boolean hasOneInvalidTimeStamp()
      Retorna a presença de um carimbo de tempo inválido
    • isICPBr

      public boolean isICPBr()
    • setICPBr

      public void setICPBr​(boolean ICPBr)
    • setSignaturePolicyName

      public void setSignaturePolicyName​(String signaturePolicyIdentifier)
    • getSignaturePolicyName

      public String getSignaturePolicyName()
    • makeVerificationPackage

      public void makeVerificationPackage​(X509Certificate certificate, CertPath certPath, Time timeReference)
    • makeVerificationPackage

      public void makeVerificationPackage​(X509Certificate certificate)
    • setWithVerificationPackage

      public void setWithVerificationPackage​(boolean withVerificationPackage)