Ir para conteúdo
  • Cadastre-se

dev botao

Assinatura de Arquivos PAF


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

Recommended Posts

Ola galera, bom dia!!!

estou tendo um pouquinho de problemas com a assinatura de dos arquivos.

Por exemplo, na geração do arquivo de tabela de produtos, do Menu fiscal,

executo o seguinte método

AcbrPAF.SaveFileTXT_P(acbrPAFRegistroP1, acbrPAFRegistroP2, "Mercadorias.txt");

O arquivo ele salva certinho, porém o método acima me retorna uma exception "Erro ao ler chave."

Tenho que alimentar alguma propriedade da classe?

OBS: quando executo o método AcbrECF.PafMF_LMFS_Espelho(dataDe, dataAte, tbArquivo.Text);

Também me retorna o mesmo erro, grava o arquivo certinho porém o erro de "Erro ao ler chave."

Estamos utilizando C#.

Desde ja agradeço a atenção de todos!!

att,

Luiz Paulo

Link para o comentário
Compartilhar em outros sites

Bom dia.

Você precisar criar um componente ACBrEAD e setar a chave nele e indicar para o ACBrPAF e ACBrECF.

abaixo segue um codigo de exemplo.

obs: não esqueça de trocar para sua chave RSA. voce pode criar usando o ACBrEAD.


ACBrEAD acbrEAD = new ACBrEAD();


acbrEAD.ChavePrivada = "-----BEGIN RSA PRIVATE KEY-----" +

                                  "MIICXwIBAAKBgQC+TZjfcw/a/SovoqQPOW5bbKn4CQw4DeZJA3Y9vJrYHKN4aCQv" +

                                  "z0i3AG9kGdsTSZdZ/clh4xv6tUwPsBdZJHrm21gH7wN/zKLTvXbs+i3x7U00ElCB" +

                                  "YyZ8BOXJWVMuye0UvSz7p4JwSopugzbjaImIGy+5LvgcjUCn3OZzWpwYWQIDAQAB" +

                                  "AoGBAKAycEtB8An37ghVkGfkf7rkmZxb+XZCdSXnjSThXTQpv46/lB7PDrZG3n5U" +

                                  "qa/t1kQCOQF3DnmZHqNiJ/V5mR7ApbciQj4WYVLkMCgltru3MmzIUQ9IiLtAgaCv" +

                                  "uHc0MAzt/OWgQ93uFnLf4ubp4+2PTHiiIChv2m78s605wX2lAkEA+3pPsPdXcaOe" +

                                  "7T7C4hn1qg93ksN96UutB1APF3YAjWVWuPwzZv4hExiMPc0uKvVK2H3tP4P5CkM5" +

                                  "YMIEGEkF2wJBAMG5qmoYksz+MFZ2cd7gt68mf3Oq9F59qkHHcoV+1ttXx5pfzwat" +

                                  "kelhKkN+LV1XsgS0bGAKu2NitOMBUAcnItsCQQCEJxqJ3PFO/rUd58VyHEJFRCuK" +

                                  "LMGWP/aFyUSlB5XyuDaCr8YzcYjgCB5qu9BvMshKTKLIpgnRotIcTtjoCjfRAkEA" +

                                  "tsqHn+Bb9A0McykDvPdwmlXLAMsYFWihk7urtYa/GOw0rNcmMvjnqrxB8rlF+MNc" +

                                  "d8/+SokV02s5ntCIQJeO7QJBAKp2BCOIck+uhMPDiw/1788yQLD6mVb/pBzClzBn" +

                                  "pTMAFPGJG2fO4YJn/pUHdtDtSenX8TibWve+gY6oFCFw/Ts="+                                       

                                  "-----END RSA PRIVATE KEY-----";


AcbrECF.EAD = acbrEAD;

AcbrPAF.EAD = acbrEAD;


AcbrPAF.SaveFileTXT_P(acbrPAFRegistroP1, acbrPAFRegistroP2, "Mercadorias.txt");

AcbrECF.PafMF_LMFS_Espelho(dataDe, dataAte, tbArquivo.Text);

Att.

Rafael Dias.

 

Link para o comentário
Compartilhar em outros sites

Rafael, boa tarde.

Inicializei o AcbrEAD, como vc falou, porém continua com o mesmo erro.

Criei as chaves pelo Openssl via comandos, ele gerou os arquivos certinhos.

O conteúdo do arquivo "priv_key.pem" coloquei na propriedade ChavePrivada, da classe AcbrEAD.

Esses dois arquivos que gerei devo colocar eles em algum lugar também ou há alguma outra

configuração que eu tenho que fazer.

Att

Luiz Paulo

Link para o comentário
Compartilhar em outros sites

Boa tarde

Eu estou olhando aki para ver qual o problema.

