Nota Fiscal Paulista - Registro tipo EAD

Fórum sobre desenvolvimento de software para atender as exigências da legislação fiscal e tributária (NFe, NFCe, NFSe, SPEED, Projeto ACBr, TEF, ECD, EFD, etc.)

Moderador: Moderadores

ALEX170970
Usuário Nível 1
Usuário Nível 1
Mensagens: 29
Registrado em: 06 Dez 2007 18:12
Localização: Santos-SP

Assinatura de hash 1024 bits

Mensagem por ALEX170970 »

Para gerar a assinatura de hash, faça o seguite:
Grave o arquivo com todos os registros, menos o EAD.
Inclua os comandos abaixo em seu fonte.

//- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
run OPENSSL genrsa -out MYKEY.PEM 1024
run OPENSSL rsa -in MYKEY.PEM -pubout -out PUBKEY.PEM
run OPENSSL dgst -md5 -sign MYKEY.PEM -out EAD.TXT -hex ARQENT.TXT
cEadTxt:=space(315)
cEadTxt:="EAD"+substr(memoread("EAD.TXT"),18,256)
cEadTxt:=cEadTxt+chr(13)+chr(10)
gravou:=fwrite(arqh,cEadTxt)
if !gravou=len(cEadTxt)
? "ERRO NA GRAVACAO DO REGISTRO"
inkey(0)
endif
gravou:=space(315)
return
//- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
//obs: os arquivos EAD.TXT e ARQENT.TXT devem ser previamente criados em branco, sem isso não funciona.
Avatar do usuário
pringles
Usuário Nível 3
Usuário Nível 3
Mensagens: 278
Registrado em: 29 Mai 2007 16:35
Localização: Botucatu-SP

Mensagem por pringles »

Pessoal, estou com o mesmo problema...
Para as impressoras matriciais, preciso gerar a autenticação. Já gerei o arquivo para envio, mas falta a linha com a autenticação.
Vocês chegaram a testar os programas que foram mencionados neste tópico?
CLIPPER 5.2 / BLINKER
dopi
Usuário Nível 2
Usuário Nível 2
Mensagens: 79
Registrado em: 23 Out 2004 12:29
Localização: Tatuí - SP
Contato:

Mensagem por dopi »

Tenho usado o OpenSSL já a algum tempo no ACBrMonitor... Funciona que é uma blz ;)

O único problema no código do Alex é que ele está criando uma chave RSA por dia... e isso é errado. A chave RSA deve ser gerada uma unica vez e deve uso exclusivo da Sw.House...

Portanto as linhas:
OPENSSL genrsa -out MYKEY.PEM 1024
OPENSSL rsa -in MYKEY.PEM -pubout -out PUBKEY.PEM

devem ser executadas apenas uma unica vez... em seu laboratório

Após isso salve a chave RSA gerada, em uma String ou "memo" dentro do seu EXE e salve-a no disco com o nome MYKEY.PEM antes de rodar:
run OPENSSL dgst -md5 -sign MYKEY.PEM -out EAD.TXT -hex ARQENT.TXT
[]s Daniel

Conheça o projeto Automação Comercial Brasil
http://acbr.sourceforge.net/
Mário Isa
Usuário Nível 4
Usuário Nível 4
Mensagens: 907
Registrado em: 07 Jul 2004 13:54
Localização: Ilha Solteira-sp

Mensagem por Mário Isa »

dopi!
arquivo gerado pelo Acbr Monitor com problemas veja:
https://pctoledo.org/forum/viewtopic.php?t=7808
Segundo um outro colega falta na coluna 24 o indicador de Memoria Adicional
E a linha do E16 está com 2 caracteres a mais.
Tem alguma configuração a fazer no Acbr ? Que eu não fiz?
Porque de alguns clientes dá certo e de outros não ?
Tem a ver com a impressora estar com 3 casas decimais ?
Ou tem a ver com o validador da receita que não tá funcionando direito ?
Mário
Mário Isa
Usuário Nível 4
Usuário Nível 4
Mensagens: 907
Registrado em: 07 Jul 2004 13:54
Localização: Ilha Solteira-sp

Mensagem por Mário Isa »

Dopi diz:
Após isso salve a chave RSA gerada, em uma String ou "memo" dentro do seu EXE e salve-a no disco com o nome MYKEY.PEM antes de rodar:
run OPENSSL dgst -md5 -sign MYKEY.PEM -out EAD.TXT -hex ARQENT.TXT
Tenho, na pasta do AcbrMonitor o arquivo:
rsakey.pub

Esta é a minha chave pública ? Que foi gerada pelo acbr ?

