dkim-verifier
Version:
DKIM Signature Verifier in TypeScript
26 lines • 1.01 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.verifyBody = exports.verifyDkimSignature = void 0;
const crypto_1 = __importDefault(require("crypto"));
const verifyDkimSignature = (dkim, headers, publicKey) => {
const { a: algorithm, b: signature } = dkim;
const verifier = crypto_1.default.createVerify(algorithm.toUpperCase());
verifier.update(headers);
return verifier.verify(publicKey, signature, "base64");
};
exports.verifyDkimSignature = verifyDkimSignature;
const verifyBody = (body, dkim) => {
const { bh } = dkim;
const bodyHash = hashBody(body);
return bodyHash === bh;
};
exports.verifyBody = verifyBody;
const hashBody = (body) => {
const hash = crypto_1.default.createHash("sha256");
hash.update(body);
return hash.digest("base64");
};
//# sourceMappingURL=verification.js.map