UNPKG

bam-ticketing-sdk

Version:

SDK for B.A.M Ticketing API

39 lines 1.5 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.verify = exports.sign = exports.extractEnrollment = void 0; const jsrsasign_1 = require("jsrsasign"); const uuidRegex = /[0-9a-f]{8}-[0-9a-f]{4}-[0-5][0-9a-f]{3}-[089ab][0-9a-f]{3}-[0-9a-f]{12}/i; function extractEnrollment(certificate) { var _a; const cert = new jsrsasign_1.X509(); cert.readCertPEM(certificate); const subject = cert.getSubjectString(); return (_a = subject.match(uuidRegex)) === null || _a === void 0 ? void 0 : _a[0]; } exports.extractEnrollment = extractEnrollment; const algName = 'SHA256withECDSA'; /** * @param payload String which is signed * @param privateKey Contains the private key of an ECDSA pair * @returns hex encoded string of the signature */ function sign(payload, privateKey) { const signer = new jsrsasign_1.KJUR.crypto.Signature({ alg: algName }); signer.init(privateKey); return signer.signString(payload); } exports.sign = sign; /** * @param payload The payload whose signature is verified * @param signature The signature for the payload * @param publicKey Contains the public key of an ECDSA pair * @return true if the signature is valid */ function verify(payload, signature, publicKey) { const signer = new jsrsasign_1.KJUR.crypto.Signature({ alg: algName }); signer.init(publicKey); signer.updateString(payload); return signer.verify(signature); } exports.verify = verify; //# sourceMappingURL=certificate.js.map