lealhugui / node-dfe

Geração/integração de NF-e/NFC-e para node.js
MIT License
257 stars 99 forks source link

Contribuição #10

Closed jeffersoncbd closed 4 years ago

jeffersoncbd commented 4 years ago

Olá, gostaria de contribuir com a emissão de DF-e modelo 55, há algo que preciso saber?

lealhugui commented 4 years ago

Tudo bem Jefferson?

A principio, nada em particular. O unico requisito, é ter um certificado valido.

jeffersoncbd commented 4 years ago

Tudo certo, e contigo?

Cara, tentei fazer uma implementação rápida, mas travei na configuração dos arquivos .key e .pem, eu possuo um .pfx válido, achei que iria conseguir somente com ele. como faço para gerar este outros dois?

jeffersoncbd commented 4 years ago

Aparentemente consegui resolver o .pem usando o módulo "@chilkat/ck-node10-linux64". meu código ficou assim:

const chilkat = require("@chilkat/ck-node10-linux64");
const pfx = new chilkat.Pfx();

const certPath = path.resolve(__dirname, "..", "certificate.pfx");

const success = pfx.LoadPfxFile(certPath, "password");
if (!success) {
  console.log(pfx.LastErrorText);
  return;
}

const stringPem = pfx.ToPem();

let cert = {
  key: "",
  pem: stringPem,
  pfx: fs.readFileSync(certPath),
  password: "password"
};

Agora só falta o .key

créditos: https://www.example-code.com/nodejs/pfx_convert_to_pem.asp

lealhugui commented 4 years ago

@jeffersoncbd , a "explosão" do certificado PFX vem como dependência do uso da lib xml-cripto.

Pode consultar na documentação deles (procure por Converting .pfx certificates to pem).

jeffersoncbd commented 4 years ago

O .pem consegui resolver como escrevi no meu ultimo comentário. Faltava só o .key, mas olhando na documentação do xml-cripto, verifiquei que a propriedade sign.signingKey pode ser resolvida com o Buffer do arquivo .pem tornando o arquivo .key desnecessário. Estou fazendo um pull request.