UNPKG

@sphereon/ssi-sdk.wellknown-did-verifier

Version:

93 lines 4.95 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.WellKnownDidVerifier = void 0; const wellknown_dids_client_1 = require("@sphereon/wellknown-dids-client"); const index_1 = require("../index"); /** * {@inheritDoc IWellKnownDidVerifier} */ class WellKnownDidVerifier { constructor(args) { this.schema = index_1.schema.IWellKnownDidVerifier; this.methods = { registerSignatureVerification: this.registerSignatureVerification.bind(this), removeSignatureVerification: this.removeSignatureVerification.bind(this), verifyDomainLinkage: this.verifyDomainLinkage.bind(this), verifyDidConfigurationResource: this.verifyDidConfigurationResource.bind(this), }; this.signatureVerifications = (args && args.signatureVerifications) || {}; this.onlyVerifyServiceDids = (args && args.onlyVerifyServiceDids) || false; } /** {@inheritDoc IWellKnownDidVerifier.registerSignatureVerification} */ registerSignatureVerification(args, context) { return __awaiter(this, void 0, void 0, function* () { if (this.signatureVerifications[args.callbackName] !== undefined) { return Promise.reject(new Error(`Signature validation with key: ${args.callbackName} already present`)); } this.signatureVerifications[args.callbackName] = args.signatureVerification; }); } /** {@inheritDoc IWellKnownDidVerifier.removeSignatureVerification} */ removeSignatureVerification(args, context) { return __awaiter(this, void 0, void 0, function* () { return delete this.signatureVerifications[args.callbackName]; }); } /** {@inheritDoc IWellKnownDidVerifier.verifyDomainLinkage} */ verifyDomainLinkage(args, context) { return __awaiter(this, void 0, void 0, function* () { const signatureVerification = typeof args.signatureVerification === 'string' ? yield this.getSignatureVerification(args.signatureVerification) : args.signatureVerification; return context.agent.resolveDid({ didUrl: args.did }).then((didResolutionResult) => { if (!didResolutionResult.didDocument) { return Promise.reject(Error(`Unable to resolve did: ${args.did}`)); } return new wellknown_dids_client_1.WellKnownDidVerifier().verifyDomainLinkage({ didDocument: didResolutionResult.didDocument, verifySignatureCallback: signatureVerification, onlyVerifyServiceDid: args.onlyVerifyServiceDids || this.onlyVerifyServiceDids, }); }); }); } /** {@inheritDoc IWellKnownDidVerifier.verifyDidConfigurationResource} */ verifyDidConfigurationResource(args, context) { return __awaiter(this, void 0, void 0, function* () { if (args.configuration && args.origin) { return Promise.reject(Error('Cannot supply both a DID configuration resource and an origin.')); } if (!args.configuration && !args.origin) { return Promise.reject(Error('No DID configuration resource or origin supplied.')); } const signatureVerification = typeof args.signatureVerification === 'string' ? yield this.getSignatureVerification(args.signatureVerification) : args.signatureVerification; return new wellknown_dids_client_1.WellKnownDidVerifier().verifyResource({ verifySignatureCallback: signatureVerification, configuration: args.configuration, origin: args.origin, did: args.did, }); }); } getSignatureVerification(key) { return __awaiter(this, void 0, void 0, function* () { if (this.signatureVerifications[key] === undefined) { return Promise.reject(new Error(`Signature validation not found for key: ${key}`)); } return this.signatureVerifications[key]; }); } } exports.WellKnownDidVerifier = WellKnownDidVerifier; //# sourceMappingURL=WellKnownDidVerifier.js.map