UNPKG

@3846masa/http-signature

Version:

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

71 lines 4.39 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const SignatureObject_1 = require("./SignatureObject"); function parseSignature(signature) { const result = { headers: 'date', }; const state = { cursor: 0, mode: 'key', currentKey: '', currentValue: '', }; for (let idx = 0; idx < signature.length; idx++) { const char = signature[idx]; switch (state.mode) { case 'key': { if (char === '=') { Object.assign(state, { mode: 'prevalue', currentKey: state.currentKey.trim(), }); } else { Object.assign(state, { currentKey: state.currentKey + char, }); } continue; } case 'prevalue': { if (char === '"') { Object.assign(state, { mode: 'value', }); } continue; } case 'value': { if (char === '"') { result[state.currentKey] = state.currentValue.trim(); Object.assign(state, { mode: 'postvalue', currentKey: '', currentValue: '', }); } else { Object.assign(state, { currentValue: state.currentValue + char, }); } continue; } case 'postvalue': { if (char === ',') { Object.assign(state, { mode: 'key', }); } continue; } } } if (!SignatureObject_1.isValidSignatureObject(result)) { throw new Error('keyId and signature paramerters should be required.'); } return result; } exports.parseSignature = parseSignature; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyc2VTaWduYXR1cmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvcGFyc2VTaWduYXR1cmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSx1REFBdUY7QUFJdkYsU0FBZ0IsY0FBYyxDQUFDLFNBQWlCO0lBQzlDLE1BQU0sTUFBTSxHQUFHO1FBQ2IsT0FBTyxFQUFFLE1BQU07S0FDYyxDQUFDO0lBRWhDLE1BQU0sS0FBSyxHQUFHO1FBQ1osTUFBTSxFQUFFLENBQUM7UUFDVCxJQUFJLEVBQUUsS0FBa0I7UUFDeEIsVUFBVSxFQUFFLEVBQUU7UUFDZCxZQUFZLEVBQUUsRUFBRTtLQUNqQixDQUFDO0lBRUYsS0FBSyxJQUFJLEdBQUcsR0FBRyxDQUFDLEVBQUUsR0FBRyxHQUFHLFNBQVMsQ0FBQyxNQUFNLEVBQUUsR0FBRyxFQUFFLEVBQUU7UUFDL0MsTUFBTSxJQUFJLEdBQUcsU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBRTVCLFFBQVEsS0FBSyxDQUFDLElBQUksRUFBRTtZQUNsQixLQUFLLEtBQUssQ0FBQyxDQUFDO2dCQUNWLElBQUksSUFBSSxLQUFLLEdBQUcsRUFBRTtvQkFDaEIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUU7d0JBQ25CLElBQUksRUFBRSxVQUFVO3dCQUNoQixVQUFVLEVBQUUsS0FBSyxDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQUU7cUJBQ3BDLENBQUMsQ0FBQztpQkFDSjtxQkFBTTtvQkFDTCxNQUFNLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRTt3QkFDbkIsVUFBVSxFQUFFLEtBQUssQ0FBQyxVQUFVLEdBQUcsSUFBSTtxQkFDcEMsQ0FBQyxDQUFDO2lCQUNKO2dCQUNELFNBQVM7YUFDVjtZQUVELEtBQUssVUFBVSxDQUFDLENBQUM7Z0JBQ2YsSUFBSSxJQUFJLEtBQUssR0FBRyxFQUFFO29CQUNoQixNQUFNLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRTt3QkFDbkIsSUFBSSxFQUFFLE9BQU87cUJBQ2QsQ0FBQyxDQUFDO2lCQUNKO2dCQUNELFNBQVM7YUFDVjtZQUVELEtBQUssT0FBTyxDQUFDLENBQUM7Z0JBQ1osSUFBSSxJQUFJLEtBQUssR0FBRyxFQUFFO29CQUNoQixNQUFNLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxHQUFHLEtBQUssQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLENBQUM7b0JBQ3JELE1BQU0sQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFO3dCQUNuQixJQUFJLEVBQUUsV0FBVzt3QkFDakIsVUFBVSxFQUFFLEVBQUU7d0JBQ2QsWUFBWSxFQUFFLEVBQUU7cUJBQ2pCLENBQUMsQ0FBQztpQkFDSjtxQkFBTTtvQkFDTCxNQUFNLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRTt3QkFDbkIsWUFBWSxFQUFFLEtBQUssQ0FBQyxZQUFZLEdBQUcsSUFBSTtxQkFDeEMsQ0FBQyxDQUFDO2lCQUNKO2dCQUNELFNBQVM7YUFDVjtZQUVELEtBQUssV0FBVyxDQUFDLENBQUM7Z0JBQ2hCLElBQUksSUFBSSxLQUFLLEdBQUcsRUFBRTtvQkFDaEIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUU7d0JBQ25CLElBQUksRUFBRSxLQUFLO3FCQUNaLENBQUMsQ0FBQztpQkFDSjtnQkFDRCxTQUFTO2FBQ1Y7U0FDRjtLQUNGO0lBRUQsSUFBSSxDQUFDLHdDQUFzQixDQUFDLE1BQU0sQ0FBQyxFQUFFO1FBQ25DLE1BQU0sSUFBSSxLQUFLLENBQUMscURBQXFELENBQUMsQ0FBQztLQUN4RTtJQUVELE9BQU8sTUFBTSxDQUFDO0FBQ2hCLENBQUM7QUF2RUQsd0NBdUVDIn0=