node-mde
Version:
Biblioteca para consultar notas destinadas e enviar evento de manifestação do destinatário
24 lines (21 loc) • 861 B
JavaScript
let SignedXml = require("xml-crypto").SignedXml;
class InfoProvider {
constructor(e) {
this.getKeyInfo = function() {
return `<X509Data><X509Certificate>${e.split("-----")[2].replace(/[\r\n]/g, "")}</X509Certificate></X509Data>`;
};
}
}
class Assinatura {
static assinarXml(e, t, n) {
var r = "//*[local-name(.)='infEvento']", i = [ "http://www.w3.org/2000/09/xmldsig#enveloped-signature", "http://www.w3.org/TR/2001/REC-xml-c14n-20010315" ], a = new SignedXml();
return a.keyInfoProvider = new InfoProvider(e), a.addReference(r, i), a.canonicalizationAlgorithm = i[1],
a.signingKey = t, a.computeSignature(n, {
location: {
reference: r,
action: "after"
}
}), a.getSignedXml();
}
}
module.exports = Object.freeze(Assinatura);