UNPKG

cfdi40

Version:

Libreria para crear y sellar xml cfdi V4.0

49 lines (43 loc) 1.29 kB
const fs = require('fs') const openssl = require('openssl-nodejs') const spawn = require('child_process').spawn; const path = require('path'); class certOrKeyPem { async generateCertToPem(cert, outPath) { spawn('openssl',[ 'x509', '-inform', 'DER', '-in', cert, '-out', outPath ]) } generateKeyToPem(key, passphrase, outPath) { return new Promise((resolve, reject) => { const process = spawn('openssl', [ 'pkcs8', '-inform', 'DER', '-in', key, '-passin', `pass:${passphrase}`, '-outform', 'PEM', '-out', outPath ]); // Capturar errores process.stderr.on('data', (data) => { console.error(`Error: ${data.toString()}`); }); // Ver si el proceso termina con éxito o con error process.on('close', (code) => { if (code === 0) { console.log("Conversión a PEM completada."); resolve(); } else { reject(new Error(`OpenSSL falló con código de salida ${code}`)); } }); process.on('error', (err) => { reject(err); }); }); } } module.exports = certOrKeyPem