Giter Site home page Giter Site logo

demoiselle / signer Goto Github PK

View Code? Open in Web Editor NEW
139.0 32.0 71.0 39.01 MB

Repositório que contém os componentes para facilitar a implementação de assinatura digital nos padrões da ICP-BRASIL

Home Page: https://www.frameworkdemoiselle.gov.br/v3/signer/

License: GNU Lesser General Public License v3.0

Java 99.90% Shell 0.08% HTML 0.03%
icp-brasil digital-signature cryptography timestamp pki certificates x509certificates x509

signer's Issues

Melhorar mensagem de erro

Ao validar uma assinatura com parâmetros errados, o retorno não diz muita coisa a respeito do erro.

Error trying get Keyvalue CPF

Ao tentar utilizar a versão BETA1 com certificado A3, estou recebendo a seguinte exceção:

Exception in thread "main" org.demoiselle.signer.signature.core.exception.CertificateCoreException: Error trying get Keyvalue CPF at org.demoiselle.signer.signature.core.extension.ICPBrasilExtensionLoader.load(ICPBrasilExtensionLoader.java:277) at org.demoiselle.signer.signature.core.CertificateManager.load(CertificateManager.java:111) at org.demoiselle.signer.signature.core.CertificateManager.load(CertificateManager.java:127) at br.com.telessaude.pdfsign.App.getICPBrasilCertificate(App.java:45) at br.com.telessaude.pdfsign.App.main(App.java:76) Caused by: java.lang.ClassCastException: org.demoiselle.signer.signature.core.oid.OIDGeneric cannot be cast to org.demoiselle.signer.signature.core.oid.OID_2_16_76_1_3_1 at org.demoiselle.signer.signature.core.extension.CertificateExtra.getOID_2_16_76_1_3_1(CertificateExtra.java:153) at org.demoiselle.signer.signature.core.extension.ICPBRSubjectAlternativeNames.<init>(ICPBRSubjectAlternativeNames.java:58) at org.demoiselle.signer.signature.core.extension.BasicCertificate.getICPBRSubjectAlternativeNames(BasicCertificate.java:286) at org.demoiselle.signer.signature.core.extension.BasicCertificate.hasCertificatePF(BasicCertificate.java:313) at org.demoiselle.signer.signature.core.extension.ICPBrasilExtensionLoader.load(ICPBrasilExtensionLoader.java:59) ... 4 more

Alguma idéia do que pode ser?

Criação de instaladores para o desktop

Criação de instaladores para:

  • Windows
  • Linux (Baseados em Debian)
  • Mac (Menos prioritário)

O instalador deverá:

  1. Instalar bibliotecas necessárias
  2. Copiar o JAR para a pasta do problema
  3. Adicionar o programa na inicialização do sistema
  4. Rodar os scripts para instalação dos certificados nos navegadores (Ainda não temos certeza)
  • Verificar se o Windows permite levantar uma porta na máquina sem ser um serviço instalado.

Permitir assinar um documento com um clique

Hoje da maneira que esta estruturado o componente é necessário passar o alias do certificado e os caminhos para assinar.

O ideal seria somente chamar uma função signFile sem parâmetros e o componente verificar se existe apenas 1 certificado, e se for o caso pedir o arquivos para assinar.

Documentação Agent (Desktop, Desktop Client, Web Ext)

Criar documentação referente a:

  • Documentação de arquitetura da solução (App -> Web Extension -> Signer Desktop Client -> Signer Desktop -> Token
  • Documentação Desktop
  • Documentação Desktop Client
  • Documentação Web Extension

Novo caminho de instalação WatchData

Recentemente instalei o driver do token WatchData (token USB branco SERPRO) e a pasta "default" de instalação é a "C:\Windows\System32\WatchData\Watchdata ICP CSP v1.0\WDPKCS.dll" mas o componente aponta para a pasta "C:\Windows\System32\WatchdataWatchdata Brazil CSP v1.0\WDPKCS.dll".

Implementar a nova política Referência Básica 2.2

A política mais usada através do componente é a de Referência Básica 2.1 do ITI. Esta política está sinalizada como vigente até 28/11/2016 e pode ser estendida até final de fevereiro de 2017. Com isso o ITI já liberou a nova versão 2.2 para uso.

Link do documento das políticas: http://iti.gov.br/images/twiki/URL/pub/Certificacao/DocIcp/docs13082012/DOC-ICP-15.03_-_Versao_7.2_REQ_DAS_POL_DE_ASSIN__DIG_NA_ICP-BRASIL.pdf

Link da nova política em formato binário: http://politicas.icpbrasil.gov.br/PA_AD_RB_v2_2.der

Alterar as assinatura das funções JS

Alterar de:

var signer: function (alias, provider, content, signaturePolicy) {
};

Para:

// params: { alias: "value", provider: "value", content: "value", signaturePolicy: "value" }
var signer: function (params) {
};

Problema ao tentar rodar em paralelo aplicação agent-desktop

A aplicação desktop "agent-desktop" não funciona ao rodar mais vezes. Ele cria o TryIcon todas as vezes e se perde depois ao tentar fechar cada instância. A princípio nem poderia rodar mais de uma vez, já que o uso do driver USB é por aplicação e pode dar muitos problemas.

Inconsistencia no atributo: IdAaEtsSigPolicyId

As validações no verificador do ITI, das assinaturas no componente atual, estão com esse erro:

Nome do atributo:IdAaEtsSigPolicyId
Corretude: Inválido
Mensagem de erro:Inconsistência no IdAaEtsSigPolicyIdentifier. Os resumos criptográficos do atributo e da PA não são os mesmos.

Refatoração e migração do código original no projeto certificate.

Migrar e refatorar os códigos fontes originais do projeto certificate.
Mudanças nas estruturas de organização e pacotes.
Incluir as funcionalidades da versão 1.1.x, que não haviam sido implementada na 2.0.0: JNLP.
Incluir as funcionalidades da solução Agent (Desktop e UI).

Gestão das ACs

Existe a necessidade de discutir a maneira como o componente se comporta ao lidar com cadeia de autoridades confiáveis.

  • É responsabilidade do componente ficar atualizado? Pode ser um ponto único de manutenção em caso de atualizações mas também pode ser gargalo para projetos.

  • O componente pode utilizar o campo "Authority Information Access" caso exista? Não é um campo obrigatório, mas a maioria das ACs da ICP-Brasil geram certificados com esse campo preenchido. Referência: https://tools.ietf.org/html/rfc5280#section-4.2.2.1. OBS: É uma informação On-Line, acesso semelhante às LCRs.

  • É possível manter um arquivo "JAR" assinado e on-line que implementasse a mesma funcionalidade do demoiselle-ca-icpbrasil.jar mas de forma a consumir o arquivo "ACcompactados.zip" do ITI. As applets ou JavaWebStarts que utilizarem este JAR on-line, deverão apontá-lo em seus descritores. JavaWebStart no arquivo JNLP e a Applet na tag "<object applet" do arquivo HTML.

Organização do código

Excluir projeto applet, renomear métodos, atualizar versão, java doc.

  • chain-icp-brasil
  • core
  • cryptography
  • policy-engine
  • policy-impl-cades
  • policy-impl-pades (Não implementado)
  • policy-impl-xades (Não implementado)
  • signer-examples (Não implementado)
  • timestamp

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.