Class SignaturePolicyProxy
java.lang.Object
br.ufsc.labsec.signature.conformanceVerifier.signaturePolicy.SignaturePolicyProxy
- All Implemented Interfaces:
SignaturePolicyInterface
public class SignaturePolicyProxy extends Object implements SignaturePolicyInterface
Esta classe representa uma Política de Assinatura (PA). Uma PA é composta por três
atributos:
- o seu resumo criptográfico;
- o identificador do método usado para o seu resumo criptográfico;
- as informações da política de assinatura. Este contém vários outros atributos.
- o seu resumo criptográfico;
- o identificador do método usado para o seu resumo criptográfico;
- as informações da política de assinatura. Este contém vários outros atributos.
- See Also:
- RFC 3125
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
SignaturePolicyProxy.SignaturePolicyType
-
Field Summary
Fields Modifier and Type Field Description protected SignaturePolicyInstance
signaturePolicy
Atributo de política de assinatura -
Constructor Summary
Constructors Constructor Description SignaturePolicyProxy()
ConstrutorSignaturePolicyProxy(SignaturePolicyComponent signaturePolicyComponent)
Construtor utilizado quando não tiver acesso a LPA, mas ter o artefato da PA desejada.SignaturePolicyProxy(String signaturePolicyUri)
Construtor utilizado quando não tiver acesso a LPA, mas ter o acesso a PASignaturePolicyProxy(String signaturePolicyHashValue, String lpaUrl)
Construtor. -
Method Summary
Modifier and Type Method Description void
clear()
Limpa a política da última verificaçãoboolean
doesSignerRulesContainsExtension(String oid)
Verifica se há regras adicionais do assinante na políticaboolean
doesVerifierRulesContainsExtension(String oid)
Verifica se há regras adicionais do verificador na políticaProfile.AdESLevel
getAdESLevel()
Profile.AdESType
getAdESType()
Stream<AlgAndLength>
getAlgAndLengthLengthSet(String algId)
Retorna todos os tamanho mínimo de chaves, do signatário, aceitável pela PA.List<Profile<org.bouncycastle.asn1.cms.Attribute,CadesSignature>>
getCAdESProfiles()
List<CommitmentRule>
getCommitmentRules()
Retorna as regras de comprometimento do signatário.int
getDocICPVersion()
Retorna a versão do DOC-ICP 15.03 correspondente à versão da PA.Optional<byte[]>
getEncodedPolicy()
byte[]
getExpectedSignPolicyHash()
Retorna o resumo criptográfico da Política de Assinatura.Optional<SignerRules.ExternalSignedData>
getExternalSignedData()
Informa se os dados assinados devem ser externos ou internos à assinatura, ou se ambos os modos são permitidos.String
getHashAlgorithmId()
Retorna o identificador do algoritmo de resumo criptográfico especificado pela Política de Assinatura.List<Profile<JadesAttrCommonStruct,JadesSignature>>
getJAdESProfiles()
Lpa
getLpa()
void
getLpaReport(Report report, Profile.AdESType policyType)
Atualiza o relatório com informações da LPA que contém a PAOptional<SignerRules.CertInfoReq>
getMandatedCertificateInfo()
Retorna a informação obrigatória de certificadoOptional<SignerRules.CertRefReq>
getMandatedCertificateRef()
Retorna qual será a referência obrigatória do certificado usada nesta Política de Assinatura.List<String>
getMandatedSignedAttributeList()
Obtém os identificadores dos atributos assinados obrigatórios do assinante.List<String>
getMandatedUnsignedSignerAttributeList()
Obtém os identificadores dos atributos não assinados obrigatórios do assinadorList<String>
getMandatedUnsignedVerifierAttributeList()
Obtém os identificadores dos atributos não assinados obrigatórios do verificador.Optional<Integer>
getMinKeyLength(String algId)
Retorna o primeiro tamanho mínimo de chaves, do signatário, aceitável pela PA.List<String>
getOptionalAttributes()
Obtém os identificadores dos atributos opcionais na assinaturaList<String>
getOptionalSignedAttributes()
Obtém os identificadores dos atributos opcionais assinados na assinaturaList<String>
getOptionalUnsignedAttributes()
Obtém os identificadores dos atributos opcionais não-assinados na assinaturaList<Profile<Object,PadesSignature>>
getPAdESProfiles()
SignaturePolicy
getPaFromAsn1(InputStream inputStream)
Busca a PA no arquivo ASN.1 de LPAList<String>
getPoliciesAvaiable(Profile.AdESType type)
Retorna a lista de políticas na LPAString
getPolicyId()
Retorna o identificador da política de assinaturaString
getPolicyUri()
Retorna a URI da PAList<String>
getProhibitedAttributes()
Obtém os identificadores dos atributos proíbidos na assinaturaList<String>
getProhibitedSignedAttributes()
Obtém os identificadores dos atributos proíbidos assinados na assinaturaList<String>
getProhibitedUnsignedAttributes()
Obtém os identificadores dos atributos proíbidos não-assinados na assinaturaPaReport
getReport()
Retorna o relatório da verificação da política de assinaturaString
getSignatureAlgorithmIdentifier()
Set<String>
getSignatureAlgorithmIdentifiers()
Retorna o primeiro identificador do algoritmo de assinatura especificado por esta Política de Assinatura.Optional<SignaturePolicyInstance>
getSignaturePolicy()
Retorna a PAString
getSignaturePolicyIdentifier()
Retorna o identificador da Política de Assinatura.String
getSignaturePolicyVersion()
Retorna a versão da políticaOptional<CertRevReq>
getSignerRevocationReqs()
Retorna o atributosignerRevReq
, que representa o mínimo de requerimentos de revogação que devem ser checados.Optional<BrExtDss>
getSignerRulesBrExtDss()
Optional<BrExtMandatedDocTSEntries>
getSignerRulesBrExtMandatedDocTSEntries()
Retorna a extensão de assinatura brExtMandatedDocTSEntriesOptional<BrExtMandatedPdfSigDicEntries>
getSignerRulesBrExtMandatedPdfSigDicEntries()
Retorna a extensão de assinatura brExtMandatedPdfSigDicEntriesOptional<SigningPeriod>
getSigningPeriod()
Retorna o período em que é permitido usar esta Política de Assinatura.Set<TrustAnchor>
getSigningTrustAnchors()
Retorna o conjunto de âncoras de confiança da PAString
getSigURL(Profile.AdESType type)
Retorna a URL que contém o arquivo de assinatura da LPA.Optional<CertRevReq>
getTimeStampRevocationReqs()
Retorna os requisitos de revogação para certificadosSet<TrustAnchor>
getTimeStampTrustAnchors()
Retorna o conjunto de âncoras de confiança para carimbos do tempo da PA.Set<CertificateTrustPoint>
getTimeStampTrustPoints()
Retorna o conjunto de pontos de confiança do carimbo de tempoSet<TrustAnchor>
getTrustAnchorSet()
Retorna o conjunto de âncoras de cofiança do verificadorString
getURL(Profile.AdESType type)
Retorna a URL da LPAList<Profile<Element,XadesSignature>>
getXAdESProfiles()
boolean
hasProfile()
boolean
isXml()
Indica se a PA é XMLboolean
policyReferencesSigningCertificateV1(String oid)
Indica pelo OID da política se esta política exige SigningCertificateV1.void
setActualPolicy(IdAaEtsSigPolicyId sigPolicyId)
void
setActualPolicy(SignaturePolicyInstance signaturePolicy)
void
setActualPolicy(SignaturePolicyInstance signaturePolicy, String signaturePolicyIdentifier, String signaturePolicyUri)
Atualiza a política com as informações dadas.void
setActualPolicy(SignaturePolicyIdentifier signaturePolicyIdentifier)
void
setActualPolicy(String policyIdentifier, InputStream lpaStream, InputStream lpaSigStream, InputStream policyStream, Profile.AdESType policyType)
Atualiza a política com as informações dadas.void
setActualPolicy(String signaturePolicyIdentifier, String signaturePolicyUri, Profile.AdESType policyType)
Atualiza a política com as informações dadasvoid
setDefaultPolicy()
Inicializa a política com valores padrãovoid
setLpa(byte[] lpa)
Atribue a LPAOptional<BrExtDss>
verifierRulesGetBrExtDss()
Retorna a extensão de assinatura brExtMandatedPdfSigDicEntriesOptional<BrExtMandatedDocTSEntries>
verifierRulesGetBrExtMandatedDocTSEntries()
Retorna a extensão de assinatura brExtMandatedDocTSEntries
-
Field Details
-
signaturePolicy
Atributo de política de assinatura
-
-
Constructor Details
-
SignaturePolicyProxy
public SignaturePolicyProxy(String signaturePolicyHashValue, String lpaUrl) throws LpaException, IOExceptionConstrutor. Obtém a PA correspondente a este resumo criptográfico na LPA- Parameters:
signaturePolicyHashValue
- Valor do resumo criptográfico da PAlpaUrl
- URL da LPA- Throws:
LpaException
- Exceção em caso de erro no acesso à LPAIOException
-
SignaturePolicyProxy
Construtor utilizado quando não tiver acesso a LPA, mas ter o artefato da PA desejada.- Parameters:
signaturePolicyComponent
- A política de assinatura
-
SignaturePolicyProxy
public SignaturePolicyProxy()Construtor -
SignaturePolicyProxy
public SignaturePolicyProxy(String signaturePolicyUri) throws IOException, DOMException, CertificateException, NoSuchAlgorithmException, ParseException, ParserConfigurationException, SAXExceptionConstrutor utilizado quando não tiver acesso a LPA, mas ter o acesso a PA- Parameters:
signaturePolicyUri
- URI da política de assinatura- Throws:
DOMException
- Exceção em caso de erro no arquivo XMLParseException
- Exceção em caso de erro no parsing da data no atributoCertificateException
- Exceção em caso de erro na codificação do certificadoIOException
- Exceção em caso de erro nos bytes do atributoNoSuchAlgorithmException
- Exceção em caso de algoritmo de hash inválidoParserConfigurationException
- Exceção em caso de erro na configuração do parserSAXException
- Exceção em caso de erro na leitura do stream do arquivo da PA
-
-
Method Details
-
getPaFromAsn1
public SignaturePolicy getPaFromAsn1(InputStream inputStream) throws CertificateException, NoSuchAlgorithmException, IOException, ParseExceptionBusca a PA no arquivo ASN.1 de LPA- Parameters:
inputStream
- Stream que contém o arquivo- Throws:
ParseException
- Exceção em caso de erro no parsing da data no atributoCertificateException
- Exceção em caso de erro na codificação do certificadoIOException
- Exceção em caso de erro nos bytes do atributoNoSuchAlgorithmException
- Exceção em caso de algoritmo de hash inválido
-
getMandatedSignedAttributeList
Obtém os identificadores dos atributos assinados obrigatórios do assinante.- Specified by:
getMandatedSignedAttributeList
in interfaceSignaturePolicyInterface
- Returns:
- Lista com os identificadores dos atributos.
-
getProhibitedAttributes
Obtém os identificadores dos atributos proíbidos na assinatura- Specified by:
getProhibitedAttributes
in interfaceSignaturePolicyInterface
- Returns:
- Lista com os identificadores dos atributos.
-
getOptionalAttributes
Obtém os identificadores dos atributos opcionais na assinatura- Specified by:
getOptionalAttributes
in interfaceSignaturePolicyInterface
- Returns:
- Lista com os identificadores dos atributos.
-
getSignaturePolicyVersion
Retorna a versão da política- Returns:
- A versão da política
-
getDocICPVersion
public int getDocICPVersion()Retorna a versão do DOC-ICP 15.03 correspondente à versão da PA. O valor retornado é sempre de dois dígitos.- Specified by:
getDocICPVersion
in interfaceSignaturePolicyInterface
- Returns:
- A versão do DOC-ICP 15.03 correspondente à versão da PA. A versão 1 retorna o número 10, a versão 6.1 retorna o número 61.
-
getProhibitedSignedAttributes
Obtém os identificadores dos atributos proíbidos assinados na assinatura- Specified by:
getProhibitedSignedAttributes
in interfaceSignaturePolicyInterface
- Returns:
- Lista com os identificadores dos atributos.
-
getProhibitedUnsignedAttributes
Obtém os identificadores dos atributos proíbidos não-assinados na assinatura- Specified by:
getProhibitedUnsignedAttributes
in interfaceSignaturePolicyInterface
- Returns:
- Lista com os identificadores dos atributos.
-
getOptionalSignedAttributes
Obtém os identificadores dos atributos opcionais assinados na assinatura- Specified by:
getOptionalSignedAttributes
in interfaceSignaturePolicyInterface
- Returns:
- Lista com os identificadores dos atributos.
-
getOptionalUnsignedAttributes
Obtém os identificadores dos atributos opcionais não-assinados na assinatura- Specified by:
getOptionalUnsignedAttributes
in interfaceSignaturePolicyInterface
- Returns:
- Lista com os identificadores dos atributos.
-
isXml
public boolean isXml()Indica se a PA é XML- Specified by:
isXml
in interfaceSignaturePolicyInterface
- Returns:
- Indica se a Política de Assinatura é XML.
-
getEncodedPolicy
- Specified by:
getEncodedPolicy
in interfaceSignaturePolicyInterface
-
doesSignerRulesContainsExtension
Verifica se há regras adicionais do assinante na política- Specified by:
doesSignerRulesContainsExtension
in interfaceSignaturePolicyInterface
- Parameters:
oid
- O identificador da regra- Returns:
- Indica se a regra indicada está presente na PA
-
doesVerifierRulesContainsExtension
Verifica se há regras adicionais do verificador na política- Parameters:
oid
- O identificador da regra- Returns:
- Indica se a regra indicada está presente na PA
-
getSignerRulesBrExtMandatedPdfSigDicEntries
Retorna a extensão de assinatura brExtMandatedPdfSigDicEntries- Specified by:
getSignerRulesBrExtMandatedPdfSigDicEntries
in interfaceSignaturePolicyInterface
- Returns:
- O valor da extensão
-
getSignerRulesBrExtDss
- Specified by:
getSignerRulesBrExtDss
in interfaceSignaturePolicyInterface
-
verifierRulesGetBrExtDss
Retorna a extensão de assinatura brExtMandatedPdfSigDicEntries- Returns:
- O valor da extensão
-
getExternalSignedData
Informa se os dados assinados devem ser externos ou internos à assinatura, ou se ambos os modos são permitidos.- Specified by:
getExternalSignedData
in interfaceSignaturePolicyInterface
- Returns:
- Indica o modo dos dados assinados
-
getSigningPeriod
Retorna o período em que é permitido usar esta Política de Assinatura.- Specified by:
getSigningPeriod
in interfaceSignaturePolicyInterface
- Returns:
- Intervalo de tempo em que a assinatura deve ser usada.
-
getMinKeyLength
Retorna o primeiro tamanho mínimo de chaves, do signatário, aceitável pela PA.- Specified by:
getMinKeyLength
in interfaceSignaturePolicyInterface
- Returns:
- tamanho da chave do signatário em bits.
-
getAlgAndLengthLengthSet
Retorna todos os tamanho mínimo de chaves, do signatário, aceitável pela PA.- Returns:
- Os tamanhos da chave do signatário em bits.
-
getTrustAnchorSet
Retorna o conjunto de âncoras de cofiança do verificador- Specified by:
getTrustAnchorSet
in interfaceSignaturePolicyInterface
- Returns:
- O conjunto de âncoras de cofiança do verificador
-
getSigningTrustAnchors
Retorna o conjunto de âncoras de confiança da PA- Specified by:
getSigningTrustAnchors
in interfaceSignaturePolicyInterface
- Returns:
- O conjunto de âncoras de confiança da PA
-
getTimeStampTrustAnchors
Retorna o conjunto de âncoras de confiança para carimbos do tempo da PA.- Specified by:
getTimeStampTrustAnchors
in interfaceSignaturePolicyInterface
- Returns:
- O conjunto de âncoras de confiança
-
getTimeStampTrustPoints
Retorna o conjunto de pontos de confiança do carimbo de tempo- Specified by:
getTimeStampTrustPoints
in interfaceSignaturePolicyInterface
- Returns:
- O onjunto de pontos de confiança
-
getTimeStampRevocationReqs
Retorna os requisitos de revogação para certificados- Specified by:
getTimeStampRevocationReqs
in interfaceSignaturePolicyInterface
- Returns:
- Os requisitos de revogação para certificados
-
getSignatureAlgorithmIdentifiers
Retorna o primeiro identificador do algoritmo de assinatura especificado por esta Política de Assinatura.- Specified by:
getSignatureAlgorithmIdentifiers
in interfaceSignaturePolicyInterface
- Returns:
- O identificador do algoritmo
-
getMandatedCertificateRef
Retorna qual será a referência obrigatória do certificado usada nesta Política de Assinatura. Esta informação é guardada pelo atributomandatedCertificateRef
, que será retornado. A referência pode ser somente o certificado do signatário (signerOnly
), ou o caminho de certificação completo(fullPath
).- Specified by:
getMandatedCertificateRef
in interfaceSignaturePolicyInterface
- Returns:
- A referência obrigatória do certificado
-
getSignerRevocationReqs
Retorna o atributosignerRevReq
, que representa o mínimo de requerimentos de revogação que devem ser checados.- Specified by:
getSignerRevocationReqs
in interfaceSignaturePolicyInterface
- Returns:
- O mínimo de requerimentos de revogação a serem verificados
-
getSignatureAlgorithmIdentifier
- Specified by:
getSignatureAlgorithmIdentifier
in interfaceSignaturePolicyInterface
-
getHashAlgorithmId
Retorna o identificador do algoritmo de resumo criptográfico especificado pela Política de Assinatura. Se for XAdES, o retorno será uma URL, e se for CAdES, será um OID.- Specified by:
getHashAlgorithmId
in interfaceSignaturePolicyInterface
- Returns:
- O identificador do algoritmo de resumo criptográfico.
-
getExpectedSignPolicyHash
public byte[] getExpectedSignPolicyHash()Retorna o resumo criptográfico da Política de Assinatura.- Specified by:
getExpectedSignPolicyHash
in interfaceSignaturePolicyInterface
- Returns:
- Valor do resumo criptográfico da Política de Assinatura.
-
getSignaturePolicyIdentifier
Retorna o identificador da Política de Assinatura.- Returns:
- O identificador da Política de Assinatura
-
getCommitmentRules
Retorna as regras de comprometimento do signatário.- Returns:
- As regras de comprometimento
-
setDefaultPolicy
public void setDefaultPolicy()Inicializa a política com valores padrão- Specified by:
setDefaultPolicy
in interfaceSignaturePolicyInterface
-
setActualPolicy
- Specified by:
setActualPolicy
in interfaceSignaturePolicyInterface
-
setActualPolicy
- Specified by:
setActualPolicy
in interfaceSignaturePolicyInterface
-
setActualPolicy
public void setActualPolicy(String policyIdentifier, InputStream lpaStream, InputStream lpaSigStream, InputStream policyStream, Profile.AdESType policyType)Atualiza a política com as informações dadas.- Parameters:
policyIdentifier
- Identificador da políticalpaStream
- Stream da lista de políticas de assinaturalpaSigStream
- Stream da assinatura da políticapolicyStream
- stream da políticapolicyType
- Tipo da política
-
setActualPolicy
public void setActualPolicy(SignaturePolicyInstance signaturePolicy, String signaturePolicyIdentifier, String signaturePolicyUri)Atualiza a política com as informações dadas. Somente chamado caso esteja verificando um perfil e encontre um SigPolicyId- Specified by:
setActualPolicy
in interfaceSignaturePolicyInterface
- Parameters:
signaturePolicy
- política
-
setActualPolicy
- Specified by:
setActualPolicy
in interfaceSignaturePolicyInterface
-
setActualPolicy
public void setActualPolicy(String signaturePolicyIdentifier, String signaturePolicyUri, Profile.AdESType policyType)Atualiza a política com as informações dadas- Specified by:
setActualPolicy
in interfaceSignaturePolicyInterface
- Parameters:
signaturePolicyIdentifier
- Identificador da políticasignaturePolicyUri
- URI da políticapolicyType
- Tipo da política
-
getReport
Retorna o relatório da verificação da política de assinatura- Specified by:
getReport
in interfaceSignaturePolicyInterface
- Returns:
- O relatório de verificação
-
policyReferencesSigningCertificateV1
Indica pelo OID da política se esta política exige SigningCertificateV1.- Specified by:
policyReferencesSigningCertificateV1
in interfaceSignaturePolicyInterface
- Parameters:
oid
- O indentificador da política- Returns:
- Verdadeiro se o oid referencia o atributo SigningCertificateV1. Caso contrário, falso.
-
getAdESType
- Specified by:
getAdESType
in interfaceSignaturePolicyInterface
-
getAdESLevel
- Specified by:
getAdESLevel
in interfaceSignaturePolicyInterface
-
getCAdESProfiles
- Specified by:
getCAdESProfiles
in interfaceSignaturePolicyInterface
-
getXAdESProfiles
- Specified by:
getXAdESProfiles
in interfaceSignaturePolicyInterface
-
getPAdESProfiles
- Specified by:
getPAdESProfiles
in interfaceSignaturePolicyInterface
-
getJAdESProfiles
- Specified by:
getJAdESProfiles
in interfaceSignaturePolicyInterface
-
getLpaReport
Atualiza o relatório com informações da LPA que contém a PA- Specified by:
getLpaReport
in interfaceSignaturePolicyInterface
- Parameters:
report
- Relatório de verificaçãopolicyType
- O tipo de política da PA
-
getPolicyId
Retorna o identificador da política de assinatura- Specified by:
getPolicyId
in interfaceSignaturePolicyInterface
- Returns:
- O identificador da política
-
getURL
Retorna a URL da LPA- Specified by:
getURL
in interfaceSignaturePolicyInterface
- Parameters:
type
- O tipo da política- Returns:
- A URL da LPA
-
getSigURL
Retorna a URL que contém o arquivo de assinatura da LPA. Utilizado apenas em assinaturas PAdES, na construção do dicionário DSS.- Specified by:
getSigURL
in interfaceSignaturePolicyInterface
- Parameters:
type
- o tipo da assinatura- Returns:
- A URL do arquivo de assinatura da LPA caso o tipo da assinatura seja PAdES, ou nulo caso o tipo da assinatura seja CAdES ou XAdES
-
getMandatedCertificateInfo
Retorna a informação obrigatória de certificado- Specified by:
getMandatedCertificateInfo
in interfaceSignaturePolicyInterface
- Returns:
- A informação obrigatória de certificado
-
getMandatedUnsignedVerifierAttributeList
Obtém os identificadores dos atributos não assinados obrigatórios do verificador.- Specified by:
getMandatedUnsignedVerifierAttributeList
in interfaceSignaturePolicyInterface
- Returns:
- Lista com os identificadores dos atributos.
-
getPoliciesAvaiable
Retorna a lista de políticas na LPA- Specified by:
getPoliciesAvaiable
in interfaceSignaturePolicyInterface
- Parameters:
type
- O tipo da política- Returns:
- Lista com os OIDs das políticas contidas na LPA
-
setLpa
public void setLpa(byte[] lpa)Atribue a LPA- Parameters:
lpa
- Os bytes da LPA
-
getSignaturePolicy
Retorna a PA- Specified by:
getSignaturePolicy
in interfaceSignaturePolicyInterface
- Returns:
- A política de assinatura
-
getMandatedUnsignedSignerAttributeList
Obtém os identificadores dos atributos não assinados obrigatórios do assinador- Specified by:
getMandatedUnsignedSignerAttributeList
in interfaceSignaturePolicyInterface
- Returns:
- Lista com os identificadores dos atributos
-
getSignerRulesBrExtMandatedDocTSEntries
Retorna a extensão de assinatura brExtMandatedDocTSEntries- Specified by:
getSignerRulesBrExtMandatedDocTSEntries
in interfaceSignaturePolicyInterface
- Returns:
- O valor da extensão
-
verifierRulesGetBrExtMandatedDocTSEntries
Retorna a extensão de assinatura brExtMandatedDocTSEntries- Returns:
- O valor da extensão
-
getLpa
- Specified by:
getLpa
in interfaceSignaturePolicyInterface
-
getPolicyUri
Retorna a URI da PA- Specified by:
getPolicyUri
in interfaceSignaturePolicyInterface
- Returns:
- A URI da política
-
clear
public void clear()Limpa a política da última verificação- Specified by:
clear
in interfaceSignaturePolicyInterface
-
hasProfile
public boolean hasProfile()- Specified by:
hasProfile
in interfaceSignaturePolicyInterface
-