@sphereon/ssi-sdk-ext.did-utils 0.21.0 → 0.21.1-next.16
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.
- package/dist/did-functions.d.ts +30 -2
- package/dist/did-functions.d.ts.map +1 -1
- package/dist/did-functions.js +157 -15
- package/dist/did-functions.js.map +1 -1
- package/dist/types.d.ts +37 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +18 -1
- package/dist/types.js.map +1 -1
- package/package.json +4 -3
- package/src/did-functions.ts +215 -22
- package/src/types.ts +45 -0
package/dist/did-functions.d.ts
CHANGED
|
@@ -1,9 +1,27 @@
|
|
|
1
|
-
import { JwkKeyUse } from '@sphereon/ssi-sdk-ext.key-utils';
|
|
1
|
+
import { JwkKeyUse, TKeyType } from '@sphereon/ssi-sdk-ext.key-utils';
|
|
2
2
|
import { DIDDocument, DIDDocumentSection, DIDResolutionResult, IAgentContext, IDIDManager, IIdentifier, IKey, IResolver } from '@veramo/core';
|
|
3
3
|
import { _ExtendedIKey, _ExtendedVerificationMethod, _NormalizedVerificationMethod } from '@veramo/utils';
|
|
4
4
|
import { DIDResolutionOptions, Resolvable } from 'did-resolver';
|
|
5
|
-
import { IDIDOptions, IIdentifierOpts } from './types';
|
|
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>;
|
|
7
|
+
export declare const getOrCreatePrimaryIdentifier: (context: IAgentContext<IDIDManager>, opts?: CreateOrGetIdentifierOpts) => Promise<GetOrCreateResult<IIdentifier>>;
|
|
8
|
+
export declare const getPrimaryIdentifier: (context: IAgentContext<IDIDManager>, opts?: IdentifierProviderOpts) => Promise<IIdentifier | undefined>;
|
|
9
|
+
export declare const createIdentifier: (context: IAgentContext<IDIDManager>, opts?: CreateIdentifierOpts) => Promise<IIdentifier>;
|
|
6
10
|
export declare const getFirstKeyWithRelation: (identifier: IIdentifier, context: IAgentContext<IResolver & IDIDManager>, vmRelationship?: DIDDocumentSection, errorOnNotFound?: boolean, didDocument?: DIDDocument) => Promise<_ExtendedIKey | undefined>;
|
|
11
|
+
export declare const getEthereumAddressFromKey: ({ key }: {
|
|
12
|
+
key: IKey;
|
|
13
|
+
}) => any;
|
|
14
|
+
export declare const getControllerKey: ({ identifier }: {
|
|
15
|
+
identifier: IIdentifier;
|
|
16
|
+
}) => IKey;
|
|
17
|
+
export declare const getKeys: ({ jwkThumbprint, kms, identifier, kid, keyType, controllerKey, }: {
|
|
18
|
+
identifier: IIdentifier;
|
|
19
|
+
kid?: string;
|
|
20
|
+
keyType?: TKeyType;
|
|
21
|
+
kms?: string;
|
|
22
|
+
jwkThumbprint?: string;
|
|
23
|
+
controllerKey?: boolean;
|
|
24
|
+
}) => IKey[];
|
|
7
25
|
/**
|
|
8
26
|
* Dereferences keys from DID document and normalizes them for easy comparison.
|
|
9
27
|
*
|
|
@@ -78,6 +96,16 @@ export declare class AgentDIDResolver implements Resolvable {
|
|
|
78
96
|
});
|
|
79
97
|
resolve(didUrl: string, options?: DIDResolutionOptions): Promise<DIDResolutionResult>;
|
|
80
98
|
}
|
|
99
|
+
/**
|
|
100
|
+
* Please note that this is not an exact representation of the actual DID Document.
|
|
101
|
+
*
|
|
102
|
+
* We try to do our best, to map keys onto relevant verification methods and relationships, but we simply lack the context
|
|
103
|
+
* of the actual DID method here. Do not relly on this method for DID resolution. It is only handy for offline use cases
|
|
104
|
+
* when no DID Document is cached.
|
|
105
|
+
*
|
|
106
|
+
* @param identifier
|
|
107
|
+
* @param opts
|
|
108
|
+
*/
|
|
81
109
|
export declare function toDidDocument(identifier?: IIdentifier, opts?: {
|
|
82
110
|
did?: string;
|
|
83
111
|
use?: JwkKeyUse[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"did-functions.d.ts","sourceRoot":"","sources":["../src/did-functions.ts"],"names":[],"mappings":"AAEA,OAAO,EAAoD,SAAS,EAAS,MAAM,iCAAiC,CAAA;
|
|
1
|
+
{"version":3,"file":"did-functions.d.ts","sourceRoot":"","sources":["../src/did-functions.ts"],"names":[],"mappings":"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"}
|
package/dist/did-functions.js
CHANGED
|
@@ -46,7 +46,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
46
46
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
47
47
|
};
|
|
48
48
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
49
|
-
exports.asDidWeb = exports.toDidResolutionResult = exports.toDidDocument = exports.AgentDIDResolver = exports.getAgentResolver = exports.getSupportedDIDMethods = exports.determineKid = exports.getKey = exports.toDIDs = exports.toDID = exports.getDID = exports.getIdentifier = exports.getAgentDIDMethods = exports.mapIdentifierKeysToDocWithJwkSupport = exports.extractPublicKeyHex = exports.isEvenHexString = exports.extractPublicKeyHexWithJwkSupport = exports.dereferenceDidKeysWithJwkSupport = exports.getFirstKeyWithRelation = void 0;
|
|
49
|
+
exports.asDidWeb = exports.toDidResolutionResult = exports.toDidDocument = exports.AgentDIDResolver = exports.getAgentResolver = exports.getSupportedDIDMethods = exports.determineKid = exports.getKey = exports.toDIDs = exports.toDID = exports.getDID = exports.getIdentifier = exports.getAgentDIDMethods = exports.mapIdentifierKeysToDocWithJwkSupport = exports.extractPublicKeyHex = exports.isEvenHexString = exports.extractPublicKeyHexWithJwkSupport = exports.dereferenceDidKeysWithJwkSupport = exports.getKeys = exports.getControllerKey = exports.getEthereumAddressFromKey = exports.getFirstKeyWithRelation = exports.createIdentifier = exports.getPrimaryIdentifier = exports.getOrCreatePrimaryIdentifier = exports.getAuthenticationKey = void 0;
|
|
50
50
|
const transactions_1 = require("@ethersproject/transactions");
|
|
51
51
|
const did_uni_client_1 = require("@sphereon/did-uni-client");
|
|
52
52
|
const ssi_sdk_ext_key_utils_1 = require("@sphereon/ssi-sdk-ext.key-utils");
|
|
@@ -56,6 +56,72 @@ const utils_1 = require("@veramo/utils");
|
|
|
56
56
|
// @ts-ignore
|
|
57
57
|
const elliptic_1 = __importDefault(require("elliptic"));
|
|
58
58
|
const u8a = __importStar(require("uint8arrays"));
|
|
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;
|
|
62
|
+
let key = undefined;
|
|
63
|
+
try {
|
|
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));
|
|
66
|
+
}
|
|
67
|
+
catch (e) {
|
|
68
|
+
if (e instanceof Error) {
|
|
69
|
+
if (!e.message.includes('404') || !offlineWhenNoDIDRegistered) {
|
|
70
|
+
throw e;
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
else {
|
|
74
|
+
throw e;
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
if (!key && offlineWhenNoDIDRegistered) {
|
|
78
|
+
const offlineDID = toDidDocument(identifier);
|
|
79
|
+
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));
|
|
81
|
+
if (!key) {
|
|
82
|
+
key = identifier.keys
|
|
83
|
+
.map((key) => key)
|
|
84
|
+
.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
|
+
}
|
|
86
|
+
}
|
|
87
|
+
if (!key) {
|
|
88
|
+
throw Error(`Could not find authentication key for DID ${identifier.did}`);
|
|
89
|
+
}
|
|
90
|
+
return key;
|
|
91
|
+
});
|
|
92
|
+
exports.getAuthenticationKey = getAuthenticationKey;
|
|
93
|
+
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);
|
|
96
|
+
if (primaryIdentifier !== undefined) {
|
|
97
|
+
return {
|
|
98
|
+
created: false,
|
|
99
|
+
result: primaryIdentifier,
|
|
100
|
+
};
|
|
101
|
+
}
|
|
102
|
+
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 : {};
|
|
104
|
+
createOpts.options = Object.assign({ codecName: 'EBSI', type: 'Secp256r1' }, createOpts);
|
|
105
|
+
opts.createOpts = createOpts;
|
|
106
|
+
}
|
|
107
|
+
const createdIdentifier = yield (0, exports.createIdentifier)(context, opts);
|
|
108
|
+
return {
|
|
109
|
+
created: true,
|
|
110
|
+
result: createdIdentifier,
|
|
111
|
+
};
|
|
112
|
+
});
|
|
113
|
+
exports.getOrCreatePrimaryIdentifier = getOrCreatePrimaryIdentifier;
|
|
114
|
+
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;
|
|
117
|
+
});
|
|
118
|
+
exports.getPrimaryIdentifier = getPrimaryIdentifier;
|
|
119
|
+
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 }));
|
|
122
|
+
return identifier;
|
|
123
|
+
});
|
|
124
|
+
exports.createIdentifier = createIdentifier;
|
|
59
125
|
const getFirstKeyWithRelation = (identifier, context, vmRelationship, errorOnNotFound, didDocument) => __awaiter(void 0, void 0, void 0, function* () {
|
|
60
126
|
const section = vmRelationship !== null && vmRelationship !== void 0 ? vmRelationship : 'verificationMethod'; // search all VMs in case no relationship is provided
|
|
61
127
|
const matchedKeys = yield mapIdentifierKeysToDocWithJwkSupport(identifier, section, context, didDocument);
|
|
@@ -68,6 +134,35 @@ const getFirstKeyWithRelation = (identifier, context, vmRelationship, errorOnNot
|
|
|
68
134
|
return undefined;
|
|
69
135
|
});
|
|
70
136
|
exports.getFirstKeyWithRelation = getFirstKeyWithRelation;
|
|
137
|
+
const getEthereumAddressFromKey = ({ key }) => {
|
|
138
|
+
var _a, _b, _c, _d, _e;
|
|
139
|
+
if (key.type !== 'Secp256k1') {
|
|
140
|
+
throw Error(`Can only get ethereum address from a Secp256k1 key. Type is ${key.type} for kid: ${key.kid}`);
|
|
141
|
+
}
|
|
142
|
+
const ethereumAddress = (_e = (_b = (_a = key.meta) === null || _a === void 0 ? void 0 : _a.ethereumAddress) !== null && _b !== void 0 ? _b : (_d = (_c = key.meta) === null || _c === void 0 ? void 0 : _c.account) === null || _d === void 0 ? void 0 : _d.toLowerCase()) !== null && _e !== void 0 ? _e : (0, transactions_1.computeAddress)(`0x${key.publicKeyHex}`).toLowerCase();
|
|
143
|
+
if (!ethereumAddress) {
|
|
144
|
+
throw Error(`Could not get or generate ethereum address from key ${key.kid}`);
|
|
145
|
+
}
|
|
146
|
+
return ethereumAddress;
|
|
147
|
+
};
|
|
148
|
+
exports.getEthereumAddressFromKey = getEthereumAddressFromKey;
|
|
149
|
+
const getControllerKey = ({ identifier }) => {
|
|
150
|
+
const key = identifier.keys.find((key) => key.kid === identifier.controllerKeyId);
|
|
151
|
+
if (!key) {
|
|
152
|
+
throw Error(`Could not get controller key for identifier ${identifier}`);
|
|
153
|
+
}
|
|
154
|
+
return key;
|
|
155
|
+
};
|
|
156
|
+
exports.getControllerKey = getControllerKey;
|
|
157
|
+
const getKeys = ({ jwkThumbprint, kms, identifier, kid, keyType, controllerKey, }) => {
|
|
158
|
+
return identifier.keys
|
|
159
|
+
.filter((key) => !keyType || key.type === keyType)
|
|
160
|
+
.filter((key) => !kms || key.kms === kms)
|
|
161
|
+
.filter((key) => !kid || key.kid === kid)
|
|
162
|
+
.filter((key) => { var _a; return !jwkThumbprint || ((_a = key.meta) === null || _a === void 0 ? void 0 : _a.jwkThumbprint) === jwkThumbprint; })
|
|
163
|
+
.filter((key) => !controllerKey || identifier.controllerKeyId === key.kid);
|
|
164
|
+
};
|
|
165
|
+
exports.getKeys = getKeys;
|
|
71
166
|
//TODO: Move to ssi-sdk/core and create PR upstream
|
|
72
167
|
/**
|
|
73
168
|
* Dereferences keys from DID document and normalizes them for easy comparison.
|
|
@@ -241,8 +336,8 @@ function mapIdentifierKeysToDocWithJwkSupport(identifier_1) {
|
|
|
241
336
|
const extendedKeys = documentKeys
|
|
242
337
|
.map((verificationMethod) => {
|
|
243
338
|
/*if (verificationMethod.type !== 'JsonWebKey2020') {
|
|
244
|
-
|
|
245
|
-
|
|
339
|
+
return null
|
|
340
|
+
}*/
|
|
246
341
|
const localKey = localKeys.find((localKey) => {
|
|
247
342
|
var _a;
|
|
248
343
|
return localKey.publicKeyHex === verificationMethod.publicKeyHex ||
|
|
@@ -337,21 +432,35 @@ function getKey(identifier_1) {
|
|
|
337
432
|
if (!identifier) {
|
|
338
433
|
return Promise.reject(new Error(`No identifier provided to getKey method!`));
|
|
339
434
|
}
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
435
|
+
// normalize to kid, in case keyId was passed in as did#vm or #vm
|
|
436
|
+
const kidVals = keyId === null || keyId === void 0 ? void 0 : keyId.split(`#`);
|
|
437
|
+
const kid = kidVals ? ((kidVals === null || kidVals === void 0 ? void 0 : kidVals.length) === 2 ? kidVals[1] : kidVals[0]) : undefined;
|
|
438
|
+
let identifierKey = keyId ? identifier.keys.find((key) => { var _a; return key.kid === kid || ((_a = key === null || key === void 0 ? void 0 : key.meta) === null || _a === void 0 ? void 0 : _a.jwkThumbprint) === kid; }) : undefined;
|
|
439
|
+
if (!identifierKey) {
|
|
440
|
+
const keys = yield mapIdentifierKeysToDocWithJwkSupport(identifier, verificationMethodSection, context);
|
|
441
|
+
if (!keys || keys.length === 0) {
|
|
442
|
+
throw new Error(`No keys found for verificationMethodSection: ${verificationMethodSection} and did ${identifier.did}`);
|
|
443
|
+
}
|
|
444
|
+
if (keyId) {
|
|
445
|
+
identifierKey = keys.find((key) => { var _a, _b, _c; return ((_a = key.meta.verificationMethod) === null || _a === void 0 ? void 0 : _a.id) === keyId || (kid && ((_c = (_b = key.meta.verificationMethod) === null || _b === void 0 ? void 0 : _b.id) === null || _c === void 0 ? void 0 : _c.includes(kid))); });
|
|
446
|
+
}
|
|
447
|
+
if (!identifierKey) {
|
|
448
|
+
identifierKey = keys.find((key) => { var _a, _b; return ((_a = key.meta.verificationMethod) === null || _a === void 0 ? void 0 : _a.type) === verificationMethodSection || ((_b = key.meta.purposes) === null || _b === void 0 ? void 0 : _b.includes(verificationMethodSection)); });
|
|
449
|
+
}
|
|
450
|
+
if (!identifierKey) {
|
|
451
|
+
identifierKey = keys[0];
|
|
452
|
+
}
|
|
343
453
|
}
|
|
344
|
-
const identifierKey = keyId ? keys.find((key) => key.kid === keyId || key.meta.verificationMethod.id === keyId) : keys[0];
|
|
345
454
|
if (!identifierKey) {
|
|
346
|
-
throw new Error(`No matching verificationMethodSection key found for keyId: ${keyId}`);
|
|
455
|
+
throw new Error(`No matching verificationMethodSection key found for keyId: ${keyId} and vmSection: ${verificationMethodSection} for id ${identifier.did}`);
|
|
347
456
|
}
|
|
348
457
|
return identifierKey;
|
|
349
458
|
});
|
|
350
459
|
}
|
|
351
460
|
exports.getKey = getKey;
|
|
352
461
|
function determineKid(key, idOpts) {
|
|
353
|
-
var _a, _b, _c;
|
|
354
|
-
return (_c = (_b = (_a = key.meta) === null || _a === void 0 ? void 0 : _a.verificationMethod.id) !== null &&
|
|
462
|
+
var _a, _b, _c, _d;
|
|
463
|
+
return (_d = (_c = (_b = (_a = key.meta) === null || _a === void 0 ? void 0 : _a.verificationMethod) === null || _b === void 0 ? void 0 : _b.id) !== null && _c !== void 0 ? _c : idOpts.kid) !== null && _d !== void 0 ? _d : key.kid;
|
|
355
464
|
}
|
|
356
465
|
exports.determineKid = determineKid;
|
|
357
466
|
function getSupportedDIDMethods(didOpts, context) {
|
|
@@ -446,6 +555,16 @@ class AgentDIDResolver {
|
|
|
446
555
|
}
|
|
447
556
|
}
|
|
448
557
|
exports.AgentDIDResolver = AgentDIDResolver;
|
|
558
|
+
/**
|
|
559
|
+
* Please note that this is not an exact representation of the actual DID Document.
|
|
560
|
+
*
|
|
561
|
+
* We try to do our best, to map keys onto relevant verification methods and relationships, but we simply lack the context
|
|
562
|
+
* of the actual DID method here. Do not relly on this method for DID resolution. It is only handy for offline use cases
|
|
563
|
+
* when no DID Document is cached.
|
|
564
|
+
*
|
|
565
|
+
* @param identifier
|
|
566
|
+
* @param opts
|
|
567
|
+
*/
|
|
449
568
|
function toDidDocument(identifier, opts) {
|
|
450
569
|
var _a, _b, _c;
|
|
451
570
|
let didDocument = undefined;
|
|
@@ -464,17 +583,40 @@ function toDidDocument(identifier, opts) {
|
|
|
464
583
|
return vm;
|
|
465
584
|
}) }, ((!(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))) &&
|
|
466
585
|
identifier.keys && {
|
|
467
|
-
assertionMethod: identifier.keys
|
|
586
|
+
assertionMethod: identifier.keys
|
|
587
|
+
.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'; })
|
|
588
|
+
.map((key) => {
|
|
468
589
|
return `${did}#${key.kid}`;
|
|
469
590
|
}),
|
|
470
|
-
authentication: identifier.keys
|
|
591
|
+
authentication: 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) === 'authentication'; })
|
|
593
|
+
.map((key) => {
|
|
471
594
|
return `${did}#${key.kid}`;
|
|
472
595
|
}),
|
|
473
596
|
})), ((!(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))) &&
|
|
474
|
-
identifier.keys &&
|
|
475
|
-
identifier.keys.filter((key) => key.type === 'X25519').length > 0 && {
|
|
597
|
+
identifier.keys && {
|
|
476
598
|
keyAgreement: identifier.keys
|
|
477
|
-
.filter((key) => key.type === 'X25519')
|
|
599
|
+
.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'; })
|
|
600
|
+
.map((key) => {
|
|
601
|
+
if (key.kid.startsWith(did) && key.kid.includes('#')) {
|
|
602
|
+
return key.kid;
|
|
603
|
+
}
|
|
604
|
+
return `${did}#${key.kid}`;
|
|
605
|
+
}),
|
|
606
|
+
} &&
|
|
607
|
+
identifier.keys && {
|
|
608
|
+
capabilityInvocation: identifier.keys
|
|
609
|
+
.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'; })
|
|
610
|
+
.map((key) => {
|
|
611
|
+
if (key.kid.startsWith(did) && key.kid.includes('#')) {
|
|
612
|
+
return key.kid;
|
|
613
|
+
}
|
|
614
|
+
return `${did}#${key.kid}`;
|
|
615
|
+
}),
|
|
616
|
+
} &&
|
|
617
|
+
identifier.keys && {
|
|
618
|
+
capabilityDelegation: identifier.keys
|
|
619
|
+
.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'; })
|
|
478
620
|
.map((key) => {
|
|
479
621
|
if (key.kid.startsWith(did) && key.kid.includes('#')) {
|
|
480
622
|
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
|
@@ -1,6 +1,21 @@
|
|
|
1
1
|
import { JWTVerifyOptions } from 'did-jwt';
|
|
2
2
|
import { Resolvable } from 'did-resolver';
|
|
3
3
|
import { DIDDocumentSection, IIdentifier } from '@veramo/core';
|
|
4
|
+
import { TKeyType } from '@sphereon/ssi-sdk-ext.key-utils';
|
|
5
|
+
export declare enum SupportedDidMethodEnum {
|
|
6
|
+
DID_ETHR = "ethr",
|
|
7
|
+
DID_KEY = "key",
|
|
8
|
+
DID_LTO = "lto",
|
|
9
|
+
DID_ION = "ion",
|
|
10
|
+
DID_EBSI = "ebsi",
|
|
11
|
+
DID_JWK = "jwk"
|
|
12
|
+
}
|
|
13
|
+
export declare enum IdentifierAliasEnum {
|
|
14
|
+
PRIMARY = "primary"
|
|
15
|
+
}
|
|
16
|
+
export declare enum KeyManagementSystemEnum {
|
|
17
|
+
LOCAL = "local"
|
|
18
|
+
}
|
|
4
19
|
export interface ResolveOpts {
|
|
5
20
|
jwtVerifyOpts?: JWTVerifyOptions;
|
|
6
21
|
resolver?: Resolvable;
|
|
@@ -18,5 +33,27 @@ export interface IIdentifierOpts {
|
|
|
18
33
|
verificationMethodSection?: DIDDocumentSection;
|
|
19
34
|
kid?: string;
|
|
20
35
|
}
|
|
36
|
+
export type IdentifierProviderOpts = {
|
|
37
|
+
type?: TKeyType;
|
|
38
|
+
use?: string;
|
|
39
|
+
[x: string]: any;
|
|
40
|
+
};
|
|
41
|
+
export type CreateIdentifierOpts = {
|
|
42
|
+
method: SupportedDidMethodEnum;
|
|
43
|
+
createOpts?: CreateIdentifierCreateOpts;
|
|
44
|
+
};
|
|
45
|
+
export type CreateIdentifierCreateOpts = {
|
|
46
|
+
kms?: KeyManagementSystemEnum;
|
|
47
|
+
alias?: string;
|
|
48
|
+
options?: IdentifierProviderOpts;
|
|
49
|
+
};
|
|
50
|
+
export type CreateOrGetIdentifierOpts = {
|
|
51
|
+
method: SupportedDidMethodEnum;
|
|
52
|
+
createOpts?: CreateIdentifierCreateOpts;
|
|
53
|
+
};
|
|
21
54
|
export declare const DID_PREFIX = "did:";
|
|
55
|
+
export interface GetOrCreateResult<T> {
|
|
56
|
+
created: boolean;
|
|
57
|
+
result: T;
|
|
58
|
+
}
|
|
22
59
|
//# sourceMappingURL=types.d.ts.map
|
package/dist/types.d.ts.map
CHANGED
|
@@ -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;
|
|
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"}
|
package/dist/types.js
CHANGED
|
@@ -1,5 +1,22 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.DID_PREFIX = void 0;
|
|
3
|
+
exports.DID_PREFIX = exports.KeyManagementSystemEnum = exports.IdentifierAliasEnum = exports.SupportedDidMethodEnum = void 0;
|
|
4
|
+
var SupportedDidMethodEnum;
|
|
5
|
+
(function (SupportedDidMethodEnum) {
|
|
6
|
+
SupportedDidMethodEnum["DID_ETHR"] = "ethr";
|
|
7
|
+
SupportedDidMethodEnum["DID_KEY"] = "key";
|
|
8
|
+
SupportedDidMethodEnum["DID_LTO"] = "lto";
|
|
9
|
+
SupportedDidMethodEnum["DID_ION"] = "ion";
|
|
10
|
+
SupportedDidMethodEnum["DID_EBSI"] = "ebsi";
|
|
11
|
+
SupportedDidMethodEnum["DID_JWK"] = "jwk";
|
|
12
|
+
})(SupportedDidMethodEnum || (exports.SupportedDidMethodEnum = SupportedDidMethodEnum = {}));
|
|
13
|
+
var IdentifierAliasEnum;
|
|
14
|
+
(function (IdentifierAliasEnum) {
|
|
15
|
+
IdentifierAliasEnum["PRIMARY"] = "primary";
|
|
16
|
+
})(IdentifierAliasEnum || (exports.IdentifierAliasEnum = IdentifierAliasEnum = {}));
|
|
17
|
+
var KeyManagementSystemEnum;
|
|
18
|
+
(function (KeyManagementSystemEnum) {
|
|
19
|
+
KeyManagementSystemEnum["LOCAL"] = "local";
|
|
20
|
+
})(KeyManagementSystemEnum || (exports.KeyManagementSystemEnum = KeyManagementSystemEnum = {}));
|
|
4
21
|
exports.DID_PREFIX = 'did:';
|
|
5
22
|
//# sourceMappingURL=types.js.map
|
package/dist/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":";;;
|
|
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"}
|
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.21.
|
|
4
|
+
"version": "0.21.1-next.16+c296418",
|
|
5
5
|
"source": "src/index.ts",
|
|
6
6
|
"main": "dist/index.js",
|
|
7
7
|
"types": "dist/index.d.ts",
|
|
@@ -10,9 +10,10 @@
|
|
|
10
10
|
"build:clean": "tsc --build --clean && tsc --build"
|
|
11
11
|
},
|
|
12
12
|
"dependencies": {
|
|
13
|
+
"@ethersproject/networks": "^5.7.1",
|
|
13
14
|
"@ethersproject/transactions": "^5.7.0",
|
|
14
15
|
"@sphereon/did-uni-client": "^0.6.3",
|
|
15
|
-
"@sphereon/ssi-sdk-ext.key-utils": "0.21.
|
|
16
|
+
"@sphereon/ssi-sdk-ext.key-utils": "0.21.1-next.16+c296418",
|
|
16
17
|
"@sphereon/ssi-sdk.core": "0.25.0",
|
|
17
18
|
"@stablelib/ed25519": "^1.0.3",
|
|
18
19
|
"@veramo/core": "4.2.0",
|
|
@@ -37,5 +38,5 @@
|
|
|
37
38
|
"author": "Sphereon <dev@sphereon.com>",
|
|
38
39
|
"license": "Apache-2.0",
|
|
39
40
|
"keywords": [],
|
|
40
|
-
"gitHead": "
|
|
41
|
+
"gitHead": "c2964184ad213d8b3ed35198a2beac5a58719dfc"
|
|
41
42
|
}
|
package/src/did-functions.ts
CHANGED
|
@@ -1,9 +1,18 @@
|
|
|
1
1
|
import { computeAddress } from '@ethersproject/transactions'
|
|
2
2
|
import { UniResolver } from '@sphereon/did-uni-client'
|
|
3
|
-
import { base64ToHex, ENC_KEY_ALGS, hexKeyFromPEMBasedJwk, JwkKeyUse, toJwk } from '@sphereon/ssi-sdk-ext.key-utils'
|
|
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 {
|
|
6
|
+
import {
|
|
7
|
+
DIDDocument,
|
|
8
|
+
DIDDocumentSection,
|
|
9
|
+
DIDResolutionResult,
|
|
10
|
+
IAgentContext,
|
|
11
|
+
IDIDManager,
|
|
12
|
+
IIdentifier,
|
|
13
|
+
IKey,
|
|
14
|
+
IResolver,
|
|
15
|
+
} from '@veramo/core'
|
|
7
16
|
import {
|
|
8
17
|
_ExtendedIKey,
|
|
9
18
|
_ExtendedVerificationMethod,
|
|
@@ -14,11 +23,99 @@ import {
|
|
|
14
23
|
isDefined,
|
|
15
24
|
mapIdentifierKeysToDoc,
|
|
16
25
|
} from '@veramo/utils'
|
|
17
|
-
import { DIDResolutionOptions, Resolvable, VerificationMethod
|
|
26
|
+
import { DIDResolutionOptions, JsonWebKey, Resolvable, VerificationMethod } from 'did-resolver'
|
|
18
27
|
// @ts-ignore
|
|
19
28
|
import elliptic from 'elliptic'
|
|
20
29
|
import * as u8a from 'uint8arrays'
|
|
21
|
-
import {
|
|
30
|
+
import {
|
|
31
|
+
CreateIdentifierOpts,
|
|
32
|
+
CreateOrGetIdentifierOpts,
|
|
33
|
+
DID_PREFIX,
|
|
34
|
+
GetOrCreateResult,
|
|
35
|
+
IdentifierAliasEnum,
|
|
36
|
+
IdentifierProviderOpts,
|
|
37
|
+
IDIDOptions,
|
|
38
|
+
IIdentifierOpts,
|
|
39
|
+
KeyManagementSystemEnum,
|
|
40
|
+
SupportedDidMethodEnum,
|
|
41
|
+
} from './types'
|
|
42
|
+
|
|
43
|
+
|
|
44
|
+
export const getAuthenticationKey = async (identifier: IIdentifier,
|
|
45
|
+
context: IAgentContext<IResolver & IDIDManager>,
|
|
46
|
+
offlineWhenNoDIDRegistered?: boolean,
|
|
47
|
+
noVerificationMethodFallback?: boolean): Promise<_ExtendedIKey> => {
|
|
48
|
+
|
|
49
|
+
let key: _ExtendedIKey | undefined = undefined
|
|
50
|
+
try {
|
|
51
|
+
key =
|
|
52
|
+
(await getFirstKeyWithRelation(identifier, context, 'authentication', false)) ??
|
|
53
|
+
(noVerificationMethodFallback ? undefined : await getFirstKeyWithRelation(identifier, context, 'verificationMethod', false))
|
|
54
|
+
} catch (e) {
|
|
55
|
+
if (e instanceof Error) {
|
|
56
|
+
if (!e.message.includes('404') || !offlineWhenNoDIDRegistered) {
|
|
57
|
+
throw e;
|
|
58
|
+
}
|
|
59
|
+
} else {
|
|
60
|
+
throw e;
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
if (!key && offlineWhenNoDIDRegistered) {
|
|
64
|
+
const offlineDID = toDidDocument(identifier)
|
|
65
|
+
key =
|
|
66
|
+
(await getFirstKeyWithRelation(identifier, context, 'authentication', false, offlineDID)) ??
|
|
67
|
+
(noVerificationMethodFallback ? undefined : await getFirstKeyWithRelation(identifier, context, 'verificationMethod', false, offlineDID))
|
|
68
|
+
if (!key) {
|
|
69
|
+
key = identifier.keys
|
|
70
|
+
.map((key) => key as _ExtendedIKey)
|
|
71
|
+
.find((key) => key.meta.verificationMethod?.type.includes('authentication') || key.meta.purposes?.includes('authentication'))
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
if (!key) {
|
|
75
|
+
throw Error(`Could not find authentication key for DID ${identifier.did}`)
|
|
76
|
+
}
|
|
77
|
+
return key
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
export const getOrCreatePrimaryIdentifier = async (context: IAgentContext<IDIDManager>, opts?: CreateOrGetIdentifierOpts): Promise<GetOrCreateResult<IIdentifier>> => {
|
|
81
|
+
const primaryIdentifier = await getPrimaryIdentifier(context, opts?.createOpts?.options)
|
|
82
|
+
if (primaryIdentifier !== undefined) {
|
|
83
|
+
return {
|
|
84
|
+
created: false,
|
|
85
|
+
result: primaryIdentifier,
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
if (opts?.method === SupportedDidMethodEnum.DID_KEY) {
|
|
90
|
+
const createOpts = opts?.createOpts ?? {}
|
|
91
|
+
createOpts.options = { codecName: 'EBSI', type: 'Secp256r1', ...createOpts }
|
|
92
|
+
opts.createOpts = createOpts
|
|
93
|
+
}
|
|
94
|
+
const createdIdentifier = await createIdentifier(context, opts)
|
|
95
|
+
return {
|
|
96
|
+
created: true,
|
|
97
|
+
result: createdIdentifier,
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
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),
|
|
105
|
+
)
|
|
106
|
+
|
|
107
|
+
return (identifiers && identifiers.length > 0) ? identifiers[0] : undefined
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
export const createIdentifier = async (context: IAgentContext<IDIDManager>, opts?: CreateIdentifierOpts): Promise<IIdentifier> => {
|
|
111
|
+
const identifier = await context.agent.didManagerCreate({
|
|
112
|
+
kms: opts?.createOpts?.kms ?? KeyManagementSystemEnum.LOCAL,
|
|
113
|
+
...(opts?.method && { provider: `${DID_PREFIX}:${opts?.method}` }),
|
|
114
|
+
alias: opts?.createOpts?.alias ?? `${IdentifierAliasEnum.PRIMARY}-${opts?.method}-${opts?.createOpts?.options?.type}-${new Date().toUTCString()}`,
|
|
115
|
+
options: opts?.createOpts?.options,
|
|
116
|
+
})
|
|
117
|
+
return identifier
|
|
118
|
+
}
|
|
22
119
|
|
|
23
120
|
export const getFirstKeyWithRelation = async (
|
|
24
121
|
identifier: IIdentifier,
|
|
@@ -38,6 +135,48 @@ export const getFirstKeyWithRelation = async (
|
|
|
38
135
|
return undefined
|
|
39
136
|
}
|
|
40
137
|
|
|
138
|
+
export const getEthereumAddressFromKey = ({ key }: { key: IKey }) => {
|
|
139
|
+
if (key.type !== 'Secp256k1') {
|
|
140
|
+
throw Error(`Can only get ethereum address from a Secp256k1 key. Type is ${key.type} for kid: ${key.kid}`)
|
|
141
|
+
}
|
|
142
|
+
const ethereumAddress = key.meta?.ethereumAddress ?? key.meta?.account?.toLowerCase() ?? computeAddress(`0x${key.publicKeyHex}`).toLowerCase()
|
|
143
|
+
if (!ethereumAddress) {
|
|
144
|
+
throw Error(`Could not get or generate ethereum address from key ${key.kid}`)
|
|
145
|
+
}
|
|
146
|
+
return ethereumAddress
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
export const getControllerKey = ({ identifier }: { identifier: IIdentifier }) => {
|
|
150
|
+
const key = identifier.keys.find((key) => key.kid === identifier.controllerKeyId)
|
|
151
|
+
if (!key) {
|
|
152
|
+
throw Error(`Could not get controller key for identifier ${identifier}`)
|
|
153
|
+
}
|
|
154
|
+
return key
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
export const getKeys = ({
|
|
158
|
+
jwkThumbprint,
|
|
159
|
+
kms,
|
|
160
|
+
identifier,
|
|
161
|
+
kid,
|
|
162
|
+
keyType,
|
|
163
|
+
controllerKey,
|
|
164
|
+
}: {
|
|
165
|
+
identifier: IIdentifier
|
|
166
|
+
kid?: string
|
|
167
|
+
keyType?: TKeyType
|
|
168
|
+
kms?: string
|
|
169
|
+
jwkThumbprint?: string
|
|
170
|
+
controllerKey?: boolean
|
|
171
|
+
}) => {
|
|
172
|
+
return identifier.keys
|
|
173
|
+
.filter((key) => !keyType || key.type === keyType)
|
|
174
|
+
.filter((key) => !kms || key.kms === kms)
|
|
175
|
+
.filter((key) => !kid || key.kid === kid)
|
|
176
|
+
.filter((key) => !jwkThumbprint || key.meta?.jwkThumbprint === jwkThumbprint)
|
|
177
|
+
.filter((key) => !controllerKey || identifier.controllerKeyId === key.kid)
|
|
178
|
+
}
|
|
179
|
+
|
|
41
180
|
//TODO: Move to ssi-sdk/core and create PR upstream
|
|
42
181
|
/**
|
|
43
182
|
* Dereferences keys from DID document and normalizes them for easy comparison.
|
|
@@ -127,6 +266,7 @@ export function isEvenHexString(hex: string) {
|
|
|
127
266
|
const lastChar = hex[hex.length - 1].toLowerCase()
|
|
128
267
|
return ['0', '2', '4', '6', '8', 'a', 'c', 'e'].includes(lastChar)
|
|
129
268
|
}
|
|
269
|
+
|
|
130
270
|
interface LegacyVerificationMethod extends VerificationMethod {
|
|
131
271
|
publicKeyBase64: string
|
|
132
272
|
}
|
|
@@ -228,8 +368,8 @@ export async function mapIdentifierKeysToDocWithJwkSupport(
|
|
|
228
368
|
const extendedKeys: _ExtendedIKey[] = documentKeys
|
|
229
369
|
.map((verificationMethod) => {
|
|
230
370
|
/*if (verificationMethod.type !== 'JsonWebKey2020') {
|
|
231
|
-
|
|
232
|
-
|
|
371
|
+
return null
|
|
372
|
+
}*/
|
|
233
373
|
const localKey = localKeys.find(
|
|
234
374
|
(localKey) =>
|
|
235
375
|
localKey.publicKeyHex === verificationMethod.publicKeyHex ||
|
|
@@ -323,21 +463,41 @@ export async function getKey(
|
|
|
323
463
|
if (!identifier) {
|
|
324
464
|
return Promise.reject(new Error(`No identifier provided to getKey method!`))
|
|
325
465
|
}
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
466
|
+
// normalize to kid, in case keyId was passed in as did#vm or #vm
|
|
467
|
+
const kidVals = keyId?.split(`#`)
|
|
468
|
+
const kid = kidVals ? (kidVals?.length === 2 ? kidVals[1] : kidVals[0]) : undefined
|
|
469
|
+
let identifierKey = keyId ? identifier.keys.find((key: IKey) => key.kid === kid || key?.meta?.jwkThumbprint === kid) : undefined
|
|
470
|
+
if (!identifierKey) {
|
|
471
|
+
const keys = await mapIdentifierKeysToDocWithJwkSupport(identifier, verificationMethodSection, context)
|
|
472
|
+
if (!keys || keys.length === 0) {
|
|
473
|
+
throw new Error(`No keys found for verificationMethodSection: ${verificationMethodSection} and did ${identifier.did}`)
|
|
474
|
+
}
|
|
475
|
+
if (keyId) {
|
|
476
|
+
identifierKey = keys.find(
|
|
477
|
+
(key: _ExtendedIKey) => key.meta.verificationMethod?.id === keyId || (kid && key.meta.verificationMethod?.id?.includes(kid))
|
|
478
|
+
)
|
|
479
|
+
}
|
|
480
|
+
if (!identifierKey) {
|
|
481
|
+
identifierKey = keys.find(
|
|
482
|
+
(key: _ExtendedIKey) =>
|
|
483
|
+
key.meta.verificationMethod?.type === verificationMethodSection || key.meta.purposes?.includes(verificationMethodSection)
|
|
484
|
+
)
|
|
485
|
+
}
|
|
486
|
+
if (!identifierKey) {
|
|
487
|
+
identifierKey = keys[0]
|
|
488
|
+
}
|
|
329
489
|
}
|
|
330
|
-
|
|
331
|
-
const identifierKey = keyId ? keys.find((key: _ExtendedIKey) => key.kid === keyId || key.meta.verificationMethod.id === keyId) : keys[0]
|
|
332
490
|
if (!identifierKey) {
|
|
333
|
-
throw new Error(
|
|
491
|
+
throw new Error(
|
|
492
|
+
`No matching verificationMethodSection key found for keyId: ${keyId} and vmSection: ${verificationMethodSection} for id ${identifier.did}`
|
|
493
|
+
)
|
|
334
494
|
}
|
|
335
495
|
|
|
336
496
|
return identifierKey
|
|
337
497
|
}
|
|
338
498
|
|
|
339
499
|
export function determineKid(key: IKey, idOpts: IIdentifierOpts): string {
|
|
340
|
-
return key.meta?.verificationMethod
|
|
500
|
+
return key.meta?.verificationMethod?.id ?? idOpts.kid ?? key.kid
|
|
341
501
|
}
|
|
342
502
|
|
|
343
503
|
export async function getSupportedDIDMethods(didOpts: IDIDOptions, context: IAgentContext<IDIDManager>) {
|
|
@@ -440,6 +600,16 @@ export class AgentDIDResolver implements Resolvable {
|
|
|
440
600
|
}
|
|
441
601
|
}
|
|
442
602
|
|
|
603
|
+
/**
|
|
604
|
+
* Please note that this is not an exact representation of the actual DID Document.
|
|
605
|
+
*
|
|
606
|
+
* We try to do our best, to map keys onto relevant verification methods and relationships, but we simply lack the context
|
|
607
|
+
* of the actual DID method here. Do not relly on this method for DID resolution. It is only handy for offline use cases
|
|
608
|
+
* when no DID Document is cached.
|
|
609
|
+
*
|
|
610
|
+
* @param identifier
|
|
611
|
+
* @param opts
|
|
612
|
+
*/
|
|
443
613
|
export function toDidDocument(
|
|
444
614
|
identifier?: IIdentifier,
|
|
445
615
|
opts?: {
|
|
@@ -467,18 +637,41 @@ export function toDidDocument(
|
|
|
467
637
|
}),
|
|
468
638
|
...((!opts?.use || opts?.use?.includes(JwkKeyUse.Signature)) &&
|
|
469
639
|
identifier.keys && {
|
|
470
|
-
assertionMethod: identifier.keys
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
|
|
640
|
+
assertionMethod: identifier.keys
|
|
641
|
+
.filter((key) => key?.meta?.purpose || key?.meta?.purpose === 'assertionMethod')
|
|
642
|
+
.map((key) => {
|
|
643
|
+
return `${did}#${key.kid}`
|
|
644
|
+
}),
|
|
645
|
+
authentication: identifier.keys
|
|
646
|
+
.filter((key) => key?.meta?.purpose || key?.meta?.purpose === 'authentication')
|
|
647
|
+
.map((key) => {
|
|
648
|
+
return `${did}#${key.kid}`
|
|
649
|
+
}),
|
|
476
650
|
}),
|
|
477
651
|
...((!opts?.use || opts?.use?.includes(JwkKeyUse.Encryption)) &&
|
|
478
|
-
identifier.keys &&
|
|
479
|
-
identifier.keys.filter((key) => key.type === 'X25519').length > 0 && {
|
|
652
|
+
identifier.keys && {
|
|
480
653
|
keyAgreement: identifier.keys
|
|
481
|
-
.filter((key) => key.type === 'X25519')
|
|
654
|
+
.filter((key) => key.type === 'X25519' || key?.meta?.purpose === 'keyAgreement')
|
|
655
|
+
.map((key) => {
|
|
656
|
+
if (key.kid.startsWith(did) && key.kid.includes('#')) {
|
|
657
|
+
return key.kid
|
|
658
|
+
}
|
|
659
|
+
return `${did}#${key.kid}`
|
|
660
|
+
}),
|
|
661
|
+
} &&
|
|
662
|
+
identifier.keys && {
|
|
663
|
+
capabilityInvocation: identifier.keys
|
|
664
|
+
.filter((key) => key.type === 'X25519' || key?.meta?.purpose === 'capabilityInvocation')
|
|
665
|
+
.map((key) => {
|
|
666
|
+
if (key.kid.startsWith(did) && key.kid.includes('#')) {
|
|
667
|
+
return key.kid
|
|
668
|
+
}
|
|
669
|
+
return `${did}#${key.kid}`
|
|
670
|
+
}),
|
|
671
|
+
} &&
|
|
672
|
+
identifier.keys && {
|
|
673
|
+
capabilityDelegation: identifier.keys
|
|
674
|
+
.filter((key) => key.type === 'X25519' || key?.meta?.purpose === 'capabilityDelegation')
|
|
482
675
|
.map((key) => {
|
|
483
676
|
if (key.kid.startsWith(did) && key.kid.includes('#')) {
|
|
484
677
|
return key.kid
|
package/src/types.ts
CHANGED
|
@@ -1,6 +1,24 @@
|
|
|
1
1
|
import { JWTVerifyOptions } from 'did-jwt'
|
|
2
2
|
import { Resolvable } from 'did-resolver'
|
|
3
3
|
import { DIDDocumentSection, IIdentifier } from '@veramo/core'
|
|
4
|
+
import { TKeyType } from '@sphereon/ssi-sdk-ext.key-utils'
|
|
5
|
+
|
|
6
|
+
export enum SupportedDidMethodEnum {
|
|
7
|
+
DID_ETHR = 'ethr',
|
|
8
|
+
DID_KEY = 'key',
|
|
9
|
+
DID_LTO = 'lto',
|
|
10
|
+
DID_ION = 'ion',
|
|
11
|
+
DID_EBSI = 'ebsi',
|
|
12
|
+
DID_JWK = 'jwk',
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
export enum IdentifierAliasEnum {
|
|
16
|
+
PRIMARY = 'primary',
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
export enum KeyManagementSystemEnum {
|
|
20
|
+
LOCAL = 'local',
|
|
21
|
+
}
|
|
4
22
|
|
|
5
23
|
export interface ResolveOpts {
|
|
6
24
|
jwtVerifyOpts?: JWTVerifyOptions
|
|
@@ -22,4 +40,31 @@ export interface IIdentifierOpts {
|
|
|
22
40
|
kid?: string
|
|
23
41
|
}
|
|
24
42
|
|
|
43
|
+
export type IdentifierProviderOpts = {
|
|
44
|
+
type?: TKeyType
|
|
45
|
+
use?: string
|
|
46
|
+
[x: string]: any
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
export type CreateIdentifierOpts = {
|
|
50
|
+
method: SupportedDidMethodEnum
|
|
51
|
+
createOpts?: CreateIdentifierCreateOpts
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
export type CreateIdentifierCreateOpts = {
|
|
55
|
+
kms?: KeyManagementSystemEnum
|
|
56
|
+
alias?: string
|
|
57
|
+
options?: IdentifierProviderOpts
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
export type CreateOrGetIdentifierOpts = {
|
|
61
|
+
method: SupportedDidMethodEnum
|
|
62
|
+
createOpts?: CreateIdentifierCreateOpts
|
|
63
|
+
}
|
|
64
|
+
|
|
25
65
|
export const DID_PREFIX = 'did:'
|
|
66
|
+
|
|
67
|
+
export interface GetOrCreateResult<T> {
|
|
68
|
+
created: boolean
|
|
69
|
+
result: T
|
|
70
|
+
}
|