Jump to content

click.png

click.png

click.png

click.png

click.png

click.png

click.png

click.png

click.png

click.png click.png click.png

Assinar Digitalmente usando A1 ou A3


Go to solution Solved by Daniel Simoes,
  • Este tópico foi criado há 1180 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

Boa tarde,

Eu preciso executar esse procedimento abaixo em Delphi, eu já possuo uma string com os valores desejados, só falta assinar digitalmente usando certificado A1 ou A3 e pegar a hash assinada.

Alguém sabe como fazer isso em Delphi? Se os componentes ACbr podem me ajudar? 

Se alguém puder me ajudar, pode me adicionar no zap (19)99639-1801 e passar um orçamento pois estou com bastante urgência!

Obrigado!

 

6.3 Geração do Hash Assinado

O conteúdo de cada campo deverá ser formatado como determinado em anexo e concatenados com o caractere “|”.

Exemplo: 1234561AB123456789012318I|CIACIACIACIACIACIACIACIACIACIACI|12345678901234|I.N.I.C.I. A.I.S.|201806281631426|620|80|50|50|50|50|50|50|1000|ASSINATURA

Do resultado da concatenação devem ser obtidos os bytes conforme a codificação UTF8.

Um hash será gerado a partir dos bytes resultantes da operação anterior.

O hash deverá ser assinado usando a chave privada da Serventia.

O hash assinado é adicionado ao final do registro.

Exemplo: 1234561AB123456789012318I|CIACIACIACIACIACIACIACIACIACIACI|12345678901234|I.N.I.C.I. A.I.S.|201806281631426|620|80|50|50|50|50|50|50|1000|n829XD4stswH7ZNx54rzOWuGYBeqw6B dtiBOaxizpkpkp3VLHTkmEKOWkXrHVeISo76RPM6SxOTZBfxkmu/kQMn8V1D99ePB4S6CQh9rH6 T5vmj1oj82ObTe8IiwO03qpoxwzOfER70tlvn4HwCi0ekNvgsvGpXekiCzweO473yeLHQutxl4Pv4FHZ YaZYsWDcr3zdDT01nBzfj3xg7LveOlaJdeAkdzsppOvdYzHwTSR+mgNgtWJAM2TAe6uHRq1ZcB6 3z0T4lw9uopWOqOwdAbu4ByKuedGyZFc2FMkC5V0N3RRapI5XjH3fQRNmOeFvZvK7qAEPruw2l NXhX/Nw==

Link to comment
Share on other sites

  • Fundadores
  • Solution

Você pode usar a ACBrDFeSSL...

Veja um exemplo quase idêntico, no Projeto SATSig ( que gera a assinatura da Sw.House)

StrCodigoVinculacao := Onlynumber(edtCNPJSoftwareHouse.Text) + Onlynumber(edtCNPJCliente.Text);

memCodigoVinculacao.Text := FDFeSSL.CalcHash(StrCodigoVinculacao, dgstSHA256, outBase64, True);

  • Like 1
Consultor SAC ACBr

Daniel Simões de Almeida
O melhor TEF, é com o Projeto ACBr - Clique e Conheça
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

Link to comment
Share on other sites

Daniel muito obrigado! 

Eu nunca usei o ACbr, vou procurar então esse componente e exemplo que você indicou!

Por acaso você me daria uma assessoria? Se você dizer esse tipo de serviço, claro, me passe um orçamento por favor. Meu contato está no primeiro post.

Obrigado novamente!

Fábio

Link to comment
Share on other sites

  • Fundadores

Humm ok... para baixar os fontes, veja esse link:

https://www.projetoacbr.com.br/fontes/

Após isso... abra o Projeto SATSign na pasta Projetos 

Acho que não precisa de consultoria... ( essa galinha já está morta ) ;)

 

Consultor SAC ACBr

Daniel Simões de Almeida
O melhor TEF, é com o Projeto ACBr - Clique e Conheça
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

Link to comment
Share on other sites

Bom dia Daniel, fiz a instalação do ACBr pelo ACBrInstall_Trunk2.exe no Delphi XE3.

Ao tentar compilar o projeto que você indicou (SATSign) deu o seguinte erro: 

Citar

[MSBuild Error] "0" is an invalid value for the "DebugInformation" parameter of the "DCC" task. The "DebugInformation" parameter is of type "System.Boolean".

Criei um projeto novo e copiei todos os componentes e código,  consegui compilar, mas na hora de executar disse que não encontrou as DLL'S libxml2.dlllibxmlsec.dll.

