UNPKG

@3846masa/http-signature

Version:

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

30 lines 2.42 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 createSignature({ method, pathname, properties, privateKey, algorithm, keyId, headers: rawHeaders, }) { const headers = new Headers_1.Headers({ ...rawHeaders, '(request-target)': `${method.toLowerCase()} ${pathname}`, }); const sign = crypto_1.default.createSign('RSA-SHA256'); sign.update(createSignatureString_1.createSignatureString({ headers, properties })); const result = { keyId, algorithm, headers: properties.join('\x20'), signature: sign.sign(privateKey).toString('base64'), }; return [ `keyId="${result.keyId}"`, `algorithm="${result.algorithm}"`, `headers="${result.headers}"`, `signature="${result.signature}"`, ].join(','); } exports.createSignature = createSignature; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlU2lnbmF0dXJlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2NyZWF0ZVNpZ25hdHVyZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLG9EQUE0QjtBQUU1Qix1Q0FBb0M7QUFFcEMsbUVBQWdFO0FBYWhFLFNBQWdCLGVBQWUsQ0FBQyxFQUM5QixNQUFNLEVBQ04sUUFBUSxFQUNSLFVBQVUsRUFDVixVQUFVLEVBQ1YsU0FBUyxFQUNULEtBQUssRUFDTCxPQUFPLEVBQUUsVUFBVSxHQUNJO0lBQ3ZCLE1BQU0sT0FBTyxHQUFHLElBQUksaUJBQU8sQ0FBQztRQUMxQixHQUFHLFVBQVU7UUFDYixrQkFBa0IsRUFBRSxHQUFHLE1BQU0sQ0FBQyxXQUFXLEVBQUUsSUFBSSxRQUFRLEVBQUU7S0FDMUQsQ0FBQyxDQUFDO0lBRUgsTUFBTSxJQUFJLEdBQUcsZ0JBQU0sQ0FBQyxVQUFVLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDN0MsSUFBSSxDQUFDLE1BQU0sQ0FBQyw2Q0FBcUIsQ0FBQyxFQUFFLE9BQU8sRUFBRSxVQUFVLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFFNUQsTUFBTSxNQUFNLEdBQW9CO1FBQzlCLEtBQUs7UUFDTCxTQUFTO1FBQ1QsT0FBTyxFQUFFLFVBQVUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDO1FBQ2hDLFNBQVMsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUM7S0FDcEQsQ0FBQztJQUVGLE9BQU87UUFDTCxVQUFVLE1BQU0sQ0FBQyxLQUFLLEdBQUc7UUFDekIsY0FBYyxNQUFNLENBQUMsU0FBUyxHQUFHO1FBQ2pDLFlBQVksTUFBTSxDQUFDLE9BQU8sR0FBRztRQUM3QixjQUFjLE1BQU0sQ0FBQyxTQUFTLEdBQUc7S0FDbEMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7QUFDZCxDQUFDO0FBOUJELDBDQThCQyJ9