Nota Fiscal Paulista - Registro tipo EAD
Moderador: Moderadores
-
ALEX170970
- Usuário Nível 1

- Mensagens: 29
- Registrado em: 06 Dez 2007 18:12
- Localização: Santos-SP
Assinatura de hash 1024 bits
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.
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.
-
dopi
- Usuário Nível 2

- Mensagens: 79
- Registrado em: 23 Out 2004 12:29
- Localização: Tatuí - SP
- Contato:
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
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
-
Mário Isa
- Usuário Nível 4

- Mensagens: 907
- Registrado em: 07 Jul 2004 13:54
- Localização: Ilha Solteira-sp
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
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

- Mensagens: 907
- Registrado em: 07 Jul 2004 13:54
- Localização: Ilha Solteira-sp
Dopi diz:
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
Tenho, na pasta do AcbrMonitor o arquivo: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
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

- Mensagens: 79
- Registrado em: 23 Out 2004 12:29
- Localização: Tatuí - SP
- Contato:
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
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
-
Mário Isa
- Usuário Nível 4

- Mensagens: 907
- Registrado em: 07 Jul 2004 13:54
- Localização: Ilha Solteira-sp
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
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

- Mensagens: 79
- Registrado em: 23 Out 2004 12:29
- Localização: Tatuí - SP
- Contato:
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:
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------
Mário Isa
- Usuário Nível 4

- Mensagens: 907
- Registrado em: 07 Jul 2004 13:54
- Localização: Ilha Solteira-sp
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
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

- Mensagens: 79
- Registrado em: 23 Out 2004 12:29
- Localização: Tatuí - SP
- Contato:
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
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