Mas para usar o ACBrPAF você pode setar a chaversa direto no componente


acbrPAF.ChaveRSA = "-----BEGIN RSA PRIVATE KEY-----" +

                               "MIICXwIBAAKBgQC+TZjfcw/a/SovoqQPOW5bbKn4CQw4DeZJA3Y9vJrYHKN4aCQv" +

                               "z0i3AG9kGdsTSZdZ/clh4xv6tUwPsBdZJHrm21gH7wN/zKLTvXbs+i3x7U00ElCB" +

                               "YyZ8BOXJWVMuye0UvSz7p4JwSopugzbjaImIGy+5LvgcjUCn3OZzWpwYWQIDAQAB" +

                               "AoGBAKAycEtB8An37ghVkGfkf7rkmZxb+XZCdSXnjSThXTQpv46/lB7PDrZG3n5U" +

                               "qa/t1kQCOQF3DnmZHqNiJ/V5mR7ApbciQj4WYVLkMCgltru3MmzIUQ9IiLtAgaCv" +

                               "uHc0MAzt/OWgQ93uFnLf4ubp4+2PTHiiIChv2m78s605wX2lAkEA+3pPsPdXcaOe" +

                               "7T7C4hn1qg93ksN96UutB1APF3YAjWVWuPwzZv4hExiMPc0uKvVK2H3tP4P5CkM5" +

                               "YMIEGEkF2wJBAMG5qmoYksz+MFZ2cd7gt68mf3Oq9F59qkHHcoV+1ttXx5pfzwat" +

                               "kelhKkN+LV1XsgS0bGAKu2NitOMBUAcnItsCQQCEJxqJ3PFO/rUd58VyHEJFRCuK" +

                               "LMGWP/aFyUSlB5XyuDaCr8YzcYjgCB5qu9BvMshKTKLIpgnRotIcTtjoCjfRAkEA" +

                               "tsqHn+Bb9A0McykDvPdwmlXLAMsYFWihk7urtYa/GOw0rNcmMvjnqrxB8rlF+MNc" +

                               "d8/+SokV02s5ntCIQJeO7QJBAKp2BCOIck+uhMPDiw/1788yQLD6mVb/pBzClzBn" +

                               "pTMAFPGJG2fO4YJn/pUHdtDtSenX8TibWve+gY6oFCFw/Ts=" +

                               "-----END RSA PRIVATE KEY-----";

Att.

Rafael Dias.

 

Link para o comentário
Compartilhar em outros sites

  • Moderadores

Olha, não sei como ficou no ACBrFramework mas se não colocar as quebras de linhas no componente normal não funciona.


acbrPAF.ChaveRSA = "-----BEGIN RSA PRIVATE KEY-----" + sLineBreak +
"MIICXwIBAAKBgQC+TZjfcw/a/SovoqQPOW5bbKn4CQw4DeZJA3Y9vJrYHKN4aCQv" + sLineBreak +
"z0i3AG9kGdsTSZdZ/clh4xv6tUwPsBdZJHrm21gH7wN/zKLTvXbs+i3x7U00ElCB" + sLineBreak +
"YyZ8BOXJWVMuye0UvSz7p4JwSopugzbjaImIGy+5LvgcjUCn3OZzWpwYWQIDAQAB" + sLineBreak +
"AoGBAKAycEtB8An37ghVkGfkf7rkmZxb+XZCdSXnjSThXTQpv46/lB7PDrZG3n5U" + sLineBreak +
"qa/t1kQCOQF3DnmZHqNiJ/V5mR7ApbciQj4WYVLkMCgltru3MmzIUQ9IiLtAgaCv" + sLineBreak +
"uHc0MAzt/OWgQ93uFnLf4ubp4+2PTHiiIChv2m78s605wX2lAkEA+3pPsPdXcaOe" + sLineBreak +
"7T7C4hn1qg93ksN96UutB1APF3YAjWVWuPwzZv4hExiMPc0uKvVK2H3tP4P5CkM5" + sLineBreak +
"YMIEGEkF2wJBAMG5qmoYksz+MFZ2cd7gt68mf3Oq9F59qkHHcoV+1ttXx5pfzwat" + sLineBreak +
"kelhKkN+LV1XsgS0bGAKu2NitOMBUAcnItsCQQCEJxqJ3PFO/rUd58VyHEJFRCuK" + sLineBreak +
"LMGWP/aFyUSlB5XyuDaCr8YzcYjgCB5qu9BvMshKTKLIpgnRotIcTtjoCjfRAkEA" + sLineBreak +
"tsqHn+Bb9A0McykDvPdwmlXLAMsYFWihk7urtYa/GOw0rNcmMvjnqrxB8rlF+MNc" + sLineBreak +
"d8/+SokV02s5ntCIQJeO7QJBAKp2BCOIck+uhMPDiw/1788yQLD6mVb/pBzClzBn" + sLineBreak +
"pTMAFPGJG2fO4YJn/pUHdtDtSenX8TibWve+gY6oFCFw/Ts=" + sLineBreak +
"-----END RSA PRIVATE KEY-----";
[/code]

