@sphereon/ssi-sdk.ebsi-support 0.27.0 → 0.27.1-next.10
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/agent/EbsiSupport.d.ts +1 -0
- package/dist/agent/EbsiSupport.d.ts.map +1 -1
- package/dist/agent/EbsiSupport.js +207 -186
- package/dist/agent/EbsiSupport.js.map +1 -1
- package/dist/did/EbsiDidProvider.d.ts.map +1 -1
- package/dist/did/EbsiDidProvider.js +173 -136
- package/dist/did/EbsiDidProvider.js.map +1 -1
- package/dist/did/EbsiDidResolver.js +19 -6
- package/dist/did/EbsiDidResolver.js.map +1 -1
- package/dist/did/functions.d.ts.map +1 -1
- package/dist/did/functions.js +158 -120
- package/dist/did/functions.js.map +1 -1
- package/dist/did/index.js +28 -5
- package/dist/did/index.js.map +1 -1
- package/dist/did/services/EbsiRPCService.js +36 -20
- package/dist/did/services/EbsiRPCService.js.map +1 -1
- package/dist/did/services/EbsiRestService.js +37 -19
- package/dist/did/services/EbsiRestService.js.map +1 -1
- package/dist/did/types.d.ts +2 -1
- package/dist/did/types.d.ts.map +1 -1
- package/dist/did/types.js +10 -7
- package/dist/did/types.js.map +1 -1
- package/dist/functions/Attestation.js +79 -69
- package/dist/functions/Attestation.js.map +1 -1
- package/dist/functions/AttestationHeadlessCallbacks.js +91 -72
- package/dist/functions/AttestationHeadlessCallbacks.js.map +1 -1
- package/dist/functions/index.js +32 -4
- package/dist/functions/index.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +26 -6
- package/dist/index.js.map +1 -1
- package/dist/types/IEbsiSupport.js +5 -2
- package/dist/types/IEbsiSupport.js.map +1 -1
- package/package.json +13 -12
- package/plugin.schema.json +2030 -0
- package/src/agent/EbsiSupport.ts +10 -0
- package/src/did/EbsiDidProvider.ts +18 -1
- package/src/did/functions.ts +2 -1
- package/src/did/types.ts +2 -1
- package/src/index.ts +1 -1
package/dist/did/functions.js
CHANGED
|
@@ -1,27 +1,64 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
25
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
26
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
27
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
28
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
29
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
30
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
31
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
32
|
+
});
|
|
33
|
+
};
|
|
34
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
35
|
+
exports.ebsiCreateDidOnLedger = exports.randomRpcId = exports.setDefaultPurposes = exports.assertedPurposes = exports.toMinimalImportableKey = exports.ebsiGenerateOrUseKeyPair = exports.ebsiSignAndSendTransaction = exports.determineWellknownEndpoint = exports.ebsiGetRegistryAPIUrls = exports.ebsiGetAuthorisationServer = exports.ebsiGetIssuerMock = exports.formatEbsiPublicKey = exports.generateOrUseProvidedEbsiPrivateKeyHex = exports.generateEbsiMethodSpecificId = void 0;
|
|
36
|
+
const random_1 = require("@ethersproject/random");
|
|
37
|
+
const oid4vci_common_1 = require("@sphereon/oid4vci-common");
|
|
38
|
+
const ssi_sdk_ext_did_utils_1 = require("@sphereon/ssi-sdk-ext.did-utils");
|
|
39
|
+
const ssi_sdk_ext_key_utils_1 = require("@sphereon/ssi-sdk-ext.key-utils");
|
|
40
|
+
const ethers_1 = require("ethers");
|
|
41
|
+
const base58_1 = require("multiformats/bases/base58");
|
|
42
|
+
const u8a = __importStar(require("uint8arrays"));
|
|
43
|
+
const functions_1 = require("../functions");
|
|
44
|
+
const index_1 = require("../index");
|
|
45
|
+
const EbsiRestService_1 = require("./services/EbsiRestService");
|
|
46
|
+
const EbsiRPCService_1 = require("./services/EbsiRPCService");
|
|
47
|
+
const types_1 = require("./types");
|
|
48
|
+
function generateEbsiMethodSpecificId(specInfo) {
|
|
49
|
+
var _a;
|
|
50
|
+
const spec = specInfo !== null && specInfo !== void 0 ? specInfo : types_1.EBSI_DID_SPEC_INFOS.V1;
|
|
51
|
+
const length = (_a = spec.didLength) !== null && _a !== void 0 ? _a : 16;
|
|
16
52
|
const result = new Uint8Array(length + (spec.version ? 1 : 0));
|
|
17
53
|
if (spec.version) {
|
|
18
54
|
result.set([spec.version]);
|
|
19
55
|
}
|
|
20
|
-
result.set(randomBytes(length), spec.version ? 1 : 0);
|
|
21
|
-
return base58btc.encode(result);
|
|
56
|
+
result.set((0, random_1.randomBytes)(length), spec.version ? 1 : 0);
|
|
57
|
+
return base58_1.base58btc.encode(result);
|
|
22
58
|
}
|
|
23
|
-
|
|
24
|
-
|
|
59
|
+
exports.generateEbsiMethodSpecificId = generateEbsiMethodSpecificId;
|
|
60
|
+
function generateOrUseProvidedEbsiPrivateKeyHex(specInfo, privateKeyBytes) {
|
|
61
|
+
const spec = specInfo !== null && specInfo !== void 0 ? specInfo : types_1.EBSI_DID_SPEC_INFOS.V1;
|
|
25
62
|
const length = spec.didLength ? 2 * spec.didLength : 32;
|
|
26
63
|
if (privateKeyBytes) {
|
|
27
64
|
if (privateKeyBytes.length !== length) {
|
|
@@ -29,8 +66,9 @@ export function generateOrUseProvidedEbsiPrivateKeyHex(specInfo, privateKeyBytes
|
|
|
29
66
|
}
|
|
30
67
|
return u8a.toString(privateKeyBytes, 'base16');
|
|
31
68
|
}
|
|
32
|
-
return u8a.toString(randomBytes(length), 'base16');
|
|
69
|
+
return u8a.toString((0, random_1.randomBytes)(length), 'base16');
|
|
33
70
|
}
|
|
71
|
+
exports.generateOrUseProvidedEbsiPrivateKeyHex = generateOrUseProvidedEbsiPrivateKeyHex;
|
|
34
72
|
/**
|
|
35
73
|
* Returns the public key in the correct format to be used with the did registry v5
|
|
36
74
|
* - in case of Secp256k1 - returns the uncompressed public key as hex string prefixed with 0x04
|
|
@@ -41,19 +79,19 @@ export function generateOrUseProvidedEbsiPrivateKeyHex(specInfo, privateKeyBytes
|
|
|
41
79
|
* @returns {string} The properly formatted public key
|
|
42
80
|
* @throws {Error} If the key type is invalid
|
|
43
81
|
*/
|
|
44
|
-
|
|
82
|
+
const formatEbsiPublicKey = (args) => {
|
|
45
83
|
const { key, type } = args;
|
|
46
84
|
switch (type) {
|
|
47
85
|
case 'Secp256k1': {
|
|
48
|
-
const bytes = getBytes('0x' + key.publicKeyHex, 'key');
|
|
49
|
-
return SigningKey.computePublicKey(bytes, false);
|
|
86
|
+
const bytes = (0, ethers_1.getBytes)('0x' + key.publicKeyHex, 'key');
|
|
87
|
+
return ethers_1.SigningKey.computePublicKey(bytes, false);
|
|
50
88
|
}
|
|
51
89
|
case 'Secp256r1': {
|
|
52
90
|
/*
|
|
53
91
|
Public key as hex string. For an ES256K key, it must be in uncompressed format prefixed with "0x04".
|
|
54
92
|
For other algorithms, it must be the JWK transformed to string and then to hex format.
|
|
55
93
|
*/
|
|
56
|
-
const jwk = toJwk(key.publicKeyHex, type, { use: JwkKeyUse.Signature, key });
|
|
94
|
+
const jwk = (0, ssi_sdk_ext_key_utils_1.toJwk)(key.publicKeyHex, type, { use: ssi_sdk_ext_key_utils_1.JwkKeyUse.Signature, key });
|
|
57
95
|
/*
|
|
58
96
|
Converting JWK to string and then hex is odd and may lead to errors. Implementing
|
|
59
97
|
it like that because it's how EBSI does it. However, it may be a point of pain
|
|
@@ -66,33 +104,39 @@ export const formatEbsiPublicKey = (args) => {
|
|
|
66
104
|
throw new Error(`Unsupported key type: ${type}`);
|
|
67
105
|
}
|
|
68
106
|
};
|
|
69
|
-
|
|
107
|
+
exports.formatEbsiPublicKey = formatEbsiPublicKey;
|
|
108
|
+
const ebsiGetIssuerMock = (args) => {
|
|
70
109
|
const { environment = 'conformance', version = 'v3' } = args;
|
|
71
110
|
if (environment === 'pilot') {
|
|
72
111
|
throw Error(`EBSI Pilot network does not have a issuer mock server`);
|
|
73
112
|
}
|
|
74
|
-
return `${getEbsiApiBaseUrl({ environment, version, system: environment })}/issuer-mock`;
|
|
113
|
+
return `${(0, functions_1.getEbsiApiBaseUrl)({ environment, version, system: environment })}/issuer-mock`;
|
|
75
114
|
};
|
|
76
|
-
|
|
115
|
+
exports.ebsiGetIssuerMock = ebsiGetIssuerMock;
|
|
116
|
+
const ebsiGetAuthorisationServer = (args) => {
|
|
77
117
|
const { environment = 'pilot', version = 'v4' } = args;
|
|
78
|
-
return `${getEbsiApiBaseUrl({ environment, version, system: 'authorisation' })}`;
|
|
118
|
+
return `${(0, functions_1.getEbsiApiBaseUrl)({ environment, version, system: 'authorisation' })}`;
|
|
79
119
|
};
|
|
80
|
-
|
|
120
|
+
exports.ebsiGetAuthorisationServer = ebsiGetAuthorisationServer;
|
|
121
|
+
const ebsiGetRegistryAPIUrls = (args) => {
|
|
81
122
|
const { environment = 'pilot', version = 'v5' } = args;
|
|
82
|
-
const baseUrl = `${getEbsiApiBaseUrl({ environment, version, system: 'did-registry' })}`;
|
|
123
|
+
const baseUrl = `${(0, functions_1.getEbsiApiBaseUrl)({ environment, version, system: 'did-registry' })}`;
|
|
83
124
|
return {
|
|
84
125
|
mutate: `${baseUrl}/jsonrpc`,
|
|
85
126
|
query: `${baseUrl}/identifiers`,
|
|
86
127
|
};
|
|
87
128
|
};
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
129
|
+
exports.ebsiGetRegistryAPIUrls = ebsiGetRegistryAPIUrls;
|
|
130
|
+
const determineWellknownEndpoint = ({ environment, version, type, system = environment, mock }) => {
|
|
131
|
+
const url = `${(0, functions_1.getEbsiApiBaseUrl)({ environment, version, system })}${mock ? `/${mock}` : ''}/.well-known/${type}`;
|
|
132
|
+
index_1.logger.debug(`wellknown url: ${url}`);
|
|
91
133
|
return url;
|
|
92
134
|
};
|
|
93
|
-
|
|
135
|
+
exports.determineWellknownEndpoint = determineWellknownEndpoint;
|
|
136
|
+
const ebsiSignAndSendTransaction = (args, context) => __awaiter(void 0, void 0, void 0, function* () {
|
|
137
|
+
var _a;
|
|
94
138
|
const { rpcRequest, accessToken, kid, apiOpts, previousTxResponse } = args;
|
|
95
|
-
const unsignedTxResponse =
|
|
139
|
+
const unsignedTxResponse = yield (0, EbsiRPCService_1.callRpcMethod)(rpcRequest);
|
|
96
140
|
const nonce = 'result' in unsignedTxResponse ? unsignedTxResponse.result.nonce : undefined;
|
|
97
141
|
// We should get a new nonce once the actual previous transaction has been anchored. Thus we retry if the nonce remains the same
|
|
98
142
|
if (previousTxResponse &&
|
|
@@ -101,12 +145,12 @@ export const ebsiSignAndSendTransaction = async (args, context) => {
|
|
|
101
145
|
'nonce' in unsignedTxResponse.result &&
|
|
102
146
|
typeof unsignedTxResponse.result === 'object' &&
|
|
103
147
|
previousTxResponse.nonce === unsignedTxResponse.result.nonce) {
|
|
104
|
-
|
|
105
|
-
return
|
|
148
|
+
yield (0, functions_1.wait)(1000);
|
|
149
|
+
return yield (0, exports.ebsiSignAndSendTransaction)(Object.assign(Object.assign({}, args), { previousTxResponse }), context);
|
|
106
150
|
}
|
|
107
151
|
if ('error' in unsignedTxResponse && !!unsignedTxResponse.error) {
|
|
108
|
-
logger.error(JSON.stringify(unsignedTxResponse));
|
|
109
|
-
throw new Error(unsignedTxResponse.error.message
|
|
152
|
+
index_1.logger.error(JSON.stringify(unsignedTxResponse));
|
|
153
|
+
throw new Error((_a = unsignedTxResponse.error.message) !== null && _a !== void 0 ? _a : 'Unknown error occurred');
|
|
110
154
|
}
|
|
111
155
|
const unsignedTx = unsignedTxResponse.result;
|
|
112
156
|
const agentUnsignedTx = JSON.parse(JSON.stringify(unsignedTx));
|
|
@@ -114,13 +158,13 @@ export const ebsiSignAndSendTransaction = async (args, context) => {
|
|
|
114
158
|
// We expect the chain id to be a regular number and not a hex string
|
|
115
159
|
agentUnsignedTx.chainId = Number.parseInt(unsignedTx.chainId, 16);
|
|
116
160
|
}
|
|
117
|
-
const signedRawTx =
|
|
161
|
+
const signedRawTx = yield context.agent.keyManagerSignEthTX({
|
|
118
162
|
kid,
|
|
119
163
|
transaction: agentUnsignedTx,
|
|
120
164
|
});
|
|
121
|
-
const sig = Transaction.from(signedRawTx).signature;
|
|
165
|
+
const sig = ethers_1.Transaction.from(signedRawTx).signature;
|
|
122
166
|
const { r, s, v } = sig;
|
|
123
|
-
const sTResponse =
|
|
167
|
+
const sTResponse = yield (0, EbsiRPCService_1.callRpcMethod)({
|
|
124
168
|
params: [
|
|
125
169
|
{
|
|
126
170
|
protocol: 'eth',
|
|
@@ -131,7 +175,7 @@ export const ebsiSignAndSendTransaction = async (args, context) => {
|
|
|
131
175
|
signedRawTransaction: signedRawTx,
|
|
132
176
|
},
|
|
133
177
|
],
|
|
134
|
-
rpcMethod: EbsiRpcMethod.SEND_SIGNED_TRANSACTION,
|
|
178
|
+
rpcMethod: types_1.EbsiRpcMethod.SEND_SIGNED_TRANSACTION,
|
|
135
179
|
rpcId: unsignedTxResponse.id,
|
|
136
180
|
apiOpts,
|
|
137
181
|
accessToken: accessToken,
|
|
@@ -139,128 +183,135 @@ export const ebsiSignAndSendTransaction = async (args, context) => {
|
|
|
139
183
|
if ('status' in sTResponse) {
|
|
140
184
|
throw new Error(JSON.stringify(sTResponse, null, 2));
|
|
141
185
|
}
|
|
142
|
-
return {
|
|
143
|
-
};
|
|
144
|
-
|
|
186
|
+
return Object.assign(Object.assign({}, sTResponse), { nonce });
|
|
187
|
+
});
|
|
188
|
+
exports.ebsiSignAndSendTransaction = ebsiSignAndSendTransaction;
|
|
189
|
+
const ebsiGenerateOrUseKeyPair = (args, context) => __awaiter(void 0, void 0, void 0, function* () {
|
|
145
190
|
const { keyOpts, keyType, kms, controllerKey = false } = args;
|
|
146
|
-
let privateKeyHex = generateOrUseProvidedEbsiPrivateKeyHex(EBSI_DID_SPEC_INFOS.V1, keyOpts
|
|
191
|
+
let privateKeyHex = generateOrUseProvidedEbsiPrivateKeyHex(types_1.EBSI_DID_SPEC_INFOS.V1, (keyOpts === null || keyOpts === void 0 ? void 0 : keyOpts.privateKeyHex) ? u8a.fromString(keyOpts.privateKeyHex, 'base16') : undefined);
|
|
147
192
|
if (privateKeyHex.startsWith('0x')) {
|
|
148
193
|
privateKeyHex = privateKeyHex.substring(2);
|
|
149
194
|
}
|
|
150
195
|
if (!privateKeyHex || privateKeyHex.length !== 64) {
|
|
151
196
|
throw new Error('Private key should be 32 bytes / 64 chars hex');
|
|
152
197
|
}
|
|
153
|
-
const importableKey =
|
|
198
|
+
const importableKey = yield (0, exports.toMinimalImportableKey)({ key: Object.assign(Object.assign({}, keyOpts), { privateKeyHex }), type: keyType, kms });
|
|
154
199
|
if (keyType === 'Secp256k1') {
|
|
155
|
-
importableKey.meta = {
|
|
156
|
-
...importableKey.meta,
|
|
157
|
-
ebsi: {
|
|
200
|
+
importableKey.meta = Object.assign(Object.assign({}, importableKey.meta), { ebsi: {
|
|
158
201
|
anchored: false,
|
|
159
202
|
controllerKey,
|
|
160
|
-
}
|
|
161
|
-
};
|
|
203
|
+
} });
|
|
162
204
|
}
|
|
163
205
|
return importableKey;
|
|
164
|
-
};
|
|
165
|
-
|
|
206
|
+
});
|
|
207
|
+
exports.ebsiGenerateOrUseKeyPair = ebsiGenerateOrUseKeyPair;
|
|
208
|
+
const toMinimalImportableKey = (args) => __awaiter(void 0, void 0, void 0, function* () {
|
|
209
|
+
var _b, _c, _d;
|
|
166
210
|
const { key, kms } = args;
|
|
167
|
-
const minimalImportableKey = {
|
|
168
|
-
const type = args.key
|
|
211
|
+
const minimalImportableKey = Object.assign({}, key);
|
|
212
|
+
const type = (_c = (_b = args.key) === null || _b === void 0 ? void 0 : _b.type) !== null && _c !== void 0 ? _c : args.type;
|
|
169
213
|
minimalImportableKey.kms = kms;
|
|
170
214
|
minimalImportableKey.type = type;
|
|
171
215
|
if (!minimalImportableKey.privateKeyHex) {
|
|
172
216
|
throw Error(`Minimal importable key needs a private key`);
|
|
173
217
|
}
|
|
174
218
|
minimalImportableKey.meta = {
|
|
175
|
-
purposes: assertedPurposes({ key })
|
|
176
|
-
jwkThumbprint: calculateJwkThumbprintForKey({
|
|
219
|
+
purposes: (_d = (0, exports.assertedPurposes)({ key })) !== null && _d !== void 0 ? _d : (0, exports.setDefaultPurposes)({ key, type }),
|
|
220
|
+
jwkThumbprint: (0, ssi_sdk_ext_key_utils_1.calculateJwkThumbprintForKey)({
|
|
177
221
|
key: minimalImportableKey,
|
|
178
222
|
digestAlgorithm: 'sha256',
|
|
179
223
|
}),
|
|
180
224
|
};
|
|
181
225
|
return minimalImportableKey;
|
|
182
|
-
};
|
|
183
|
-
|
|
226
|
+
});
|
|
227
|
+
exports.toMinimalImportableKey = toMinimalImportableKey;
|
|
228
|
+
const assertedPurposes = (args) => {
|
|
229
|
+
var _a;
|
|
184
230
|
const { key } = args;
|
|
185
|
-
if (key
|
|
231
|
+
if ((key === null || key === void 0 ? void 0 : key.purposes) && key.purposes.length > 0) {
|
|
186
232
|
switch (key.type) {
|
|
187
233
|
case 'Secp256k1': {
|
|
188
|
-
if (key
|
|
234
|
+
if ((key === null || key === void 0 ? void 0 : key.purposes) && key.purposes.length > 0 && ((_a = key.purposes) === null || _a === void 0 ? void 0 : _a.includes(types_1.EbsiPublicKeyPurpose.CapabilityInvocation))) {
|
|
189
235
|
return key.purposes;
|
|
190
236
|
}
|
|
191
|
-
throw new Error(`Secp256k1/ES256K key requires ${EbsiPublicKeyPurpose.CapabilityInvocation} purpose`);
|
|
237
|
+
throw new Error(`Secp256k1/ES256K key requires ${types_1.EbsiPublicKeyPurpose.CapabilityInvocation} purpose`);
|
|
192
238
|
}
|
|
193
239
|
case 'Secp256r1': {
|
|
194
|
-
if (key
|
|
240
|
+
if ((key === null || key === void 0 ? void 0 : key.purposes) &&
|
|
195
241
|
key.purposes.length > 0 &&
|
|
196
|
-
key.purposes.
|
|
242
|
+
key.purposes.includes(types_1.EbsiPublicKeyPurpose.AssertionMethod) &&
|
|
243
|
+
key.purposes.includes(types_1.EbsiPublicKeyPurpose.Authentication)) {
|
|
197
244
|
return key.purposes;
|
|
198
245
|
}
|
|
199
|
-
throw new Error(`Secp256r1/ES256 key requires ${[EbsiPublicKeyPurpose.AssertionMethod, EbsiPublicKeyPurpose.Authentication].join(', ')} purposes`);
|
|
246
|
+
throw new Error(`Secp256r1/ES256 key requires ${[types_1.EbsiPublicKeyPurpose.AssertionMethod, types_1.EbsiPublicKeyPurpose.Authentication].join(', ')} purposes`);
|
|
200
247
|
}
|
|
201
248
|
default:
|
|
202
249
|
throw new Error(`Unsupported key type: ${key.type}`);
|
|
203
250
|
}
|
|
204
251
|
}
|
|
205
|
-
return key
|
|
252
|
+
return key === null || key === void 0 ? void 0 : key.purposes;
|
|
206
253
|
};
|
|
207
|
-
|
|
254
|
+
exports.assertedPurposes = assertedPurposes;
|
|
255
|
+
const setDefaultPurposes = (args) => {
|
|
208
256
|
const { key, type } = args;
|
|
209
|
-
if (!key
|
|
257
|
+
if (!(key === null || key === void 0 ? void 0 : key.purposes) || key.purposes.length === 0) {
|
|
210
258
|
switch (type) {
|
|
211
259
|
case 'Secp256k1':
|
|
212
|
-
return [EbsiPublicKeyPurpose.CapabilityInvocation];
|
|
260
|
+
return [types_1.EbsiPublicKeyPurpose.CapabilityInvocation];
|
|
213
261
|
case 'Secp256r1':
|
|
214
|
-
return [EbsiPublicKeyPurpose.AssertionMethod, EbsiPublicKeyPurpose.Authentication];
|
|
262
|
+
return [types_1.EbsiPublicKeyPurpose.AssertionMethod, types_1.EbsiPublicKeyPurpose.Authentication];
|
|
215
263
|
default:
|
|
216
|
-
throw new Error(`Unsupported key type: ${key
|
|
264
|
+
throw new Error(`Unsupported key type: ${key === null || key === void 0 ? void 0 : key.type}`);
|
|
217
265
|
}
|
|
218
266
|
}
|
|
219
267
|
return key.purposes;
|
|
220
268
|
};
|
|
221
|
-
|
|
269
|
+
exports.setDefaultPurposes = setDefaultPurposes;
|
|
270
|
+
const randomRpcId = () => {
|
|
222
271
|
return Math.floor(Math.random() * Number.MAX_SAFE_INTEGER);
|
|
223
272
|
};
|
|
224
|
-
|
|
273
|
+
exports.randomRpcId = randomRpcId;
|
|
274
|
+
const ebsiCreateDidOnLedger = (args, context) => __awaiter(void 0, void 0, void 0, function* () {
|
|
275
|
+
var _e, _f, _g;
|
|
225
276
|
const { accessTokenOpts, notBefore = Math.floor(Date.now() / 1000 - 60), notAfter = Math.floor(Date.now() / 1000 + 10 * 365 * 24 * 60 * 60), baseDocument, identifier, } = args;
|
|
226
277
|
const { clientId, redirectUri, environment, credentialIssuer } = accessTokenOpts;
|
|
227
|
-
const controllerKey = getControllerKey({ identifier });
|
|
228
|
-
const secp256r1 = getKeys({ identifier, keyType: 'Secp256r1' })
|
|
278
|
+
const controllerKey = (0, ssi_sdk_ext_did_utils_1.getControllerKey)({ identifier });
|
|
279
|
+
const secp256r1 = (_e = (0, ssi_sdk_ext_did_utils_1.getKeys)({ identifier, keyType: 'Secp256r1' })) === null || _e === void 0 ? void 0 : _e[0];
|
|
229
280
|
let { attestationToOnboard } = accessTokenOpts;
|
|
230
281
|
if (!controllerKey || !secp256r1) {
|
|
231
282
|
return Promise.reject(`No secp256k1 controller key and/or secp2561r key found for identifier ${identifier}`);
|
|
232
283
|
}
|
|
233
|
-
const from = getEthereumAddressFromKey({ key: controllerKey });
|
|
284
|
+
const from = (0, ssi_sdk_ext_did_utils_1.getEthereumAddressFromKey)({ key: controllerKey });
|
|
234
285
|
if (!from) {
|
|
235
286
|
return Promise.reject(Error(`EBSI 'from' address expected for key ${controllerKey.publicKeyHex}`));
|
|
236
287
|
}
|
|
237
288
|
const did = identifier.did;
|
|
238
289
|
const kid = controllerKey.kid;
|
|
239
290
|
const idOpts = { identifier, kid };
|
|
240
|
-
let rpcId = args.rpcId
|
|
291
|
+
let rpcId = (_f = args.rpcId) !== null && _f !== void 0 ? _f : (0, exports.randomRpcId)();
|
|
241
292
|
const apiOpts = {
|
|
242
293
|
environment,
|
|
243
294
|
version: 'v5',
|
|
244
295
|
};
|
|
245
|
-
const jwksUri = args.accessTokenOpts.jwksUri
|
|
296
|
+
const jwksUri = (_g = args.accessTokenOpts.jwksUri) !== null && _g !== void 0 ? _g : `${clientId}/.well-known/jwks/dids/${encodeURIComponent(identifier.did)}.json`;
|
|
246
297
|
if (!attestationToOnboard) {
|
|
247
|
-
const authReqResult =
|
|
298
|
+
const authReqResult = yield context.agent.ebsiCreateAttestationAuthRequestURL({
|
|
248
299
|
credentialIssuer,
|
|
249
300
|
idOpts,
|
|
250
301
|
formats: ['jwt_vc'],
|
|
251
302
|
clientId,
|
|
252
303
|
redirectUri,
|
|
253
304
|
credentialType: 'VerifiableAuthorisationToOnboard',
|
|
254
|
-
requestObjectOpts: { iss: clientId, requestObjectMode: CreateRequestObjectMode.REQUEST_OBJECT, jwksUri },
|
|
305
|
+
requestObjectOpts: { iss: clientId, requestObjectMode: oid4vci_common_1.CreateRequestObjectMode.REQUEST_OBJECT, jwksUri },
|
|
255
306
|
});
|
|
256
|
-
const attestationResult =
|
|
307
|
+
const attestationResult = yield context.agent.ebsiGetAttestation({
|
|
257
308
|
clientId,
|
|
258
309
|
authReqResult,
|
|
259
|
-
opts: { timeout:
|
|
310
|
+
opts: { timeout: 120000 },
|
|
260
311
|
});
|
|
261
312
|
attestationToOnboard = attestationResult.credentials[0].rawVerifiableCredential;
|
|
262
313
|
}
|
|
263
|
-
const insertDidAccessTokenResponse =
|
|
314
|
+
const insertDidAccessTokenResponse = yield context.agent.ebsiAccessTokenGet({
|
|
264
315
|
attestationCredential: attestationToOnboard,
|
|
265
316
|
jwksUri,
|
|
266
317
|
scope: 'didr_invite',
|
|
@@ -276,40 +327,33 @@ export const ebsiCreateDidOnLedger = async (args, context) => {
|
|
|
276
327
|
{
|
|
277
328
|
from,
|
|
278
329
|
did,
|
|
279
|
-
baseDocument: baseDocument
|
|
280
|
-
vMethodId: calculateJwkThumbprint({ jwk: toJwk(controllerKey.publicKeyHex, 'Secp256k1') }),
|
|
330
|
+
baseDocument: baseDocument !== null && baseDocument !== void 0 ? baseDocument : types_1.BASE_CONTEXT_DOC,
|
|
331
|
+
vMethodId: (0, ssi_sdk_ext_key_utils_1.calculateJwkThumbprint)({ jwk: (0, ssi_sdk_ext_key_utils_1.toJwk)(controllerKey.publicKeyHex, 'Secp256k1') }),
|
|
281
332
|
isSecp256k1: true,
|
|
282
|
-
publicKey: formatEbsiPublicKey({ key: controllerKey, type: 'Secp256k1' }),
|
|
333
|
+
publicKey: (0, exports.formatEbsiPublicKey)({ key: controllerKey, type: 'Secp256k1' }),
|
|
283
334
|
notBefore,
|
|
284
335
|
notAfter,
|
|
285
336
|
},
|
|
286
337
|
],
|
|
287
|
-
rpcMethod: EbsiRpcMethod.INSERT_DID_DOCUMENT,
|
|
338
|
+
rpcMethod: types_1.EbsiRpcMethod.INSERT_DID_DOCUMENT,
|
|
288
339
|
rpcId,
|
|
289
340
|
apiOpts,
|
|
290
341
|
accessToken: insertDidAccessTokenResponse.accessTokenResponse.access_token,
|
|
291
342
|
};
|
|
292
|
-
const insertDidDocResponse =
|
|
343
|
+
const insertDidDocResponse = yield (0, exports.ebsiSignAndSendTransaction)({
|
|
293
344
|
rpcRequest: insertDidDocRequest,
|
|
294
345
|
kid,
|
|
295
346
|
accessToken: insertDidAccessTokenResponse.accessTokenResponse.access_token,
|
|
296
347
|
apiOpts,
|
|
297
348
|
}, context);
|
|
298
|
-
let anchorTime =
|
|
299
|
-
did,
|
|
300
|
-
...apiOpts,
|
|
301
|
-
maxWaitTime: 30_000,
|
|
302
|
-
startIntervalMS: 2000,
|
|
303
|
-
minIntervalMS: 500,
|
|
304
|
-
decreaseIntervalMSPerStep: 750,
|
|
305
|
-
});
|
|
349
|
+
let anchorTime = yield (0, EbsiRestService_1.ebsiWaitTillDocumentAnchored)(Object.assign(Object.assign({ did }, apiOpts), { maxWaitTime: 30000, startIntervalMS: 2000, minIntervalMS: 500, decreaseIntervalMSPerStep: 750 }));
|
|
306
350
|
if (!anchorTime.didDocument) {
|
|
307
351
|
throw Error(`did ${did} was not registered on EBSI network ${apiOpts.environment} in 45 seconds`);
|
|
308
352
|
}
|
|
309
|
-
logger.debug(`Anchoring did ${did} on network ${apiOpts.environment} took ${anchorTime.totalWaitTime / 1000} seconds in ${anchorTime.count} tries`);
|
|
353
|
+
index_1.logger.debug(`Anchoring did ${did} on network ${apiOpts.environment} took ${anchorTime.totalWaitTime / 1000} seconds in ${anchorTime.count} tries`);
|
|
310
354
|
// Update to the controller key for the remainder
|
|
311
|
-
idOpts.kid = calculateJwkThumbprintForKey({ key: controllerKey });
|
|
312
|
-
const addVMAccessTokenResponse =
|
|
355
|
+
idOpts.kid = (0, ssi_sdk_ext_key_utils_1.calculateJwkThumbprintForKey)({ key: controllerKey });
|
|
356
|
+
const addVMAccessTokenResponse = yield context.agent.ebsiAccessTokenGet({
|
|
313
357
|
// attestationCredential: attestationToOnboard,
|
|
314
358
|
jwksUri,
|
|
315
359
|
scope: 'didr_write',
|
|
@@ -320,8 +364,8 @@ export const ebsiCreateDidOnLedger = async (args, context) => {
|
|
|
320
364
|
environment,
|
|
321
365
|
skipDidResolution: true,
|
|
322
366
|
});
|
|
323
|
-
const vMethodId = calculateJwkThumbprint({ jwk: toJwk(secp256r1.publicKeyHex, 'Secp256r1') });
|
|
324
|
-
const publicKey = formatEbsiPublicKey({ key: secp256r1, type: 'Secp256r1' });
|
|
367
|
+
const vMethodId = (0, ssi_sdk_ext_key_utils_1.calculateJwkThumbprint)({ jwk: (0, ssi_sdk_ext_key_utils_1.toJwk)(secp256r1.publicKeyHex, 'Secp256r1') });
|
|
368
|
+
const publicKey = (0, exports.formatEbsiPublicKey)({ key: secp256r1, type: 'Secp256r1' });
|
|
325
369
|
const addVerificationMethodRequest = {
|
|
326
370
|
params: [
|
|
327
371
|
{
|
|
@@ -332,12 +376,12 @@ export const ebsiCreateDidOnLedger = async (args, context) => {
|
|
|
332
376
|
publicKey,
|
|
333
377
|
},
|
|
334
378
|
],
|
|
335
|
-
rpcMethod: EbsiRpcMethod.ADD_VERIFICATION_METHOD,
|
|
379
|
+
rpcMethod: types_1.EbsiRpcMethod.ADD_VERIFICATION_METHOD,
|
|
336
380
|
rpcId,
|
|
337
381
|
apiOpts,
|
|
338
382
|
accessToken: addVMAccessTokenResponse.accessTokenResponse.access_token,
|
|
339
383
|
};
|
|
340
|
-
const addVerificationMethodResponse =
|
|
384
|
+
const addVerificationMethodResponse = yield (0, exports.ebsiSignAndSendTransaction)({
|
|
341
385
|
rpcRequest: addVerificationMethodRequest,
|
|
342
386
|
previousTxResponse: insertDidDocResponse,
|
|
343
387
|
kid,
|
|
@@ -346,7 +390,7 @@ export const ebsiCreateDidOnLedger = async (args, context) => {
|
|
|
346
390
|
}, context);
|
|
347
391
|
// We need to wait, even after the anchor. The methods below also retry in case the nonce does not get updated.
|
|
348
392
|
// But we simply know that at this point we need to introduce some delay
|
|
349
|
-
|
|
393
|
+
yield (0, functions_1.wait)(2000);
|
|
350
394
|
const addAssertionMethodRelationshipRequest = {
|
|
351
395
|
params: [
|
|
352
396
|
{
|
|
@@ -358,30 +402,23 @@ export const ebsiCreateDidOnLedger = async (args, context) => {
|
|
|
358
402
|
notBefore,
|
|
359
403
|
},
|
|
360
404
|
],
|
|
361
|
-
rpcMethod: EbsiRpcMethod.ADD_VERIFICATION_RELATIONSHIP,
|
|
405
|
+
rpcMethod: types_1.EbsiRpcMethod.ADD_VERIFICATION_RELATIONSHIP,
|
|
362
406
|
rpcId,
|
|
363
407
|
apiOpts,
|
|
364
408
|
accessToken: addVMAccessTokenResponse.accessTokenResponse.access_token,
|
|
365
409
|
};
|
|
366
|
-
const addAssertionMethodRelationshipResponse =
|
|
410
|
+
const addAssertionMethodRelationshipResponse = yield (0, exports.ebsiSignAndSendTransaction)({
|
|
367
411
|
rpcRequest: addAssertionMethodRelationshipRequest,
|
|
368
412
|
previousTxResponse: addVerificationMethodResponse,
|
|
369
413
|
kid,
|
|
370
414
|
accessToken: addVMAccessTokenResponse.accessTokenResponse.access_token,
|
|
371
415
|
apiOpts,
|
|
372
416
|
}, context);
|
|
373
|
-
anchorTime =
|
|
374
|
-
did,
|
|
375
|
-
...apiOpts,
|
|
376
|
-
maxWaitTime: 20_000,
|
|
377
|
-
minIntervalMS: 500,
|
|
378
|
-
decreaseIntervalMSPerStep: 500,
|
|
379
|
-
searchForObject: { assertionMethod: [`${did}#${vMethodId}`] },
|
|
380
|
-
});
|
|
417
|
+
anchorTime = yield (0, EbsiRestService_1.ebsiWaitTillDocumentAnchored)(Object.assign(Object.assign({ did }, apiOpts), { maxWaitTime: 20000, minIntervalMS: 500, decreaseIntervalMSPerStep: 500, searchForObject: { assertionMethod: [`${did}#${vMethodId}`] } }));
|
|
381
418
|
if (!anchorTime.didDocument) {
|
|
382
419
|
throw Error(`did ${did} assertionMethod id ${vMethodId} was not registered on EBSI network ${apiOpts.environment} in 20 seconds`);
|
|
383
420
|
}
|
|
384
|
-
logger.debug(`Anchoring assertionMethod ${vMethodId} for DID ${did} on network ${apiOpts.environment} took ${anchorTime.totalWaitTime / 1000} seconds in ${anchorTime.count} tries`);
|
|
421
|
+
index_1.logger.debug(`Anchoring assertionMethod ${vMethodId} for DID ${did} on network ${apiOpts.environment} took ${anchorTime.totalWaitTime / 1000} seconds in ${anchorTime.count} tries`);
|
|
385
422
|
const addAuthenticationRelationshipRequest = {
|
|
386
423
|
params: [
|
|
387
424
|
{
|
|
@@ -393,12 +430,12 @@ export const ebsiCreateDidOnLedger = async (args, context) => {
|
|
|
393
430
|
notBefore,
|
|
394
431
|
},
|
|
395
432
|
],
|
|
396
|
-
rpcMethod: EbsiRpcMethod.ADD_VERIFICATION_RELATIONSHIP,
|
|
433
|
+
rpcMethod: types_1.EbsiRpcMethod.ADD_VERIFICATION_RELATIONSHIP,
|
|
397
434
|
rpcId,
|
|
398
435
|
apiOpts,
|
|
399
436
|
accessToken: addVMAccessTokenResponse.accessTokenResponse.access_token,
|
|
400
437
|
};
|
|
401
|
-
const addAuthenticationRelationshipResponse =
|
|
438
|
+
const addAuthenticationRelationshipResponse = yield (0, exports.ebsiSignAndSendTransaction)({
|
|
402
439
|
rpcRequest: addAuthenticationRelationshipRequest,
|
|
403
440
|
previousTxResponse: addAssertionMethodRelationshipResponse,
|
|
404
441
|
kid,
|
|
@@ -412,5 +449,6 @@ export const ebsiCreateDidOnLedger = async (args, context) => {
|
|
|
412
449
|
addAuthenticationRelationship: addAuthenticationRelationshipResponse,
|
|
413
450
|
addAssertionMethodRelationship: addAssertionMethodRelationshipResponse,
|
|
414
451
|
};
|
|
415
|
-
};
|
|
452
|
+
});
|
|
453
|
+
exports.ebsiCreateDidOnLedger = ebsiCreateDidOnLedger;
|
|
416
454
|
//# sourceMappingURL=functions.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"functions.js","sourceRoot":"","sources":["../../src/did/functions.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"functions.js","sourceRoot":"","sources":["../../src/did/functions.ts"],"names":[],"mappings":"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"}
|