bin/dkimverify
#!/usr/bin/env node
// DKIM test tool
const nopt = require('nopt');
const path = require('path');
const base_path = path.join(__dirname, '..');
const dkim = require(`${base_path}/dkim`);
const DKIMVerifyStream = dkim.DKIMVerifyStream;
const parsed = nopt({ 'debug': Boolean, 'time_skew': Number, 'help': Boolean });
function print_usage () {
console.log('Usage: dkimverify [--debug] [--time_skew=123] < message');
process.exit(1);
}
if (parsed.help) print_usage()
if (!parsed.debug) {
dkim.DKIMObject.prototype.debug = function (str) {}
DKIMVerifyStream.prototype.debug = function (str) {}
}
const opts = {}
if (parsed.time_skew) opts.allowed_time_skew = parsed.time_skew
const verifier = new DKIMVerifyStream(opts, (err, result, results) => {
if (err) console.log(err.message);
if (Array.isArray(results)) {
results.forEach(function (res) {
console.log(`identity="${res.identity}" domain="${res.domain}" result=${res.result} ${(res.error) ? `(${res.error})` : ''}`);
});
}
else {
console.log(`Result: ${result}`);
}
});
process.stdin.pipe(verifier);