Só para entendimento:

sLineBreak = quebra de linha no delphi.

Equipe ACBr

Régys Borges da Silveira

http://www.regys.com.br

certificacao delphicertificacao delphi
Link para o comentário
Compartilhar em outros sites

Obrigado regys.

Realmente era isso, so acho estranhos pois no ACBrPAF ja tinha executado da maneira como coloquei acima e tinha ficado correto.

Abaixo segue o codigo corrigido.


 acbrEAD.ChavePrivada = "-----BEGIN RSA PRIVATE KEY-----" + Environment.NewLine +

                                   "MIICXwIBAAKBgQC+TZjfcw/a/SovoqQPOW5bbKn4CQw4DeZJA3Y9vJrYHKN4aCQv" + Environment.NewLine +

                                   "z0i3AG9kGdsTSZdZ/clh4xv6tUwPsBdZJHrm21gH7wN/zKLTvXbs+i3x7U00ElCB" + Environment.NewLine +

                                   "YyZ8BOXJWVMuye0UvSz7p4JwSopugzbjaImIGy+5LvgcjUCn3OZzWpwYWQIDAQAB" + Environment.NewLine +

                                   "AoGBAKAycEtB8An37ghVkGfkf7rkmZxb+XZCdSXnjSThXTQpv46/lB7PDrZG3n5U" + Environment.NewLine +

                                   "qa/t1kQCOQF3DnmZHqNiJ/V5mR7ApbciQj4WYVLkMCgltru3MmzIUQ9IiLtAgaCv" + Environment.NewLine +

                                   "uHc0MAzt/OWgQ93uFnLf4ubp4+2PTHiiIChv2m78s605wX2lAkEA+3pPsPdXcaOe" + Environment.NewLine +

                                   "7T7C4hn1qg93ksN96UutB1APF3YAjWVWuPwzZv4hExiMPc0uKvVK2H3tP4P5CkM5" + Environment.NewLine +

                                   "YMIEGEkF2wJBAMG5qmoYksz+MFZ2cd7gt68mf3Oq9F59qkHHcoV+1ttXx5pfzwat" + Environment.NewLine +

                                   "kelhKkN+LV1XsgS0bGAKu2NitOMBUAcnItsCQQCEJxqJ3PFO/rUd58VyHEJFRCuK" + Environment.NewLine +

                                   "LMGWP/aFyUSlB5XyuDaCr8YzcYjgCB5qu9BvMshKTKLIpgnRotIcTtjoCjfRAkEA" + Environment.NewLine +

                                   "tsqHn+Bb9A0McykDvPdwmlXLAMsYFWihk7urtYa/GOw0rNcmMvjnqrxB8rlF+MNc" + Environment.NewLine +

                                   "d8/+SokV02s5ntCIQJeO7QJBAKp2BCOIck+uhMPDiw/1788yQLD6mVb/pBzClzBn" + Environment.NewLine +

                                   "pTMAFPGJG2fO4YJn/pUHdtDtSenX8TibWve+gY6oFCFw/Ts=" + Environment.NewLine +

                                   "-----END RSA PRIVATE KEY-----";

Att.

Rafael Dias.

 

Link para o comentário
Compartilhar em outros sites

Boa tarde novamente!!!

Rafael, ainda continua a mensagem :(

Dei uma olhada no projeto AcbrFrameWork,

acredito que tenha q "alimentar" a classe ACBrACC,

será que pode ser isso?

tem que ter um arquivo de configuração antes?

estava tentando utiizar ele e deu o seguinte erro:

"chave não informada ou evento ACBrAAC.OnGetChave não programado";

Pode ser isso, como programa esse evento?

Desde já agradeço,

Att,

Luiz Paulo

Link para o comentário
Compartilhar em outros sites

Vlw Rafael, era isso mesmo, só faltavam as ddls na pasta system32

assinou belezinha, hehehehe.

Rafael, com isso surgiram algumas dúvidas...

Acabamos a pouco de desenvolver o TEF, é nossa primeira aplicação do tipo,

e agora estamos partindo para o PAF-ECF. As dúvidas são as seguintes:

- No projeto ACBrFramework.Net.ECFTeste, tem uma guia "Arq. Aux. Cript.", devo ter essa tela em meu sistema também

para efetuar aquelas configurações?

Att,

Luiz Paulo

Link para o comentário
Compartilhar em outros sites

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

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora
×
×
  • Criar Novo...

Informação Importante

Colocamos cookies em seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies, caso contrário, assumiremos que você está bem para continuar.