UNPKG

palmpaywrappersdk

Version:

PalmPay Wrapper Sdk

50 lines (49 loc) 1.68 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.SignUtil = void 0; const jsrsasign_1 = require("jsrsasign"); const md5_1 = __importDefault(require("md5")); const PEM_BEGIN = '-----BEGIN PRIVATE KEY-----\n'; const PEM_END = '-----END PRIVATE KEY-----\n'; const HashMap = { SHA256withRSA: 'SHA256withRSA', SHA1withRSA: 'SHA1withRSA', }; class SignUtil { static rsaSign(content, privateKey, hash) { const _privateKey = this._formatKey(privateKey); const signature = new jsrsasign_1.KJUR.crypto.Signature({ alg: hash, }); signature.init(_privateKey); signature.updateString(content); const signData = signature.sign(); return (0, jsrsasign_1.hextob64)(signData); } static sign(params, privateKey) { let parseStr = Object.keys(params) .sort() .filter((item) => params[item]) .map((item) => `${item}=${params[item]}`) .join('&'); console.log('parseStr', parseStr); parseStr = (0, md5_1.default)(parseStr).toUpperCase(); console.log('MD5', parseStr); const str = this.rsaSign(parseStr, privateKey, HashMap.SHA1withRSA); console.log('sign', str); return str; } static _formatKey(key) { if (!key.startsWith(PEM_BEGIN)) { key = PEM_BEGIN + key; } if (!key.endsWith(PEM_END)) { key = key + PEM_END; } return key; } } exports.SignUtil = SignUtil;