Cupom Fiscal

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

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

Cupom Fiscal

Mensagem por pringles »

Pessoal, estou com um problema urgente! Tenho um sistema para a emissão de cupom fiscal e agora estão pedindo uma chave criptografada, no padrão MD5 (Message Digest 5). Queria saber se alguém tem alguma função pronta para fazer isso. É que agora a autenticação vai ser eletrônica, com uma chave criptografada para a autenticação. Alguém pode me ajudar?
Editado pela última vez por pringles em 03 Jul 2007 10:23, em um total de 1 vez.
Avatar do usuário
Maligno
Membro Master
Membro Master
Mensagens: 6398
Registrado em: 06 Jul 2004 01:40
Localização: Londrina/PR

Mensagem por Maligno »

Fiz uma função para cálculo do MD5. Pegue o ZIP no meu site. Leia o README e teste o DEMO.
[]'s
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.

---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
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 »

Maligno, obrigado pelos arquivos. Só uma coisa não entendi, pelo arquivo "DEMO.EXE", você gera uma chave no padrão hexadecimal como pedido. E depois eu tenho que criptografar no padrão 1024bits essa chave, deixando-a com 256 dígitos? É isso?
Avatar do usuário
Maligno
Membro Master
Membro Master
Mensagens: 6398
Registrado em: 06 Jul 2004 01:40
Localização: Londrina/PR

Mensagem por Maligno »

Não precisa fazer nada. O hash MD5 que pedem é exatamente esse que o programa apresenta, de 32 dígitos. Se tiver que mudar alguma coisa, talvez pra converter as letras em minúsculas.
O MD5 é um hash de 128 bits e não tem nada a ver com conversão para 256 ou 1024 bits.
[]'s
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.

---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
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 »

Então Maligno, pelo que eu entendi, depois de obter o resultado de 32 dígitos, deve-se criar uma chave privada de 1024bits, equivalente a um número hexadecimal de 256 dígitos. Abaixo explico:
Pelo arquivo de instruções que eu baixei (portaria_cat_52.odt), está escrito que eu tenho que fazer uma rotina igual a que você me passou, pra gerar os 32 dígitos.
Depois, criar uma chave privada de 1024 bits, equivalente a um número hexadecimal de 256 dígitos.
Em seguida, criptografar o código hexadecimal gerado (de 32 dígitos) pelo algoritmo RSA de chave pública. Como resultado dessa criptografia, deve-se obter um número hexadecimal com até 256 dígitos, que é a assinatura digital pedida.
Então imagino que seja isso, gerar os 32 dígitos e depois criptografá-los em 256 dígitos. O que você acha?
Avatar do usuário
Maligno
Membro Master
Membro Master
Mensagens: 6398
Registrado em: 06 Jul 2004 01:40
Localização: Londrina/PR

Mensagem por Maligno »

Ah, sim. Comecei a entender. Calcular o MD5 é só uma parte do trabalho. Bom, essa etapa é garantida. Testei a função diversas vezes. Funciona.
Agora, quanto ao resto, não sei dizer. Ainda não entendi exatamente como é o processo. Tem o link dessa portaria pra eu dar uma olhada?
[]'s
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.

---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
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 »

Maligno escreveu:Tem o link dessa portaria pra eu dar uma olhada?
Abaixo está o link:

http://info.fazenda.sp.gov.br/NXT/gatew ... ia:vtribut

Ali é só você abrir as portarias CAT e buscar pela CAT 52, do dia 06/06/07.
Obrigado desde já pela ajuda.
Avatar do usuário
Maligno
Membro Master
Membro Master
Mensagens: 6398
Registrado em: 06 Jul 2004 01:40
Localização: Londrina/PR

Mensagem por Maligno »

Vou dar uma olhada. Depois volto ao assunto. Mas acho que só de noite. :)
[]'s
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.

---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
Avatar do usuário
Maligno
Membro Master
Membro Master
Mensagens: 6398
Registrado em: 06 Jul 2004 01:40
Localização: Londrina/PR

Mensagem por Maligno »

Ah, sim. Agora entendi. Em parte é simples: você deve calcular o MD5 de todos os registros do arquivo, com exceção do EAD, que é o último. Essa é a parte fácil.
Agora a dificil: de posse desse número você terá de gerar uma assinatura digital a partir deste MD5 por meio do algoritmo RSA, que é MUITO complicado de fazer.

Se fosse pra usar um certificado digital para gerar essa assinatura, da forma como é feito com eNF, apesar do preço meio salgado, até seria fácil. Você compraria o certificado de uma AC (Agência Certificadora), como a Certisign, por exemplo. Seria mais fácil.

Mas pelo que entendi, eles querem que você crie por sua conta uma chave privada de 256 dígitos para utilizá-la na geração da assinatura do MD5. Um detalhe pra você entender melhor: poderia ser gerada a assinatura do conteúdo do arquivo todo, mas como seria mais demorado, sempre fazem isso pelo hash que, na verdade, representa o conteúdo do arquivo. É só pra simplificar. Esse hash poderia ser MD4, SHA1, etc. Mas optaram pelo MD5. Até aí, normal. E é fácil.