Encontrei essas DLL's no diretório \XMLSec.., copiei pro diretório do projeto..,  consegui compilar e executar o projeto, mas ele não aparece nada, não da erro, é como se o projeto abrisse e fechasse sozinho, só pisca a tela, sem nenhum erro ou mensagem.

Onde posso estar errando? 

Pergunto novamente, se você puder me assessorar por telefone ou mesmo remotamente, eu ficaria feliz em pagar por sua ajuda.

Obrigado!

Fábio

Link to comment
Share on other sites

  • Fundadores

Humm.. O SATSign é um projeto de Lazarus/FPC

Em relação ao seu projeto... creio que seja algo errado na maneira que ele foi criado... 

Você pode remover as dependências da XMLSec, ajustando o seu ACBr.Inc

Faça um projeto de um simples botão e instancie manualmente a TACBrDFeSSL 

Consultor SAC ACBr

Daniel Simões de Almeida
O melhor TEF, é com o Projeto ACBr - Clique e Conheça
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

Link to comment
Share on other sites

  • Fundadores

Nesse caso provavelmente você copiou as DLLs erradas... de que pasta você pegou ? Você está compilando em 32 ou 64 bits ?

Repare que no ACBrInstall há uma opção para já copiar as DLLs

Consultor SAC ACBr

Daniel Simões de Almeida
O melhor TEF, é com o Projeto ACBr - Clique e Conheça
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

Link to comment
Share on other sites

Não mudei nada Daniel.

Eu instalei no meu Delphi XE3 pelo ACBrInstall_Trunk2.exe, porém eu instalei a versão 64bits.

Era pra ter instalado a 32bits?

Deixei as opções tudo padrão como vem no instalador, fiz somente a instalação mínima, que está marcado ACBr_Comum e ACBr_Diversos, tinha que selecionar alguma outra coisa?

É possível remover e instalar de novo?

Obrigado!

Fábio

Edited by Kym
Link to comment
Share on other sites

  • Fundadores

Se você está compilando em 64 bits, então todas as DLLs devem ser 64 bits... É mais simples trabalhar em 32 bits...

Pode ser a instalação mínima... repare que o ACBrInstall tem uma opção para remover a versão anterior do ACBr

Consultor SAC ACBr

Daniel Simões de Almeida
O melhor TEF, é com o Projeto ACBr - Clique e Conheça
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

Link to comment
Share on other sites

Reinstalei tudo em 32bits com a opção de remover a instalação antiga e parece que funcionou agora Daniel!

Consegui compilar, selecionar o certificado, etc..

Agora vou estudar o código pra ver como adaptar para minha necessidade!

Se o ACBr suprir minhas necessidades, gostaria de saber como posso contribuir de volta.

Muito obrigado novamente! 

Fábio 

Link to comment
Share on other sites

  • Fundadores
4 minutos atrás, Kym disse:

Se o ACBr suprir minhas necessidades, gostaria de saber como posso contribuir de volta.

Temos o SAC... mas divulgar o ACBr na sua comunidade de usuários já nos ajuda muito... ;)

https://www.projetoacbr.com.br/forum/sac/sobre/

 

Se você for usar apenas Windows, pode ajustar o ACBr.inc para que seu executável não fique dependendo de tantas DLLs... Veja esses tópicos, para uma melhor compreensão da ACBrDFeSSL

 

  • Like 1
Consultor SAC ACBr

Daniel Simões de Almeida
O melhor TEF, é com o Projeto ACBr - Clique e Conheça
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

Link to comment
Share on other sites

Daniel, agora com tudo assinado digitalmente eu preciso enviar pra um webservice.

O webservice usa oauth2, preciso me autenticar, gerar um access_token e depois enviar, tudo com POST.

To fazendo aqui usando Indy, tem alguma coisa no ACBr que ajuda nessa parte também?

Obrigado novamente meu amigo!

Link to comment
Share on other sites

  • Fundadores

Você poderia usar a ACBrHTTP, que faz encapsulamento da classes da renomada biblioteca "Synapse" (ou usar a Synapse diretamente)

Você pode ver exemplos de uso, nos fontes do ACBrConsultaCNPJ 

Consultor SAC ACBr

Daniel Simões de Almeida
O melhor TEF, é com o Projeto ACBr - Clique e Conheça
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

Link to comment
Share on other sites

31 minutos atrás, Daniel Simoes disse:

Você poderia usar a ACBrHTTP, que faz encapsulamento da classes da renomada biblioteca "Synapse" (ou usar a Synapse diretamente)

Você pode ver exemplos de uso, nos fontes do ACBrConsultaCNPJ 

Show de bola! Vou estudar o exemplo, muito obrigado novamente!

  • Like 1
Link to comment
Share on other sites

  • Este tópico foi criado há 1180 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.