GithubHelp home page GithubHelp logo

demoiselle / signer Goto Github PK

View Code? Open in Web Editor NEW
138.0 32.0 70.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 People

Contributors

botelhojp avatar crivano avatar denisfalqueto avatar dependabot[bot] avatar esaito avatar fabianok avatar fabiomdj avatar fmonticelli avatar igormartinez avatar joserenecampa avatar juliancesar avatar kyriosdata avatar laubstein avatar matsaguiar avatar renatodantas avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

signer's Issues

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).

Melhorar mensagem de erro

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

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.

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.

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

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

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.

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

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.

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?

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) {
};

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.

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.