O difícil é que você terá de criar essa tal chave privada para gerar a assinatura do MD5, executando o algoritmo RSA. Se for isso, acho meio radical da parte deles, já que esse algoritmo não é tão simples de implementar. Ainda mais em Clipper.

Uma sugestão: pergunte a algum colega daí que já tenha feito isso ou então ligue no plantão fiscal da Receita e veja se é isso mesmo. Posso ter entendido errado. :)

Uma curiosidade: o fonte do algoritmo. Veja aqui.

Outra curiosidade: um utilitário para calcular uma assinatura pelo algoritmo RSA (não testei). Clique aqui.
[]'s
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.

---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
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 »

Maligno escreveu:Se for isso, acho meio radical da parte deles, já que esse algoritmo não é tão simples de implementar. Ainda mais em Clipper.
Relamente acho que é isso mesmo, mas vou confirmar e depois te informo. Por isso estou preocupado, pela dificuldade do problema. Eu penso que talvez fosse mais fácil gerar um arquivo assim pela própria impressora fiscal, já que ela tem memória própria. Vou verificar e depois postar o que estão pedindo, mas acredito que seja isso mesmo.
Obrigado.
Avatar do usuário
Maligno
Membro Master
Membro Master
Mensagens: 6398
Registrado em: 06 Jul 2004 01:40
Localização: Londrina/PR

Mensagem por Maligno »

Realmente, pela impressora poderia ser uma tarefa bem mais fácil, mas a certificação tem que partir do conjunto de dados gerados pelo programa, o que não poderia ser feito por ela.
Mas ao descobrir o que de fato eles quere, poste outra mensagem. Pra ser sincero, fiquei curioso com esse esquema de certificação. Apesar de achar que nunca vou precisar trabalhar com esse tipo de impressora.
[]'s
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.

---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
DinhoNetGomes
Usuário Nível 2
Usuário Nível 2
Mensagens: 99
Registrado em: 14 Nov 2005 09:36

Assinatura Digital

Mensagem por DinhoNetGomes »

Caros colegas,

Estou tendo que desenvolver o mesmo arquivo digital e caí na mesma questão do registro final EAD com assinatura digital.

Meu problema é que tenho aplicativos em DOS rodando em ecfs muito antigos com drivers antigos, sem possibilidade de chamada de dlls.

Recorri ao suporte da Mecaf/Diebold e recebi uma documentação na descreve como gerar cada registro e campo usando a Dll da mecaf, Dll da Afrac e usando o driver em DOS.

No registro do EAD consta apenas a geração do Hash.

Isso mesmo, pelo que entendi, quem for desenvolver o arquivo direto informa apenas o MD5, já que a assinatura digital é difícil mesmo e a portaria não explica muito.

Ainda precisa ser confirmado! Vou arriscar e ver o que vira.

Em tempo: o email da Mecaf: Suporte.Mecaf@diebold.com
E portaria 052/07 já foi complementada pela portaria 060/07

Agradeço ao Maligno que disponibilizou a função MD5, que já ajudou muito mesmo!.

E vamos nos falando, pq com certeza deve ter muito mais gente precisando saber como gerar o EAD corretamente.

Até mais!
Avatar do usuário
Maligno
Membro Master
Membro Master
Mensagens: 6398
Registrado em: 06 Jul 2004 01:40
Localização: Londrina/PR

Re: Assinatura Digital

Mensagem por Maligno »

DinhoNetGomes escreveu:Isso mesmo, pelo que entendi, quem for desenvolver o arquivo direto informa apenas o MD5, já que a assinatura digital é difícil mesmo e a portaria não explica muito.
Será? Se fosse isso mesmo, acho que eles não pediriam daquela forma. O MD5 deveria servir apenas como "ferramenta" para gerar a assinatura. Além do que, se fosse necessário apenas o MD5, o nível de segurança seria zero. Parece ser bem isso o que eles querem evitar.

Mas, tente passar assim mesmo. Dê uma de "joão-sem-braço". Se passar, ótimo. Caso contrário, dá-se um jeito. :)
[]'s
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.

---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
DinhoNetGomes
Usuário Nível 2
Usuário Nível 2
Mensagens: 99
Registrado em: 14 Nov 2005 09:36

Será?

Mensagem por DinhoNetGomes »

"Será?"

Caro amigo, essa pergunta tá na minha cabeça, mas como não tem ninguém pra explicar isso, então vou partir para isso mesmo.

mandei email para secretaria da fazendo pedindo a documentação que forneceram aos fabricantes de ecf, pois a Bematech gera o arquivo digital na redução Z com registro EDA de 256 bytes.

Se eles conseguiram há alguma documentação pra isso.

Até mais
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, pelo que eu vi na portaria, as impressoras Bematech (que meus clientes usam) laser já têm um aplicativo da própria Bematech pra fazer gerar o que eles precisam. A questão é que a maioria de meus cliente utilizam a MP-25FI, que é o modelo anterior à laser. Sendo assim, tenho realmente que fazer a criptografia.
Maligno, você tem algum "prg" pronto pra isso, ou conhece alguém que tenha? Nem que eu tenha que pagar pelo fonte, pelo menos tenho menor "dor de cabeça".
Responder