UNPKG

undersign

Version:

Create eIDAS compatible XAdES digital signatures with certificate OCSP responses and timestamps. Works with the Estonian Id-card and Mobile-Id to create BDOCs, but isn't limited to Estonia.

41 lines (33 loc) 1.18 kB
var Fs = require("fs") var Neodoc = require("neodoc") var Xades = require("../xades") var co = require("co") var outdent = require("../lib/outdent") var slurp = require("../lib/stream").slurp var USAGE_TEXT = ` Usage: hades validate (-h | --help) hades validate [options] [<signature-file>|-] Options: -h, --help Display this help and exit. `.trimLeft() exports = module.exports = co.wrap(function*(argv) { var args = Neodoc.run(USAGE_TEXT, {argv: argv}) if (args["--help"]) return void process.stdout.write(USAGE_TEXT) var sigPath if (args["-"]) sigPath = "-" else if ("<signature-file>" in args) sigPath = args["<signature-file>"] if (sigPath == null) return void process.stdout.write(USAGE_TEXT) var sigStream = sigPath == "-" ? process.stdin : Fs.createReadStream(sigPath) var xades = Xades.parse(yield slurp(sigStream)) var certificate = xades.certificate console.log(outdent` Public Key Algorithm: ${( certificate.publicKeyAlgorithmName || certificate.publicKeyAlgorithm ).toUpperCase()} `) if (certificate.hasSigned(xades.signable, xades.signature)) console.log("Signature: OK") else console.log("Signature: Invalid") })