De posse dela, posso executar o comando acima trocando MYKEY.PEM por RSAKEY.PUB ?

Mas a minha dúvida é: onde entra o nome do arquivo o qual vou assinar?
Digamos que eu tenha em disco o arquivo
BE602325.138 (Seria o arquivo Bematech série 602325 de 01/03/2008)

Onde, no comando acima, entra o nome desse arquivo? Seria a variável dgst ?

Mário
dopi
Usuário Nível 2
Usuário Nível 2
Mensagens: 79
Registrado em: 23 Out 2004 12:29
Localização: Tatuí - SP
Contato:

Mensagem por dopi »

Vc não precisa da chave pública, a não ser que o fisco solicite para conferir a assinatura do seu arquivo....

Para assinar digitalmente vc precisa ter uma chave privada previamente criada... e usar o comando:

OPENSSL dgst -md5 -sign MYKEY.PEM -out EAD.TXT -hex ARQENT.TXT

MYKEY.PEM -> Sua chave Privada
ARQENT.TXT -> Arquivo que deve ser assinado digitalmente (RFD apenas sem o EAD)
EAD.TXT -> Arquivo que será geradado pelo OPENSSL com a resposta da assinatura digital
[]s Daniel

Conheça o projeto Automação Comercial Brasil
http://acbr.sourceforge.net/
Mário Isa
Usuário Nível 4
Usuário Nível 4
Mensagens: 907
Registrado em: 07 Jul 2004 13:54
Localização: Ilha Solteira-sp

Mensagem por Mário Isa »

Eu tentei fazer assim:

Peguei a minha chave privada, que está gravada no swh.ini, no campo
RSA=1234567890123456eummontedenumerosquenemcabenalinhaseiqueestaehminhachaveprivada

copiei, a partir do 1 (logo depois do = até o fim) e colei no arquivo mykey.pem

e executei:

C:\ACBRMO~1>OPENSSL dgst -md5 -sign MYKEY.PEM -out EAD.TXT -hex arqent.txt
e deu:
unable to load key file

Estou precisando de sua ajuda para validar esses arquivos.
Obrigado.
Mário
dopi
Usuário Nível 2
Usuário Nível 2
Mensagens: 79
Registrado em: 23 Out 2004 12:29
Localização: Tatuí - SP
Contato:

Mensagem por dopi »

Por motivos de segurança a chave Privada é gravada de forma criptografada no arquivo SWH.INI

Abra o ACBrMonitor, aba RFD, e sub-aba Chave RSA...
Basta Copiar e Colar no Bloco de Notas (apague os pulos de linhas extra se for necessário)

A chave privada tem a seguinte aparência:

Código: Selecionar todos

-----BEGIN RSA PRIVATE KEY-----
FFFCWwIBAAKBgQCsdvpszxxenv89eFIxrxlWbiX2XHEy9f44D5qoh+g2HUHQyam7
JXryMWl/Ex1gpc0TqBRTAUR3gybXxRts2by/HM8a68v8FMJnkO6E5k0sl+mMr26e
gXs1+Q95z2VKsYWvOm6BSzHBBHQKUDilnwNds6Ucib2aOktg6KF9zp8lFwIDAQAB
AoGAcGOIhmfhgPf0NUa3qZEF3gEh1A4h5qfP5xCkJLeMZ9dhEIKajU67dCEnMpxu
RJFHt0uNExp8V7WsFmhomuK50G9AbIUFeYKTVXDcO2WIKxqX90pd1K5yKeIyeY/U
fXteeqtxYwxdjY0XzbmZ0infsFou1fiOgpsAkUydmF2QyQECQQDUpQED4gtLpepa
DsSFp0bqiVUt42uzcVWObgw+4dNM8HK+heaMdsIhzTy3RrqrcY2ptVv2QJrrvtIQ
W7xjo7v3AkEAz6DJn331PrZZFId9zrQ7Qf1NJGGG/ty59KOD8es64Fnt8tVDpqFX
ahARd564RDE+ri6ql9M/LADkOBD6DlpX4QJAcegZjRzu9AziZm92simTAVujdztV
m//f1rX4dU6+w34h2REdGK0c/MJV/c8ze1cOjZUUUPSOiC3llMGvPqicrQJAMrSc
qMO1EeSsapQQSFvBoQMARPKiqC81hqYsQfdlgIJJJpj8lYQPegqEiYcMjzLLkPQ6
mytu4QsysPKMbtbnYQJAIQds/Vx1hcXwNZji1kZ+GtoVfQWHEEyhudz1whfeshxB
ial7TdSLMJas8w0vI+z1CnyRHloUhrMEAzZYBd7KKK==
-----END RSA PRIVATE KEY-----
[]s Daniel

