@sphereon/ssi-sdk.public-key-hosting
Version:
66 lines • 3.79 kB
JavaScript
;
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.getAllJWKSEndpoint = getAllJWKSEndpoint;
exports.getDIDJWKSEndpoint = getDIDJWKSEndpoint;
const ssi_express_support_1 = require("@sphereon/ssi-express-support");
const ssi_sdk_agent_config_1 = require("@sphereon/ssi-sdk.agent-config");
const environment_1 = require("./environment");
const functions_1 = require("./functions");
const index_1 = require("./index");
function getAllJWKSEndpoint(router, context, opts) {
var _a;
if ((opts === null || opts === void 0 ? void 0 : opts.enabled) === false) {
index_1.logger.info(`Get all JWKS endpoint is disabled`);
return;
}
const path = (_a = opts === null || opts === void 0 ? void 0 : opts.path) !== null && _a !== void 0 ? _a : environment_1.JKWS_HOSTING_ALL_KEYS_PATH;
index_1.logger.info(`All JWKS endpoint enabled, path ${path}`);
router.get(path, (0, ssi_express_support_1.checkAuth)(opts === null || opts === void 0 ? void 0 : opts.endpoint), (request, response) => __awaiter(this, void 0, void 0, function* () {
try {
if (!(0, ssi_sdk_agent_config_1.contextHasPlugin)(context, 'keyManagerListKeys')) {
return (0, ssi_express_support_1.sendErrorResponse)(response, 500, 'Key manager plugin that can list keys is not found. Please enable the Sphereon Key Manager plugin if you want to use this endpoint');
}
response.statusCode = 202;
const keys = yield context.agent.keyManagerListKeys();
return response.send((0, functions_1.toJWKS)({ keys }));
}
catch (e) {
return (0, ssi_express_support_1.sendErrorResponse)(response, 500, e.message, e);
}
}));
}
function getDIDJWKSEndpoint(router, context, opts) {
var _a;
if ((opts === null || opts === void 0 ? void 0 : opts.enabled) === false) {
index_1.logger.info(`Get DID JWKS endpoint is disabled`);
return;
}
const path = (_a = opts === null || opts === void 0 ? void 0 : opts.path) !== null && _a !== void 0 ? _a : environment_1.JWKS_HOSTING_DID_KEYS_PATH;
console.info(`DID JWKS endpoint enabled, path ${path}`);
router.get(path, (0, ssi_express_support_1.checkAuth)(opts === null || opts === void 0 ? void 0 : opts.endpoint), (request, response) => __awaiter(this, void 0, void 0, function* () {
const did = request.params.did;
try {
console.log(`Will get JWKS for DID ${did}`);
const resolution = yield context.agent.identifierManagedGetByDid({ identifier: did });
if (!resolution.identifier) {
return (0, ssi_express_support_1.sendErrorResponse)(response, 404, `DID ${did} not found`);
}
response.statusCode = 200;
return response.send((0, functions_1.toJWKS)({ keys: resolution.keys }));
}
catch (e) {
console.log(e);
return (0, ssi_express_support_1.sendErrorResponse)(response, 404, `DID ${did} not found`);
}
}));
}
//# sourceMappingURL=api-functions.js.map