UNPKG

nz-covid-pass-verifier

Version:

TypeScript implementation of [NZ COVID Pass - Technical Specification v1](https://nzcp.covid19.health.nz/).

48 lines 3.73 kB
"use strict"; var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; Object.defineProperty(exports, "__esModule", { value: true }); exports.resolvePublicKey = void 0; const did_resolver_1 = require("did-resolver"); const web_did_resolver_1 = require("web-did-resolver"); const webResolver = (0, web_did_resolver_1.getResolver)(); const didResolver = new did_resolver_1.Resolver(Object.assign({}, webResolver)); function fromJsonWebKey(key) { return { crv: key.crv, kty: key.kty, k: base64urlToHex(key.k), d: base64urlToHex(key.d), x: base64urlToHex(key.x), y: base64urlToHex(key.y), }; } function base64urlToHex(n) { if (n) { return Buffer.from(n, "base64url").toString("hex"); } return undefined; } function resolvePublicKey(reference) { var _a; return __awaiter(this, void 0, void 0, function* () { const did = yield didResolver.resolve(reference); if (!((_a = did.didDocument.assertionMethod) === null || _a === void 0 ? void 0 : _a.includes(reference))) { return undefined; } const verificationMethod = did.didDocument.verificationMethod.find((v) => v.id === reference); if (!verificationMethod || verificationMethod.type !== "JsonWebKey2020") { return undefined; } return fromJsonWebKey(verificationMethod.publicKeyJwk); }); } exports.resolvePublicKey = resolvePublicKey; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzb2x2ZVB1YmxpY0tleS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9yZXNvbHZlUHVibGljS2V5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztBQUNBLCtDQUF3QztBQUN4Qyx1REFBaUU7QUFFakUsTUFBTSxXQUFXLEdBQUcsSUFBQSw4QkFBYyxHQUFFLENBQUM7QUFDckMsTUFBTSxXQUFXLEdBQUcsSUFBSSx1QkFBUSxtQkFBTSxXQUFXLEVBQUcsQ0FBQztBQUVyRCxTQUFTLGNBQWMsQ0FBQyxHQUFlO0lBQ25DLE9BQU87UUFDSCxHQUFHLEVBQUUsR0FBRyxDQUFDLEdBQUc7UUFDWixHQUFHLEVBQUUsR0FBRyxDQUFDLEdBQUc7UUFDWixDQUFDLEVBQUUsY0FBYyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDeEIsQ0FBQyxFQUFFLGNBQWMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQ3hCLENBQUMsRUFBRSxjQUFjLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUN4QixDQUFDLEVBQUUsY0FBYyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7S0FDM0IsQ0FBQztBQUNOLENBQUM7QUFFRCxTQUFTLGNBQWMsQ0FBQyxDQUFTO0lBQzdCLElBQUksQ0FBQyxFQUFFO1FBQ0gsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxXQUFXLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7S0FDdEQ7SUFFRCxPQUFPLFNBQVMsQ0FBQztBQUNyQixDQUFDO0FBRUQsU0FBc0IsZ0JBQWdCLENBQ2xDLFNBQWlCOzs7UUFFakIsTUFBTSxHQUFHLEdBQUcsTUFBTSxXQUFXLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ2pELElBQUksQ0FBQyxDQUFBLE1BQUEsR0FBRyxDQUFDLFdBQVcsQ0FBQyxlQUFlLDBDQUFFLFFBQVEsQ0FBQyxTQUFTLENBQUMsQ0FBQSxFQUFFO1lBQ3ZELE9BQU8sU0FBUyxDQUFDO1NBQ3BCO1FBRUQsTUFBTSxrQkFBa0IsR0FBRyxHQUFHLENBQUMsV0FBVyxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FDOUQsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssU0FBUyxDQUM1QixDQUFDO1FBQ0YsSUFBSSxDQUFDLGtCQUFrQixJQUFJLGtCQUFrQixDQUFDLElBQUksS0FBSyxnQkFBZ0IsRUFBRTtZQUNyRSxPQUFPLFNBQVMsQ0FBQztTQUNwQjtRQUVELE9BQU8sY0FBYyxDQUFDLGtCQUFrQixDQUFDLFlBQVksQ0FBQyxDQUFDOztDQUMxRDtBQWhCRCw0Q0FnQkMifQ==