cfdi40
Version:
Libreria para crear y sellar xml cfdi V4.0
49 lines (43 loc) • 1.29 kB
JavaScript
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