Conheça o projeto Automação Comercial Brasil
http://acbr.sourceforge.net/
dopi
Usuário Nível 2
Usuário Nível 2
Mensagens: 79
Registrado em: 23 Out 2004 12:29
Localização: Tatuí - SP
Contato:

Mensagem por dopi »

Mario,

Se vc deseja apenas re-assinar um arquivo já existente... Experimente o RFDFix

Ele corrige alguns bugs da primeira versão do ACBrRFD...
Para forçar a re-assinatura, informe o CNPJ do cliente
[]s Daniel

Conheça o projeto Automação Comercial Brasil
http://acbr.sourceforge.net/
Mário Isa
Usuário Nível 4
Usuário Nível 4
Mensagens: 907
Registrado em: 07 Jul 2004 13:54
Localização: Ilha Solteira-sp

Mensagem por Mário Isa »

Dopi eu peguei o Rfdfix daí rodei mas o registro do EAD ficou vazio.
na ultima linha constava apenas
EAD
e mais nada.
Ele pediu o CNPJ e o I.EST do cliente eu dei.
Ele pediu a RSAKEY
Eu fiz como vc falou. peguei a chave privada lá no acbr monitor aba rfd sub aba rsa key copiei e colei no bloco de notas, retirei as expressões -----BEGIN RSA PRIVATE KEY ----- e a END RSA PRIVATE KEY..... colei lá.... tirei todos os "enter" e ficou só uma linha com toda a chave. e gravei como mykey.key
Cliquei em ler Chave RSA e ele pediu para ler algum arquivo do tipo Arquivos KEY.
Aí selecionei o mykey.key.
Mandei processar... Ele arrumou alguns bugs mesmo como por exemplo no registro e16 o simbolo LX passou a figurar na coluna 75-76. mas o EAD ficou em branco.
Depois eu fiz o teste copiando a chave do jeito que estava sem tirar o BEGIN e o END mas mesmo assim o EAD fica em branco

Falta alguma coisa ?
Mário
dopi
Usuário Nível 2
Usuário Nível 2
Mensagens: 79
Registrado em: 23 Out 2004 12:29
Localização: Tatuí - SP
Contato:

Mensagem por dopi »

Acho que o problema é a chave... ela deve ter a mesma aparência do post acima... com as quebras de linhas e -- BEGIN... E -- END

Citei o fato de apagar linhas extras pq quando copia do ACBrMonitor no Bloco de Notas, ele pula 2 linhas...

Antes de rodar o RFDfix, tente rodar o OpenSSL no DOS e veja se ocorre algum erro na geração do EAD
[]s Daniel

Conheça o projeto Automação Comercial Brasil
http://acbr.sourceforge.net/
Mário Isa
Usuário Nível 4
Usuário Nível 4
Mensagens: 907
Registrado em: 07 Jul 2004 13:54
Localização: Ilha Solteira-sp

Mensagem por Mário Isa »

Agora deu certo.
É que o RFDfix só refaz a chave (que deu errado antes) se vc pegar os arquivos errados de novo e refazê-los.

Obrigado.
Mário
dopi
Usuário Nível 2
Usuário Nível 2
Mensagens: 79
Registrado em: 23 Out 2004 12:29
Localização: Tatuí - SP
Contato:

Mensagem por dopi »

Sim... O RFDFix só calcula o novo EAD se ele fez alguma alteração no arquivo...
[]s Daniel

Conheça o projeto Automação Comercial Brasil
http://acbr.sourceforge.net/
Mário Isa
Usuário Nível 4
Usuário Nível 4
Mensagens: 907
Registrado em: 07 Jul 2004 13:54
Localização: Ilha Solteira-sp

Mensagem por Mário Isa »

Dopi diz:
Se vc deseja apenas re-assinar um arquivo já existente... Experimente o RFDFix

Ele corrige alguns bugs da primeira versão do ACBrRFD...
Para forçar a re-assinatura, informe o CNPJ do cliente
Sendo assim eu não estou com a versão mais nova:
Qual a mais nova?
Eu estou com 0.8.2.

Mário
dopi
Usuário Nível 2
Usuário Nível 2
Mensagens: 79
Registrado em: 23 Out 2004 12:29
Localização: Tatuí - SP
Contato:

Mensagem por dopi »

Ainda não foi lançada no site oficial...

Baixe do meu servidor a 0.8.3 ACBrMonitor Windows e Linux
[]s Daniel

Conheça o projeto Automação Comercial Brasil
http://acbr.sourceforge.net/
Responder