UNPKG

oken-waas

Version:
31 lines 1.46 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 jsonwebtoken_1 = __importDefault(require("jsonwebtoken")); exports.default = (okenClientId, privateKey, options) => ({ signJWT: () => jsonwebtoken_1.default.sign({ 'oken-client-id': okenClientId }, privateKey, { algorithm: 'RS256', expiresIn: '21600s' }), signMsg: (payload) => { const payloadWithTimestamp = { ...payload, timestamp: new Date().toISOString() }; if (options?.signerType === 'SMART_ACCOUNT') { if (!options.from) { throw new Error('\'from\' address if required for SMART_ACCOUNT signer'); } payloadWithTimestamp.signerType = options.signerType; payloadWithTimestamp.from = options.from; } const msg = JSON.stringify(payloadWithTimestamp); const msgHash = crypto_1.default.createHash('sha256').update(msg).digest('base64'); const signer = crypto_1.default.createSign('sha256'); signer.update(msgHash); const signature = signer.sign(privateKey, 'base64'); const signedPayload = { ...payloadWithTimestamp, signature }; return signedPayload; } }); //# sourceMappingURL=okenSigner.js.map