UNPKG

@3846masa/http-signature

Version:

Create / Verify HTTP Signatures (https://tools.ietf.org/html/draft-cavage-http-signatures-10)

23 lines 2.11 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const crypto_1 = __importDefault(require("crypto")); const Headers_1 = require("./Headers"); const createSignatureString_1 = require("./createSignatureString"); function verifySignature({ signature, method, pathname, publicKey, headers: rawHeaders, }) { const headers = new Headers_1.Headers({ ...rawHeaders, '(request-target)': `${method.toLowerCase()} ${pathname}`, }); const properties = signature.headers.split(/\s+/g).map((p) => p.trim()); const verify = crypto_1.default.createVerify('RSA-SHA256'); verify.update(createSignatureString_1.createSignatureString({ headers, properties })); if (!verify.verify(publicKey, signature.signature, 'base64')) { return false; } return true; } exports.verifySignature = verifySignature; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyaWZ5U2lnbmF0dXJlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL3ZlcmlmeVNpZ25hdHVyZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLG9EQUE0QjtBQUU1Qix1Q0FBb0M7QUFDcEMsbUVBQWdFO0FBWWhFLFNBQWdCLGVBQWUsQ0FBQyxFQUM5QixTQUFTLEVBQ1QsTUFBTSxFQUNOLFFBQVEsRUFDUixTQUFTLEVBQ1QsT0FBTyxFQUFFLFVBQVUsR0FDSTtJQUN2QixNQUFNLE9BQU8sR0FBRyxJQUFJLGlCQUFPLENBQUM7UUFDMUIsR0FBRyxVQUFVO1FBQ2Isa0JBQWtCLEVBQUUsR0FBRyxNQUFNLENBQUMsV0FBVyxFQUFFLElBQUksUUFBUSxFQUFFO0tBQzFELENBQUMsQ0FBQztJQUVILE1BQU0sVUFBVSxHQUFHLFNBQVMsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7SUFFeEUsTUFBTSxNQUFNLEdBQUcsZ0JBQU0sQ0FBQyxZQUFZLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDakQsTUFBTSxDQUFDLE1BQU0sQ0FBQyw2Q0FBcUIsQ0FBQyxFQUFFLE9BQU8sRUFBRSxVQUFVLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFFOUQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsU0FBUyxFQUFFLFNBQVMsQ0FBQyxTQUFTLEVBQUUsUUFBUSxDQUFDLEVBQUU7UUFDNUQsT0FBTyxLQUFLLENBQUM7S0FDZDtJQUNELE9BQU8sSUFBSSxDQUFDO0FBQ2QsQ0FBQztBQXJCRCwwQ0FxQkMifQ==