bam-ticketing-sdk
Version:
SDK for B.A.M Ticketing API
39 lines • 1.5 kB
JavaScript
;
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