@sphereon/ssi-sdk-ext.did-utils 0.22.1-unstable.5 → 0.23.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -3,11 +3,24 @@ import { DIDDocument, DIDDocumentSection, DIDResolutionResult, IAgentContext, ID
3
3
  import { _ExtendedIKey, _ExtendedVerificationMethod, _NormalizedVerificationMethod } from '@veramo/utils';
4
4
  import { DIDResolutionOptions, Resolvable } from 'did-resolver';
5
5
  import { CreateIdentifierOpts, CreateOrGetIdentifierOpts, GetOrCreateResult, IdentifierProviderOpts, IDIDOptions, IIdentifierOpts } from './types';
6
- export declare const getAuthenticationKey: (identifier: IIdentifier, context: IAgentContext<IResolver & IDIDManager>, offlineWhenNoDIDRegistered?: boolean, noVerificationMethodFallback?: boolean) => Promise<_ExtendedIKey>;
6
+ export declare const getAuthenticationKey: ({ identifier, offlineWhenNoDIDRegistered, noVerificationMethodFallback, keyType, controllerKey, }: {
7
+ identifier: IIdentifier;
8
+ keyType?: TKeyType;
9
+ offlineWhenNoDIDRegistered?: boolean;
10
+ noVerificationMethodFallback?: boolean;
11
+ controllerKey?: boolean;
12
+ }, context: IAgentContext<IResolver & IDIDManager>) => Promise<_ExtendedIKey>;
7
13
  export declare const getOrCreatePrimaryIdentifier: (context: IAgentContext<IDIDManager>, opts?: CreateOrGetIdentifierOpts) => Promise<GetOrCreateResult<IIdentifier>>;
8
14
  export declare const getPrimaryIdentifier: (context: IAgentContext<IDIDManager>, opts?: IdentifierProviderOpts) => Promise<IIdentifier | undefined>;
9
15
  export declare const createIdentifier: (context: IAgentContext<IDIDManager>, opts?: CreateIdentifierOpts) => Promise<IIdentifier>;
10
- export declare const getFirstKeyWithRelation: (identifier: IIdentifier, context: IAgentContext<IResolver & IDIDManager>, vmRelationship?: DIDDocumentSection, errorOnNotFound?: boolean, didDocument?: DIDDocument) => Promise<_ExtendedIKey | undefined>;
16
+ export declare const getFirstKeyWithRelation: ({ identifier, vmRelationship, keyType, errorOnNotFound, didDocument, controllerKey, }: {
17
+ identifier: IIdentifier;
18
+ controllerKey?: boolean;
19
+ vmRelationship?: DIDDocumentSection;
20
+ keyType?: TKeyType;
21
+ errorOnNotFound?: boolean;
22
+ didDocument?: DIDDocument;
23
+ }, context: IAgentContext<IResolver & IDIDManager>) => Promise<_ExtendedIKey | undefined>;
11
24
  export declare const getEthereumAddressFromKey: ({ key }: {
12
25
  key: IKey;
13
26
  }) => any;
@@ -106,7 +119,7 @@ export declare class AgentDIDResolver implements Resolvable {
106
119
  *
107
120
  * We try to do our best, to map keys onto relevant verification methods and relationships, but we simply lack the context
108
121
  * of the actual DID method here. Do not relly on this method for DID resolution. It is only handy for offline use cases
109
- * when no DID Document is cached.
122
+ * when no DID Document is cached. For DID:WEB it does provide an accurate representation!
110
123
  *
111
124
  * @param identifier
112
125
  * @param opts
@@ -1 +1 @@
1
- {"version":3,"file":"did-functions.d.ts","sourceRoot":"","sources":["../src/did-functions.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"did-functions.d.ts","sourceRoot":"","sources":["../src/did-functions.ts"],"names":[],"mappings":"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"}
@@ -57,12 +57,26 @@ const utils_1 = require("@veramo/utils");
57
57
  const elliptic_1 = __importDefault(require("elliptic"));
58
58
  const u8a = __importStar(require("uint8arrays"));
59
59
  const types_1 = require("./types");
60
- const getAuthenticationKey = (identifier, context, offlineWhenNoDIDRegistered, noVerificationMethodFallback) => __awaiter(void 0, void 0, void 0, function* () {
61
- var _a, _b;
60
+ const getAuthenticationKey = (_a, context_1) => __awaiter(void 0, [_a, context_1], void 0, function* ({ identifier, offlineWhenNoDIDRegistered, noVerificationMethodFallback, keyType, controllerKey, }, context) {
61
+ var _b, _c;
62
62
  let key = undefined;
63
63
  try {
64
64
  key =
65
- (_a = (yield (0, exports.getFirstKeyWithRelation)(identifier, context, 'authentication', false))) !== null && _a !== void 0 ? _a : (noVerificationMethodFallback ? undefined : yield (0, exports.getFirstKeyWithRelation)(identifier, context, 'verificationMethod', false));
65
+ (_b = (yield (0, exports.getFirstKeyWithRelation)({
66
+ identifier,
67
+ vmRelationship: 'authentication',
68
+ errorOnNotFound: false,
69
+ keyType,
70
+ controllerKey,
71
+ }, context))) !== null && _b !== void 0 ? _b : (noVerificationMethodFallback
72
+ ? undefined
73
+ : yield (0, exports.getFirstKeyWithRelation)({
74
+ identifier,
75
+ vmRelationship: 'verificationMethod',
76
+ errorOnNotFound: false,
77
+ keyType,
78
+ controllerKey,
79
+ }, context));
66
80
  }
67
81
  catch (e) {
68
82
  if (e instanceof Error) {
@@ -77,10 +91,27 @@ const getAuthenticationKey = (identifier, context, offlineWhenNoDIDRegistered, n
77
91
  if (!key && offlineWhenNoDIDRegistered) {
78
92
  const offlineDID = toDidDocument(identifier);
79
93
  key =
80
- (_b = (yield (0, exports.getFirstKeyWithRelation)(identifier, context, 'authentication', false, offlineDID))) !== null && _b !== void 0 ? _b : (noVerificationMethodFallback ? undefined : yield (0, exports.getFirstKeyWithRelation)(identifier, context, 'verificationMethod', false, offlineDID));
94
+ (_c = (yield (0, exports.getFirstKeyWithRelation)({
95
+ identifier,
96
+ vmRelationship: 'authentication',
97
+ errorOnNotFound: false,
98
+ didDocument: offlineDID,
99
+ keyType,
100
+ controllerKey,
101
+ }, context))) !== null && _c !== void 0 ? _c : (noVerificationMethodFallback
102
+ ? undefined
103
+ : yield (0, exports.getFirstKeyWithRelation)({
104
+ identifier,
105
+ vmRelationship: 'verificationMethod',
106
+ errorOnNotFound: false,
107
+ didDocument: offlineDID,
108
+ keyType,
109
+ controllerKey,
110
+ }, context));
81
111
  if (!key) {
82
112
  key = identifier.keys
83
113
  .map((key) => key)
114
+ .filter((key) => keyType === undefined || key.type === keyType || (controllerKey && key.kid === identifier.controllerKeyId))
84
115
  .find((key) => { var _a, _b; return ((_a = key.meta.verificationMethod) === null || _a === void 0 ? void 0 : _a.type.includes('authentication')) || ((_b = key.meta.purposes) === null || _b === void 0 ? void 0 : _b.includes('authentication')); });
85
116
  }
86
117
  }
@@ -91,8 +122,8 @@ const getAuthenticationKey = (identifier, context, offlineWhenNoDIDRegistered, n
91
122
  });
92
123
  exports.getAuthenticationKey = getAuthenticationKey;
93
124
  const getOrCreatePrimaryIdentifier = (context, opts) => __awaiter(void 0, void 0, void 0, function* () {
94
- var _c, _d;
95
- const primaryIdentifier = yield (0, exports.getPrimaryIdentifier)(context, (_c = opts === null || opts === void 0 ? void 0 : opts.createOpts) === null || _c === void 0 ? void 0 : _c.options);
125
+ var _d, _e;
126
+ const primaryIdentifier = yield (0, exports.getPrimaryIdentifier)(context, Object.assign(Object.assign({}, (_d = opts === null || opts === void 0 ? void 0 : opts.createOpts) === null || _d === void 0 ? void 0 : _d.options), ((opts === null || opts === void 0 ? void 0 : opts.method) && { method: opts.method })));
96
127
  if (primaryIdentifier !== undefined) {
97
128
  return {
98
129
  created: false,
@@ -100,7 +131,7 @@ const getOrCreatePrimaryIdentifier = (context, opts) => __awaiter(void 0, void 0
100
131
  };
101
132
  }
102
133
  if ((opts === null || opts === void 0 ? void 0 : opts.method) === types_1.SupportedDidMethodEnum.DID_KEY) {
103
- const createOpts = (_d = opts === null || opts === void 0 ? void 0 : opts.createOpts) !== null && _d !== void 0 ? _d : {};
134
+ const createOpts = (_e = opts === null || opts === void 0 ? void 0 : opts.createOpts) !== null && _e !== void 0 ? _e : {};
104
135
  createOpts.options = Object.assign({ codecName: 'EBSI', type: 'Secp256r1' }, createOpts);
105
136
  opts.createOpts = createOpts;
106
137
  }
@@ -112,24 +143,27 @@ const getOrCreatePrimaryIdentifier = (context, opts) => __awaiter(void 0, void 0
112
143
  });
113
144
  exports.getOrCreatePrimaryIdentifier = getOrCreatePrimaryIdentifier;
114
145
  const getPrimaryIdentifier = (context, opts) => __awaiter(void 0, void 0, void 0, function* () {
115
- const identifiers = (yield context.agent.didManagerFind((opts === null || opts === void 0 ? void 0 : opts.method) ? { provider: `${types_1.DID_PREFIX}:${opts === null || opts === void 0 ? void 0 : opts.method}` } : {})).filter((identifier) => (opts === null || opts === void 0 ? void 0 : opts.type) === undefined || identifier.keys.some((key) => key.type === (opts === null || opts === void 0 ? void 0 : opts.type)));
116
- return (identifiers && identifiers.length > 0) ? identifiers[0] : undefined;
146
+ const identifiers = (yield context.agent.didManagerFind((opts === null || opts === void 0 ? void 0 : opts.method) ? { provider: `${types_1.DID_PREFIX}${opts === null || opts === void 0 ? void 0 : opts.method}` } : {})).filter((identifier) => (opts === null || opts === void 0 ? void 0 : opts.type) === undefined || identifier.keys.some((key) => key.type === (opts === null || opts === void 0 ? void 0 : opts.type)));
147
+ return identifiers && identifiers.length > 0 ? identifiers[0] : undefined;
117
148
  });
118
149
  exports.getPrimaryIdentifier = getPrimaryIdentifier;
119
150
  const createIdentifier = (context, opts) => __awaiter(void 0, void 0, void 0, function* () {
120
- var _e, _f, _g, _h, _j, _k, _l;
121
- const identifier = yield context.agent.didManagerCreate(Object.assign(Object.assign({ kms: (_f = (_e = opts === null || opts === void 0 ? void 0 : opts.createOpts) === null || _e === void 0 ? void 0 : _e.kms) !== null && _f !== void 0 ? _f : types_1.KeyManagementSystemEnum.LOCAL }, ((opts === null || opts === void 0 ? void 0 : opts.method) && { provider: `${types_1.DID_PREFIX}:${opts === null || opts === void 0 ? void 0 : opts.method}` })), { alias: (_h = (_g = opts === null || opts === void 0 ? void 0 : opts.createOpts) === null || _g === void 0 ? void 0 : _g.alias) !== null && _h !== void 0 ? _h : `${types_1.IdentifierAliasEnum.PRIMARY}-${opts === null || opts === void 0 ? void 0 : opts.method}-${(_k = (_j = opts === null || opts === void 0 ? void 0 : opts.createOpts) === null || _j === void 0 ? void 0 : _j.options) === null || _k === void 0 ? void 0 : _k.type}-${new Date().toUTCString()}`, options: (_l = opts === null || opts === void 0 ? void 0 : opts.createOpts) === null || _l === void 0 ? void 0 : _l.options }));
151
+ var _f, _g, _h, _j, _k, _l, _m;
152
+ const identifier = yield context.agent.didManagerCreate(Object.assign(Object.assign({ kms: (_g = (_f = opts === null || opts === void 0 ? void 0 : opts.createOpts) === null || _f === void 0 ? void 0 : _f.kms) !== null && _g !== void 0 ? _g : types_1.KeyManagementSystemEnum.LOCAL }, ((opts === null || opts === void 0 ? void 0 : opts.method) && { provider: `${types_1.DID_PREFIX}${opts === null || opts === void 0 ? void 0 : opts.method}` })), { alias: (_j = (_h = opts === null || opts === void 0 ? void 0 : opts.createOpts) === null || _h === void 0 ? void 0 : _h.alias) !== null && _j !== void 0 ? _j : `${types_1.IdentifierAliasEnum.PRIMARY}-${opts === null || opts === void 0 ? void 0 : opts.method}-${(_l = (_k = opts === null || opts === void 0 ? void 0 : opts.createOpts) === null || _k === void 0 ? void 0 : _k.options) === null || _l === void 0 ? void 0 : _l.type}-${new Date().toUTCString()}`, options: (_m = opts === null || opts === void 0 ? void 0 : opts.createOpts) === null || _m === void 0 ? void 0 : _m.options }));
122
153
  return identifier;
123
154
  });
124
155
  exports.createIdentifier = createIdentifier;
125
- const getFirstKeyWithRelation = (identifier, context, vmRelationship, errorOnNotFound, didDocument) => __awaiter(void 0, void 0, void 0, function* () {
156
+ const getFirstKeyWithRelation = (_o, context_2) => __awaiter(void 0, [_o, context_2], void 0, function* ({ identifier, vmRelationship = 'verificationMethod', keyType, errorOnNotFound = false, didDocument, controllerKey, }, context) {
126
157
  const section = vmRelationship !== null && vmRelationship !== void 0 ? vmRelationship : 'verificationMethod'; // search all VMs in case no relationship is provided
127
158
  const matchedKeys = yield mapIdentifierKeysToDocWithJwkSupport(identifier, section, context, didDocument);
128
159
  if (Array.isArray(matchedKeys) && matchedKeys.length > 0) {
129
- return matchedKeys[0];
160
+ const result = matchedKeys.find((key) => keyType === undefined || key.type === keyType || (controllerKey && key.kid === identifier.controllerKeyId));
161
+ if (result) {
162
+ return result;
163
+ }
130
164
  }
131
- if (errorOnNotFound === true) {
132
- throw new Error(`Could not find key with relationship ${section} in DID document for ${identifier.did}`);
165
+ if (errorOnNotFound) {
166
+ throw new Error(`Could not find key with relationship ${section} in DID document for ${identifier.did}${keyType ? ' and key type: ' + keyType : ''}`);
133
167
  }
134
168
  return undefined;
135
169
  });
@@ -336,8 +370,8 @@ function mapIdentifierKeysToDocWithJwkSupport(identifier_1) {
336
370
  const extendedKeys = documentKeys
337
371
  .map((verificationMethod) => {
338
372
  /*if (verificationMethod.type !== 'JsonWebKey2020') {
339
- return null
340
- }*/
373
+ return null
374
+ }*/
341
375
  const localKey = localKeys.find((localKey) => {
342
376
  var _a;
343
377
  return localKey.publicKeyHex === verificationMethod.publicKeyHex ||
@@ -565,17 +599,18 @@ exports.AgentDIDResolver = AgentDIDResolver;
565
599
  *
566
600
  * We try to do our best, to map keys onto relevant verification methods and relationships, but we simply lack the context
567
601
  * of the actual DID method here. Do not relly on this method for DID resolution. It is only handy for offline use cases
568
- * when no DID Document is cached.
602
+ * when no DID Document is cached. For DID:WEB it does provide an accurate representation!
569
603
  *
570
604
  * @param identifier
571
605
  * @param opts
572
606
  */
573
607
  function toDidDocument(identifier, opts) {
574
- var _a, _b, _c;
608
+ var _a, _b, _c, _d, _e, _f;
575
609
  let didDocument = undefined;
610
+ // TODO: Introduce jwk thumbprints here
576
611
  if (identifier) {
577
612
  const did = (_a = identifier.did) !== null && _a !== void 0 ? _a : opts === null || opts === void 0 ? void 0 : opts.did;
578
- didDocument = Object.assign(Object.assign(Object.assign({ '@context': 'https://www.w3.org/ns/did/v1', id: did, verificationMethod: identifier.keys.map((key) => {
613
+ didDocument = Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({ '@context': 'https://www.w3.org/ns/did/v1', id: did, verificationMethod: identifier.keys.map((key) => {
579
614
  const vm = {
580
615
  controller: did,
581
616
  id: key.kid.startsWith(did) && key.kid.includes('#') ? key.kid : `${did}#${key.kid}`,
@@ -586,42 +621,50 @@ function toDidDocument(identifier, opts) {
586
621
  type: 'JsonWebKey2020',
587
622
  };
588
623
  return vm;
589
- }) }, ((!(opts === null || opts === void 0 ? void 0 : opts.use) || ((_b = opts === null || opts === void 0 ? void 0 : opts.use) === null || _b === void 0 ? void 0 : _b.includes(ssi_sdk_ext_key_utils_1.JwkKeyUse.Signature))) &&
624
+ }) }, (((opts === null || opts === void 0 ? void 0 : opts.use) === undefined || ((_b = opts === null || opts === void 0 ? void 0 : opts.use) === null || _b === void 0 ? void 0 : _b.includes(ssi_sdk_ext_key_utils_1.JwkKeyUse.Signature))) &&
590
625
  identifier.keys && {
591
626
  assertionMethod: identifier.keys
592
- .filter((key) => { var _a, _b; return ((_a = key === null || key === void 0 ? void 0 : key.meta) === null || _a === void 0 ? void 0 : _a.purpose) || ((_b = key === null || key === void 0 ? void 0 : key.meta) === null || _b === void 0 ? void 0 : _b.purpose) === 'assertionMethod'; })
627
+ .filter((key) => { var _a, _b, _c, _d; return ((_a = key === null || key === void 0 ? void 0 : key.meta) === null || _a === void 0 ? void 0 : _a.purpose) === undefined || ((_b = key === null || key === void 0 ? void 0 : key.meta) === null || _b === void 0 ? void 0 : _b.purpose) === 'assertionMethod' || ((_d = (_c = key === null || key === void 0 ? void 0 : key.meta) === null || _c === void 0 ? void 0 : _c.purposes) === null || _d === void 0 ? void 0 : _d.includes('assertionMethod')); })
593
628
  .map((key) => {
629
+ if (key.kid.startsWith(did) && key.kid.includes('#')) {
630
+ return key.kid;
631
+ }
594
632
  return `${did}#${key.kid}`;
595
633
  }),
634
+ })), (((opts === null || opts === void 0 ? void 0 : opts.use) === undefined || ((_c = opts === null || opts === void 0 ? void 0 : opts.use) === null || _c === void 0 ? void 0 : _c.includes(ssi_sdk_ext_key_utils_1.JwkKeyUse.Signature))) &&
635
+ identifier.keys && {
596
636
  authentication: identifier.keys
597
- .filter((key) => { var _a, _b; return ((_a = key === null || key === void 0 ? void 0 : key.meta) === null || _a === void 0 ? void 0 : _a.purpose) || ((_b = key === null || key === void 0 ? void 0 : key.meta) === null || _b === void 0 ? void 0 : _b.purpose) === 'authentication'; })
637
+ .filter((key) => { var _a, _b, _c, _d; return ((_a = key === null || key === void 0 ? void 0 : key.meta) === null || _a === void 0 ? void 0 : _a.purpose) === undefined || ((_b = key === null || key === void 0 ? void 0 : key.meta) === null || _b === void 0 ? void 0 : _b.purpose) === 'authentication' || ((_d = (_c = key === null || key === void 0 ? void 0 : key.meta) === null || _c === void 0 ? void 0 : _c.purposes) === null || _d === void 0 ? void 0 : _d.includes('authentication')); })
598
638
  .map((key) => {
639
+ if (key.kid.startsWith(did) && key.kid.includes('#')) {
640
+ return key.kid;
641
+ }
599
642
  return `${did}#${key.kid}`;
600
643
  }),
601
- })), ((!(opts === null || opts === void 0 ? void 0 : opts.use) || ((_c = opts === null || opts === void 0 ? void 0 : opts.use) === null || _c === void 0 ? void 0 : _c.includes(ssi_sdk_ext_key_utils_1.JwkKeyUse.Encryption))) &&
644
+ })), (((opts === null || opts === void 0 ? void 0 : opts.use) === undefined || ((_d = opts === null || opts === void 0 ? void 0 : opts.use) === null || _d === void 0 ? void 0 : _d.includes(ssi_sdk_ext_key_utils_1.JwkKeyUse.Encryption))) &&
602
645
  identifier.keys && {
603
646
  keyAgreement: identifier.keys
604
- .filter((key) => { var _a; return key.type === 'X25519' || ((_a = key === null || key === void 0 ? void 0 : key.meta) === null || _a === void 0 ? void 0 : _a.purpose) === 'keyAgreement'; })
647
+ .filter((key) => { var _a, _b, _c; return key.type === 'X25519' || ((_a = key === null || key === void 0 ? void 0 : key.meta) === null || _a === void 0 ? void 0 : _a.purpose) === 'keyAgreement' || ((_c = (_b = key === null || key === void 0 ? void 0 : key.meta) === null || _b === void 0 ? void 0 : _b.purposes) === null || _c === void 0 ? void 0 : _c.includes('keyAgreement')); })
605
648
  .map((key) => {
606
649
  if (key.kid.startsWith(did) && key.kid.includes('#')) {
607
650
  return key.kid;
608
651
  }
609
652
  return `${did}#${key.kid}`;
610
653
  }),
611
- } &&
654
+ })), (((opts === null || opts === void 0 ? void 0 : opts.use) === undefined || ((_e = opts === null || opts === void 0 ? void 0 : opts.use) === null || _e === void 0 ? void 0 : _e.includes(ssi_sdk_ext_key_utils_1.JwkKeyUse.Encryption))) &&
612
655
  identifier.keys && {
613
656
  capabilityInvocation: identifier.keys
614
- .filter((key) => { var _a; return key.type === 'X25519' || ((_a = key === null || key === void 0 ? void 0 : key.meta) === null || _a === void 0 ? void 0 : _a.purpose) === 'capabilityInvocation'; })
657
+ .filter((key) => { var _a, _b, _c; return key.type === 'X25519' || ((_a = key === null || key === void 0 ? void 0 : key.meta) === null || _a === void 0 ? void 0 : _a.purpose) === 'capabilityInvocation' || ((_c = (_b = key === null || key === void 0 ? void 0 : key.meta) === null || _b === void 0 ? void 0 : _b.purposes) === null || _c === void 0 ? void 0 : _c.includes('capabilityInvocation')); })
615
658
  .map((key) => {
616
659
  if (key.kid.startsWith(did) && key.kid.includes('#')) {
617
660
  return key.kid;
618
661
  }
619
662
  return `${did}#${key.kid}`;
620
663
  }),
621
- } &&
664
+ })), (((opts === null || opts === void 0 ? void 0 : opts.use) === undefined || ((_f = opts === null || opts === void 0 ? void 0 : opts.use) === null || _f === void 0 ? void 0 : _f.includes(ssi_sdk_ext_key_utils_1.JwkKeyUse.Encryption))) &&
622
665
  identifier.keys && {
623
666
  capabilityDelegation: identifier.keys
624
- .filter((key) => { var _a; return key.type === 'X25519' || ((_a = key === null || key === void 0 ? void 0 : key.meta) === null || _a === void 0 ? void 0 : _a.purpose) === 'capabilityDelegation'; })
667
+ .filter((key) => { var _a, _b, _c; return key.type === 'X25519' || ((_a = key === null || key === void 0 ? void 0 : key.meta) === null || _a === void 0 ? void 0 : _a.purpose) === 'capabilityDelegation' || ((_c = (_b = key === null || key === void 0 ? void 0 : key.meta) === null || _b === void 0 ? void 0 : _b.purposes) === null || _c === void 0 ? void 0 : _c.includes('capabilityDelegation')); })
625
668
  .map((key) => {
626
669
  if (key.kid.startsWith(did) && key.kid.includes('#')) {
627
670
  return key.kid;
@@ -1 +1 @@
1
- {"version":3,"file":"did-functions.js","sourceRoot":"","sources":["../src/did-functions.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"did-functions.js","sourceRoot":"","sources":["../src/did-functions.ts"],"names":[],"mappings":"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"}
package/dist/types.d.ts CHANGED
@@ -36,6 +36,7 @@ export interface IIdentifierOpts {
36
36
  export type IdentifierProviderOpts = {
37
37
  type?: TKeyType;
38
38
  use?: string;
39
+ method?: SupportedDidMethodEnum;
39
40
  [x: string]: any;
40
41
  };
41
42
  export type CreateIdentifierOpts = {
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAA;AAC1C,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AACzC,OAAO,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAC9D,OAAO,EAAE,QAAQ,EAAE,MAAM,iCAAiC,CAAA;AAE1D,oBAAY,sBAAsB;IAChC,QAAQ,SAAS;IACjB,OAAO,QAAQ;IACf,OAAO,QAAQ;IACf,OAAO,QAAQ;IACf,QAAQ,SAAS;IACjB,OAAO,QAAQ;CAChB;AAED,oBAAY,mBAAmB;IAC7B,OAAO,YAAY;CACpB;AAED,oBAAY,uBAAuB;IACjC,KAAK,UAAU;CAChB;AAED,MAAM,WAAW,WAAW;IAC1B,aAAa,CAAC,EAAE,gBAAgB,CAAA;IAChC,QAAQ,CAAC,EAAE,UAAU,CAAA;IACrB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,2BAA2B,CAAC,EAAE,OAAO,CAAA;IACrC,2BAA2B,CAAC,EAAE,MAAM,EAAE,CAAA;CACvC;AAED,MAAM,WAAW,WAAW;IAC1B,WAAW,CAAC,EAAE,WAAW,CAAA;IACzB,cAAc,EAAE,eAAe,CAAA;IAC/B,mBAAmB,CAAC,EAAE,MAAM,EAAE,CAAA;CAC/B;AAED,MAAM,WAAW,eAAe;IAC9B,UAAU,EAAE,WAAW,GAAG,MAAM,CAAA;IAChC,yBAAyB,CAAC,EAAE,kBAAkB,CAAA;IAC9C,GAAG,CAAC,EAAE,MAAM,CAAA;CACb;AAED,MAAM,MAAM,sBAAsB,GAAG;IACnC,IAAI,CAAC,EAAE,QAAQ,CAAA;IACf,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,CAAC,CAAC,EAAE,MAAM,GAAG,GAAG,CAAA;CACjB,CAAA;AAED,MAAM,MAAM,oBAAoB,GAAG;IACjC,MAAM,EAAE,sBAAsB,CAAA;IAC9B,UAAU,CAAC,EAAE,0BAA0B,CAAA;CACxC,CAAA;AAED,MAAM,MAAM,0BAA0B,GAAG;IACvC,GAAG,CAAC,EAAE,uBAAuB,CAAA;IAC7B,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,OAAO,CAAC,EAAE,sBAAsB,CAAA;CACjC,CAAA;AAED,MAAM,MAAM,yBAAyB,GAAG;IACtC,MAAM,EAAE,sBAAsB,CAAA;IAC9B,UAAU,CAAC,EAAE,0BAA0B,CAAA;CACxC,CAAA;AAED,eAAO,MAAM,UAAU,SAAS,CAAA;AAEhC,MAAM,WAAW,iBAAiB,CAAC,CAAC;IAClC,OAAO,EAAE,OAAO,CAAA;IAChB,MAAM,EAAE,CAAC,CAAA;CACV"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAA;AAC1C,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AACzC,OAAO,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAC9D,OAAO,EAAE,QAAQ,EAAE,MAAM,iCAAiC,CAAA;AAE1D,oBAAY,sBAAsB;IAChC,QAAQ,SAAS;IACjB,OAAO,QAAQ;IACf,OAAO,QAAQ;IACf,OAAO,QAAQ;IACf,QAAQ,SAAS;IACjB,OAAO,QAAQ;CAChB;AAED,oBAAY,mBAAmB;IAC7B,OAAO,YAAY;CACpB;AAED,oBAAY,uBAAuB;IACjC,KAAK,UAAU;CAChB;AAED,MAAM,WAAW,WAAW;IAC1B,aAAa,CAAC,EAAE,gBAAgB,CAAA;IAChC,QAAQ,CAAC,EAAE,UAAU,CAAA;IACrB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,2BAA2B,CAAC,EAAE,OAAO,CAAA;IACrC,2BAA2B,CAAC,EAAE,MAAM,EAAE,CAAA;CACvC;AAED,MAAM,WAAW,WAAW;IAC1B,WAAW,CAAC,EAAE,WAAW,CAAA;IACzB,cAAc,EAAE,eAAe,CAAA;IAC/B,mBAAmB,CAAC,EAAE,MAAM,EAAE,CAAA;CAC/B;AAED,MAAM,WAAW,eAAe;IAC9B,UAAU,EAAE,WAAW,GAAG,MAAM,CAAA;IAChC,yBAAyB,CAAC,EAAE,kBAAkB,CAAA;IAC9C,GAAG,CAAC,EAAE,MAAM,CAAA;CACb;AAED,MAAM,MAAM,sBAAsB,GAAG;IACnC,IAAI,CAAC,EAAE,QAAQ,CAAA;IACf,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,MAAM,CAAC,EAAE,sBAAsB,CAAA;IAC/B,CAAC,CAAC,EAAE,MAAM,GAAG,GAAG,CAAA;CACjB,CAAA;AAED,MAAM,MAAM,oBAAoB,GAAG;IACjC,MAAM,EAAE,sBAAsB,CAAA;IAC9B,UAAU,CAAC,EAAE,0BAA0B,CAAA;CACxC,CAAA;AAED,MAAM,MAAM,0BAA0B,GAAG;IACvC,GAAG,CAAC,EAAE,uBAAuB,CAAA;IAC7B,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,OAAO,CAAC,EAAE,sBAAsB,CAAA;CACjC,CAAA;AAED,MAAM,MAAM,yBAAyB,GAAG;IACtC,MAAM,EAAE,sBAAsB,CAAA;IAC9B,UAAU,CAAC,EAAE,0BAA0B,CAAA;CACxC,CAAA;AAED,eAAO,MAAM,UAAU,SAAS,CAAA;AAEhC,MAAM,WAAW,iBAAiB,CAAC,CAAC;IAClC,OAAO,EAAE,OAAO,CAAA;IAChB,MAAM,EAAE,CAAC,CAAA;CACV"}
package/dist/types.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":";;;AAKA,IAAY,sBAOX;AAPD,WAAY,sBAAsB;IAChC,2CAAiB,CAAA;IACjB,yCAAe,CAAA;IACf,yCAAe,CAAA;IACf,yCAAe,CAAA;IACf,2CAAiB,CAAA;IACjB,yCAAe,CAAA;AACjB,CAAC,EAPW,sBAAsB,sCAAtB,sBAAsB,QAOjC;AAED,IAAY,mBAEX;AAFD,WAAY,mBAAmB;IAC7B,0CAAmB,CAAA;AACrB,CAAC,EAFW,mBAAmB,mCAAnB,mBAAmB,QAE9B;AAED,IAAY,uBAEX;AAFD,WAAY,uBAAuB;IACjC,0CAAe,CAAA;AACjB,CAAC,EAFW,uBAAuB,uCAAvB,uBAAuB,QAElC;AA4CY,QAAA,UAAU,GAAG,MAAM,CAAA"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":";;;AAKA,IAAY,sBAOX;AAPD,WAAY,sBAAsB;IAChC,2CAAiB,CAAA;IACjB,yCAAe,CAAA;IACf,yCAAe,CAAA;IACf,yCAAe,CAAA;IACf,2CAAiB,CAAA;IACjB,yCAAe,CAAA;AACjB,CAAC,EAPW,sBAAsB,sCAAtB,sBAAsB,QAOjC;AAED,IAAY,mBAEX;AAFD,WAAY,mBAAmB;IAC7B,0CAAmB,CAAA;AACrB,CAAC,EAFW,mBAAmB,mCAAnB,mBAAmB,QAE9B;AAED,IAAY,uBAEX;AAFD,WAAY,uBAAuB;IACjC,0CAAe,CAAA;AACjB,CAAC,EAFW,uBAAuB,uCAAvB,uBAAuB,QAElC;AA6CY,QAAA,UAAU,GAAG,MAAM,CAAA"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@sphereon/ssi-sdk-ext.did-utils",
3
3
  "description": "DID Utils",
4
- "version": "0.22.1-unstable.5+bf5a967",
4
+ "version": "0.23.0",
5
5
  "source": "src/index.ts",
6
6
  "main": "dist/index.js",
7
7
  "types": "dist/index.d.ts",
@@ -13,8 +13,8 @@
13
13
  "@ethersproject/networks": "^5.7.1",
14
14
  "@ethersproject/transactions": "^5.7.0",
15
15
  "@sphereon/did-uni-client": "^0.6.3",
16
- "@sphereon/ssi-sdk-ext.key-utils": "0.22.1-unstable.5+bf5a967",
17
- "@sphereon/ssi-sdk.core": "0.25.0",
16
+ "@sphereon/ssi-sdk-ext.key-utils": "0.23.0",
17
+ "@sphereon/ssi-sdk.core": "0.27.0",
18
18
  "@stablelib/ed25519": "^1.0.3",
19
19
  "@veramo/core": "4.2.0",
20
20
  "@veramo/utils": "4.2.0",
@@ -38,5 +38,5 @@
38
38
  "author": "Sphereon <dev@sphereon.com>",
39
39
  "license": "Apache-2.0",
40
40
  "keywords": [],
41
- "gitHead": "bf5a967d982bd3e581ce4e8c2810209576a5b118"
41
+ "gitHead": "22da2aadb48b9a13b25af47f0f092764bca491f7"
42
42
  }
@@ -3,16 +3,7 @@ import { UniResolver } from '@sphereon/did-uni-client'
3
3
  import { base64ToHex, ENC_KEY_ALGS, hexKeyFromPEMBasedJwk, JwkKeyUse, TKeyType, toJwk } from '@sphereon/ssi-sdk-ext.key-utils'
4
4
  import { base58ToBytes, base64ToBytes, bytesToHex, hexToBytes, multibaseKeyToBytes } from '@sphereon/ssi-sdk.core'
5
5
  import { convertPublicKeyToX25519 } from '@stablelib/ed25519'
6
- import {
7
- DIDDocument,
8
- DIDDocumentSection,
9
- DIDResolutionResult,
10
- IAgentContext,
11
- IDIDManager,
12
- IIdentifier,
13
- IKey,
14
- IResolver,
15
- } from '@veramo/core'
6
+ import { DIDDocument, DIDDocumentSection, DIDResolutionResult, IAgentContext, IDIDManager, IIdentifier, IKey, IResolver } from '@veramo/core'
16
7
  import {
17
8
  _ExtendedIKey,
18
9
  _ExtendedVerificationMethod,
@@ -40,34 +31,87 @@ import {
40
31
  SupportedDidMethodEnum,
41
32
  } from './types'
42
33
 
43
-
44
- export const getAuthenticationKey = async (identifier: IIdentifier,
45
- context: IAgentContext<IResolver & IDIDManager>,
46
- offlineWhenNoDIDRegistered?: boolean,
47
- noVerificationMethodFallback?: boolean): Promise<_ExtendedIKey> => {
48
-
34
+ export const getAuthenticationKey = async (
35
+ {
36
+ identifier,
37
+ offlineWhenNoDIDRegistered,
38
+ noVerificationMethodFallback,
39
+ keyType,
40
+ controllerKey,
41
+ }: {
42
+ identifier: IIdentifier
43
+ keyType?: TKeyType
44
+ offlineWhenNoDIDRegistered?: boolean
45
+ noVerificationMethodFallback?: boolean
46
+ controllerKey?: boolean
47
+ },
48
+ context: IAgentContext<IResolver & IDIDManager>
49
+ ): Promise<_ExtendedIKey> => {
49
50
  let key: _ExtendedIKey | undefined = undefined
50
51
  try {
51
52
  key =
52
- (await getFirstKeyWithRelation(identifier, context, 'authentication', false)) ??
53
- (noVerificationMethodFallback ? undefined : await getFirstKeyWithRelation(identifier, context, 'verificationMethod', false))
53
+ (await getFirstKeyWithRelation(
54
+ {
55
+ identifier,
56
+ vmRelationship: 'authentication',
57
+ errorOnNotFound: false,
58
+ keyType,
59
+ controllerKey,
60
+ },
61
+ context
62
+ )) ??
63
+ (noVerificationMethodFallback
64
+ ? undefined
65
+ : await getFirstKeyWithRelation(
66
+ {
67
+ identifier,
68
+ vmRelationship: 'verificationMethod',
69
+ errorOnNotFound: false,
70
+ keyType,
71
+ controllerKey,
72
+ },
73
+ context
74
+ ))
54
75
  } catch (e) {
55
76
  if (e instanceof Error) {
56
77
  if (!e.message.includes('404') || !offlineWhenNoDIDRegistered) {
57
- throw e;
78
+ throw e
58
79
  }
59
80
  } else {
60
- throw e;
81
+ throw e
61
82
  }
62
83
  }
63
84
  if (!key && offlineWhenNoDIDRegistered) {
64
85
  const offlineDID = toDidDocument(identifier)
65
86
  key =
66
- (await getFirstKeyWithRelation(identifier, context, 'authentication', false, offlineDID)) ??
67
- (noVerificationMethodFallback ? undefined : await getFirstKeyWithRelation(identifier, context, 'verificationMethod', false, offlineDID))
87
+ (await getFirstKeyWithRelation(
88
+ {
89
+ identifier,
90
+ vmRelationship: 'authentication',
91
+ errorOnNotFound: false,
92
+ didDocument: offlineDID,
93
+ keyType,
94
+ controllerKey,
95
+ },
96
+ context
97
+ )) ??
98
+ (noVerificationMethodFallback
99
+ ? undefined
100
+ : await getFirstKeyWithRelation(
101
+ {
102
+ identifier,
103
+ vmRelationship: 'verificationMethod',
104
+ errorOnNotFound: false,
105
+ didDocument: offlineDID,
106
+ keyType,
107
+ controllerKey,
108
+ },
109
+ context
110
+ ))
68
111
  if (!key) {
69
112
  key = identifier.keys
70
113
  .map((key) => key as _ExtendedIKey)
114
+ .filter((key) => keyType === undefined || key.type === keyType || (controllerKey && key.kid === identifier.controllerKeyId))
71
115
  .find((key) => key.meta.verificationMethod?.type.includes('authentication') || key.meta.purposes?.includes('authentication'))
72
116
  }
73
117
  }
@@ -77,8 +121,11 @@ export const getAuthenticationKey = async (identifier: IIdentifier,
77
121
  return key
78
122
  }
79
123
 
80
- export const getOrCreatePrimaryIdentifier = async (context: IAgentContext<IDIDManager>, opts?: CreateOrGetIdentifierOpts): Promise<GetOrCreateResult<IIdentifier>> => {
81
- const primaryIdentifier = await getPrimaryIdentifier(context, opts?.createOpts?.options)
124
+ export const getOrCreatePrimaryIdentifier = async (
125
+ context: IAgentContext<IDIDManager>,
126
+ opts?: CreateOrGetIdentifierOpts
127
+ ): Promise<GetOrCreateResult<IIdentifier>> => {
128
+ const primaryIdentifier = await getPrimaryIdentifier(context, { ...opts?.createOpts?.options, ...(opts?.method && { method: opts.method }) })
82
129
  if (primaryIdentifier !== undefined) {
83
130
  return {
84
131
  created: false,
@@ -99,18 +146,17 @@ export const getOrCreatePrimaryIdentifier = async (context: IAgentContext<IDIDMa
99
146
  }
100
147
 
101
148
  export const getPrimaryIdentifier = async (context: IAgentContext<IDIDManager>, opts?: IdentifierProviderOpts): Promise<IIdentifier | undefined> => {
102
- const identifiers = (await context.agent.didManagerFind(opts?.method ? { provider: `${DID_PREFIX}:${opts?.method}` } : {})).filter(
103
- (identifier: IIdentifier) =>
104
- opts?.type === undefined || identifier.keys.some((key: IKey) => key.type === opts?.type),
149
+ const identifiers = (await context.agent.didManagerFind(opts?.method ? { provider: `${DID_PREFIX}${opts?.method}` } : {})).filter(
150
+ (identifier: IIdentifier) => opts?.type === undefined || identifier.keys.some((key: IKey) => key.type === opts?.type)
105
151
  )
106
152
 
107
- return (identifiers && identifiers.length > 0) ? identifiers[0] : undefined
153
+ return identifiers && identifiers.length > 0 ? identifiers[0] : undefined
108
154
  }
109
155
 
110
156
  export const createIdentifier = async (context: IAgentContext<IDIDManager>, opts?: CreateIdentifierOpts): Promise<IIdentifier> => {
111
157
  const identifier = await context.agent.didManagerCreate({
112
158
  kms: opts?.createOpts?.kms ?? KeyManagementSystemEnum.LOCAL,
113
- ...(opts?.method && { provider: `${DID_PREFIX}:${opts?.method}` }),
159
+ ...(opts?.method && { provider: `${DID_PREFIX}${opts?.method}` }),
114
160
  alias: opts?.createOpts?.alias ?? `${IdentifierAliasEnum.PRIMARY}-${opts?.method}-${opts?.createOpts?.options?.type}-${new Date().toUTCString()}`,
115
161
  options: opts?.createOpts?.options,
116
162
  })
@@ -118,19 +164,37 @@ export const createIdentifier = async (context: IAgentContext<IDIDManager>, opts
118
164
  }
119
165
 
120
166
  export const getFirstKeyWithRelation = async (
121
- identifier: IIdentifier,
122
- context: IAgentContext<IResolver & IDIDManager>,
123
- vmRelationship?: DIDDocumentSection,
124
- errorOnNotFound?: boolean,
125
- didDocument?: DIDDocument
167
+ {
168
+ identifier,
169
+ vmRelationship = 'verificationMethod',
170
+ keyType,
171
+ errorOnNotFound = false,
172
+ didDocument,
173
+ controllerKey,
174
+ }: {
175
+ identifier: IIdentifier
176
+ controllerKey?: boolean
177
+ vmRelationship?: DIDDocumentSection
178
+ keyType?: TKeyType
179
+ errorOnNotFound?: boolean
180
+ didDocument?: DIDDocument
181
+ },
182
+ context: IAgentContext<IResolver & IDIDManager>
126
183
  ): Promise<_ExtendedIKey | undefined> => {
127
184
  const section = vmRelationship ?? 'verificationMethod' // search all VMs in case no relationship is provided
128
185
  const matchedKeys = await mapIdentifierKeysToDocWithJwkSupport(identifier, section, context, didDocument)
129
186
  if (Array.isArray(matchedKeys) && matchedKeys.length > 0) {
130
- return matchedKeys[0]
187
+ const result = matchedKeys.find(
188
+ (key) => keyType === undefined || key.type === keyType || (controllerKey && key.kid === identifier.controllerKeyId)
189
+ )
190
+ if (result) {
191
+ return result
192
+ }
131
193
  }
132
- if (errorOnNotFound === true) {
133
- throw new Error(`Could not find key with relationship ${section} in DID document for ${identifier.did}`)
194
+ if (errorOnNotFound) {
195
+ throw new Error(
196
+ `Could not find key with relationship ${section} in DID document for ${identifier.did}${keyType ? ' and key type: ' + keyType : ''}`
197
+ )
134
198
  }
135
199
  return undefined
136
200
  }
@@ -368,8 +432,8 @@ export async function mapIdentifierKeysToDocWithJwkSupport(
368
432
  const extendedKeys: _ExtendedIKey[] = documentKeys
369
433
  .map((verificationMethod) => {
370
434
  /*if (verificationMethod.type !== 'JsonWebKey2020') {
371
- return null
372
- }*/
435
+ return null
436
+ }*/
373
437
  const localKey = localKeys.find(
374
438
  (localKey) =>
375
439
  localKey.publicKeyHex === verificationMethod.publicKeyHex ||
@@ -610,7 +674,7 @@ export class AgentDIDResolver implements Resolvable {
610
674
  *
611
675
  * We try to do our best, to map keys onto relevant verification methods and relationships, but we simply lack the context
612
676
  * of the actual DID method here. Do not relly on this method for DID resolution. It is only handy for offline use cases
613
- * when no DID Document is cached.
677
+ * when no DID Document is cached. For DID:WEB it does provide an accurate representation!
614
678
  *
615
679
  * @param identifier
616
680
  * @param opts
@@ -623,6 +687,7 @@ export function toDidDocument(
623
687
  }
624
688
  ): DIDDocument | undefined {
625
689
  let didDocument: DIDDocument | undefined = undefined
690
+ // TODO: Introduce jwk thumbprints here
626
691
  if (identifier) {
627
692
  const did = identifier.did ?? opts?.did
628
693
  didDocument = {
@@ -640,43 +705,63 @@ export function toDidDocument(
640
705
  }
641
706
  return vm
642
707
  }),
643
- ...((!opts?.use || opts?.use?.includes(JwkKeyUse.Signature)) &&
708
+ ...((opts?.use === undefined || opts?.use?.includes(JwkKeyUse.Signature)) &&
644
709
  identifier.keys && {
645
710
  assertionMethod: identifier.keys
646
- .filter((key) => key?.meta?.purpose || key?.meta?.purpose === 'assertionMethod')
711
+ .filter(
712
+ (key) =>
713
+ key?.meta?.purpose === undefined || key?.meta?.purpose === 'assertionMethod' || key?.meta?.purposes?.includes('assertionMethod')
714
+ )
647
715
  .map((key) => {
716
+ if (key.kid.startsWith(did) && key.kid.includes('#')) {
717
+ return key.kid
718
+ }
648
719
  return `${did}#${key.kid}`
649
720
  }),
721
+ }),
722
+ ...((opts?.use === undefined || opts?.use?.includes(JwkKeyUse.Signature)) &&
723
+ identifier.keys && {
650
724
  authentication: identifier.keys
651
- .filter((key) => key?.meta?.purpose || key?.meta?.purpose === 'authentication')
725
+ .filter(
726
+ (key) => key?.meta?.purpose === undefined || key?.meta?.purpose === 'authentication' || key?.meta?.purposes?.includes('authentication')
727
+ )
652
728
  .map((key) => {
729
+ if (key.kid.startsWith(did) && key.kid.includes('#')) {
730
+ return key.kid
731
+ }
653
732
  return `${did}#${key.kid}`
654
733
  }),
655
734
  }),
656
- ...((!opts?.use || opts?.use?.includes(JwkKeyUse.Encryption)) &&
735
+ ...((opts?.use === undefined || opts?.use?.includes(JwkKeyUse.Encryption)) &&
657
736
  identifier.keys && {
658
737
  keyAgreement: identifier.keys
659
- .filter((key) => key.type === 'X25519' || key?.meta?.purpose === 'keyAgreement')
738
+ .filter((key) => key.type === 'X25519' || key?.meta?.purpose === 'keyAgreement' || key?.meta?.purposes?.includes('keyAgreement'))
660
739
  .map((key) => {
661
740
  if (key.kid.startsWith(did) && key.kid.includes('#')) {
662
741
  return key.kid
663
742
  }
664
743
  return `${did}#${key.kid}`
665
744
  }),
666
- } &&
745
+ }),
746
+ ...((opts?.use === undefined || opts?.use?.includes(JwkKeyUse.Encryption)) &&
667
747
  identifier.keys && {
668
748
  capabilityInvocation: identifier.keys
669
- .filter((key) => key.type === 'X25519' || key?.meta?.purpose === 'capabilityInvocation')
749
+ .filter(
750
+ (key) => key.type === 'X25519' || key?.meta?.purpose === 'capabilityInvocation' || key?.meta?.purposes?.includes('capabilityInvocation')
751
+ )
670
752
  .map((key) => {
671
753
  if (key.kid.startsWith(did) && key.kid.includes('#')) {
672
754
  return key.kid
673
755
  }
674
756
  return `${did}#${key.kid}`
675
757
  }),
676
- } &&
758
+ }),
759
+ ...((opts?.use === undefined || opts?.use?.includes(JwkKeyUse.Encryption)) &&
677
760
  identifier.keys && {
678
761
  capabilityDelegation: identifier.keys
679
- .filter((key) => key.type === 'X25519' || key?.meta?.purpose === 'capabilityDelegation')
762
+ .filter(
763
+ (key) => key.type === 'X25519' || key?.meta?.purpose === 'capabilityDelegation' || key?.meta?.purposes?.includes('capabilityDelegation')
764
+ )
680
765
  .map((key) => {
681
766
  if (key.kid.startsWith(did) && key.kid.includes('#')) {
682
767
  return key.kid
package/src/types.ts CHANGED
@@ -43,6 +43,7 @@ export interface IIdentifierOpts {
43
43
  export type IdentifierProviderOpts = {
44
44
  type?: TKeyType
45
45
  use?: string
46
+ method?: SupportedDidMethodEnum
46
47
  [x: string]: any
47
48
  }
48
49