@sphereon/did-provider-oyd 0.28.1-feature.oyd.cmsm.improv.16 → 0.28.1-feature.oyd.cmsm.improv.20
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.
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { IIdentifier, IKey,
|
|
1
|
+
import { IAgentContext, IIdentifier, IKey, IKeyManager, IService, TKeyType } from '@veramo/core';
|
|
2
2
|
import { AbstractIdentifierProvider } from '@veramo/did-manager';
|
|
3
3
|
import { KeyManager } from '@veramo/key-manager';
|
|
4
|
-
import type {
|
|
4
|
+
import type { CMSMCallbackOpts, OydConstructorOptions, OydCreateIdentifierOptions } from './types/oyd-provider-types.js';
|
|
5
5
|
type IContext = IAgentContext<IKeyManager>;
|
|
6
6
|
/**
|
|
7
7
|
* {@link @veramo/did-manager#DIDManager} identifier provider for `did:oyd` identifiers
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"oyd-did-provider.d.ts","sourceRoot":"","sources":["../src/oyd-did-provider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"oyd-did-provider.d.ts","sourceRoot":"","sources":["../src/oyd-did-provider.ts"],"names":[],"mappings":"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"}
|
package/dist/oyd-did-provider.js
CHANGED
|
@@ -1,4 +1,27 @@
|
|
|
1
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
|
+
};
|
|
2
25
|
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
26
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
27
|
return new (P || (P = Promise))(function (resolve, reject) {
|
|
@@ -17,6 +40,9 @@ exports.defaultOydCmsmPublicKeyCallback = defaultOydCmsmPublicKeyCallback;
|
|
|
17
40
|
exports.defaultOydCmsmSignCallback = defaultOydCmsmSignCallback;
|
|
18
41
|
const did_manager_1 = require("@veramo/did-manager");
|
|
19
42
|
const cross_fetch_1 = __importDefault(require("cross-fetch"));
|
|
43
|
+
const multibase_1 = __importDefault(require("multibase"));
|
|
44
|
+
const multicodec_1 = __importDefault(require("multicodec"));
|
|
45
|
+
const u8a = __importStar(require("uint8arrays"));
|
|
20
46
|
const debug_1 = __importDefault(require("debug"));
|
|
21
47
|
const debug = (0, debug_1.default)('veramo:oyd-did:identifier-provider');
|
|
22
48
|
const OYDID_REGISTRAR_URL = 'https://oydid-registrar.data-container.net/1.0/createIdentifier';
|
|
@@ -108,16 +134,19 @@ class OydDIDProvider extends did_manager_1.AbstractIdentifierProvider {
|
|
|
108
134
|
const pubKey = (_b = options.key) !== null && _b !== void 0 ? _b : (yield cmsmCallbackOpts.publicKeyCallback((_c = options.kid) !== null && _c !== void 0 ? _c : 'default', assertedKms, ((_d = options.cmsm) === null || _d === void 0 ? void 0 : _d.create) !== false, options.keyType)); // "default" is probably not right, TODO!!
|
|
109
135
|
const kid = pubKey.kid;
|
|
110
136
|
const keyType = pubKey.type;
|
|
137
|
+
const key = base58btc({ publicKeyHex: pubKey.publicKeyHex, keyType });
|
|
138
|
+
console.log(`Bae58 pubkey key: ${key}`);
|
|
111
139
|
let signValue; // do the request
|
|
112
140
|
try {
|
|
113
141
|
const body_create = {
|
|
114
142
|
// specify the Identifier options for the registrar
|
|
115
|
-
key:
|
|
143
|
+
key: key,
|
|
116
144
|
options: {
|
|
117
145
|
cmsm: true,
|
|
118
146
|
key_type: keyType,
|
|
119
147
|
},
|
|
120
148
|
};
|
|
149
|
+
console.log(`Create request:\n${JSON.stringify(body_create, null, 2)}\n`);
|
|
121
150
|
const response = yield (0, cross_fetch_1.default)(OYDID_REGISTRAR_URL, {
|
|
122
151
|
method: 'POST',
|
|
123
152
|
headers: {
|
|
@@ -130,22 +159,26 @@ class OydDIDProvider extends did_manager_1.AbstractIdentifierProvider {
|
|
|
130
159
|
return Promise.reject(Error('Network response was not ok: ' + response.statusText));
|
|
131
160
|
}
|
|
132
161
|
signValue = yield response.json();
|
|
162
|
+
console.log(`Create response:\n${JSON.stringify(signValue, null, 2)}\n`);
|
|
133
163
|
}
|
|
134
164
|
catch (error) {
|
|
135
|
-
|
|
165
|
+
console.log('Unexpected error from OydDID Registrar: ', error);
|
|
136
166
|
return Promise.reject(Error('There has been a problem with the fetch operation: ' + error.toString()));
|
|
137
167
|
}
|
|
138
168
|
// we received our value to sign, now we sign it!
|
|
139
169
|
const { sign } = signValue;
|
|
140
170
|
const signature = yield cmsmCallbackOpts.signCallback(kid, sign);
|
|
171
|
+
console.log(`Signature: ${signature}`);
|
|
141
172
|
const body_signed = {
|
|
142
|
-
key
|
|
173
|
+
key,
|
|
143
174
|
options: {
|
|
144
175
|
cmsm: true,
|
|
176
|
+
key_type: keyType,
|
|
145
177
|
sig: signature,
|
|
146
178
|
},
|
|
147
179
|
};
|
|
148
|
-
|
|
180
|
+
console.log(`Signed request:\n${JSON.stringify(body_signed, null, 2)}\n`);
|
|
181
|
+
// Object.assign(body_signed.options, options)
|
|
149
182
|
let didDoc; // do the request
|
|
150
183
|
try {
|
|
151
184
|
const response = yield (0, cross_fetch_1.default)(OYDID_REGISTRAR_URL, {
|
|
@@ -156,6 +189,7 @@ class OydDIDProvider extends did_manager_1.AbstractIdentifierProvider {
|
|
|
156
189
|
body: JSON.stringify(body_signed),
|
|
157
190
|
});
|
|
158
191
|
if (!response.ok) {
|
|
192
|
+
console.log(`Error response from OydDID Registrar: ${JSON.stringify(response.text)}${response.statusText}`, response);
|
|
159
193
|
debug('Error response from OydDID Registrar: ', response);
|
|
160
194
|
return Promise.reject(Error('Network response was not ok: ' + response.statusText));
|
|
161
195
|
}
|
|
@@ -246,6 +280,22 @@ class OydDIDProvider extends did_manager_1.AbstractIdentifierProvider {
|
|
|
246
280
|
}
|
|
247
281
|
}
|
|
248
282
|
exports.OydDIDProvider = OydDIDProvider;
|
|
283
|
+
const keyCodecs = {
|
|
284
|
+
RSA: 'rsa-pub',
|
|
285
|
+
Ed25519: 'ed25519-pub',
|
|
286
|
+
X25519: 'x25519-pub',
|
|
287
|
+
Secp256k1: 'secp256k1-pub',
|
|
288
|
+
Secp256r1: 'p256-pub',
|
|
289
|
+
Bls12381G1: 'bls12_381-g1-pub',
|
|
290
|
+
Bls12381G2: 'bls12_381-g2-pub',
|
|
291
|
+
};
|
|
292
|
+
const base58btc = ({ publicKeyHex, keyType = 'Secp256r1' }) => {
|
|
293
|
+
const codecName = keyCodecs[keyType];
|
|
294
|
+
// methodSpecificId = bytesToMultibase({bytes: u8a.fromString(key.publicKeyHex, 'hex'), codecName})
|
|
295
|
+
return u8a
|
|
296
|
+
.toString(multibase_1.default.encode('base58btc', multicodec_1.default.addPrefix(codecName, u8a.fromString(publicKeyHex, 'hex'))))
|
|
297
|
+
.toString();
|
|
298
|
+
};
|
|
249
299
|
function defaultOydCmsmPublicKeyCallback(keyManager) {
|
|
250
300
|
return (kid, kms, create, createKeyType) => __awaiter(this, void 0, void 0, function* () {
|
|
251
301
|
try {
|
|
@@ -266,7 +316,7 @@ function defaultOydCmsmPublicKeyCallback(keyManager) {
|
|
|
266
316
|
}
|
|
267
317
|
function defaultOydCmsmSignCallback(keyManager) {
|
|
268
318
|
return (kid, data) => __awaiter(this, void 0, void 0, function* () {
|
|
269
|
-
return keyManager.keyManagerSign({ keyRef: kid, data, encoding: '
|
|
319
|
+
return keyManager.keyManagerSign({ keyRef: kid, data, encoding: 'utf-8' });
|
|
270
320
|
});
|
|
271
321
|
}
|
|
272
322
|
class DefaultOydCmsmCallbacks {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"oyd-did-provider.js","sourceRoot":"","sources":["../src/oyd-did-provider.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"oyd-did-provider.js","sourceRoot":"","sources":["../src/oyd-did-provider.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sphereon/did-provider-oyd",
|
|
3
3
|
"description": "OwnYourData plugin that can enable creation and control of did:oyd identifiers.",
|
|
4
|
-
"version": "0.28.1-feature.oyd.cmsm.improv.
|
|
4
|
+
"version": "0.28.1-feature.oyd.cmsm.improv.20+7c3cf5a",
|
|
5
5
|
"source": "src/index.ts",
|
|
6
6
|
"main": "dist/index.js",
|
|
7
7
|
"types": "dist/index.d.ts",
|
|
@@ -14,11 +14,14 @@
|
|
|
14
14
|
"@veramo/did-manager": "4.2.0",
|
|
15
15
|
"cross-fetch": "^4.0.0",
|
|
16
16
|
"debug": "^4.3.3",
|
|
17
|
-
"did-resolver": "^4.1.0"
|
|
17
|
+
"did-resolver": "^4.1.0",
|
|
18
|
+
"multibase": "^4.0.6",
|
|
19
|
+
"multicodec": "^3.2.1",
|
|
20
|
+
"uint8arrays": "^3.1.1"
|
|
18
21
|
},
|
|
19
22
|
"devDependencies": {
|
|
20
|
-
"@sphereon/ssi-sdk-ext.key-manager": "0.28.1-feature.oyd.cmsm.improv.
|
|
21
|
-
"@sphereon/ssi-sdk-ext.kms-local": "0.28.1-feature.oyd.cmsm.improv.
|
|
23
|
+
"@sphereon/ssi-sdk-ext.key-manager": "0.28.1-feature.oyd.cmsm.improv.20+7c3cf5a",
|
|
24
|
+
"@sphereon/ssi-sdk-ext.kms-local": "0.28.1-feature.oyd.cmsm.improv.20+7c3cf5a",
|
|
22
25
|
"@sphereon/ssi-sdk.dev": "0.30.2-feature.SDK.41.oidf.support.286",
|
|
23
26
|
"@types/debug": "4.1.12",
|
|
24
27
|
"@veramo/key-manager": "4.2.0",
|
|
@@ -44,5 +47,5 @@
|
|
|
44
47
|
"node_modules",
|
|
45
48
|
"src"
|
|
46
49
|
],
|
|
47
|
-
"gitHead": "
|
|
50
|
+
"gitHead": "7c3cf5a3b32ef8a31744757aab14c21338880f79"
|
|
48
51
|
}
|
package/src/oyd-did-provider.ts
CHANGED
|
@@ -1,16 +1,20 @@
|
|
|
1
|
-
import { IIdentifier, IKey,
|
|
1
|
+
import { IAgentContext, IIdentifier, IKey, IKeyManager, IService, TKeyType } from '@veramo/core'
|
|
2
2
|
import { AbstractIdentifierProvider } from '@veramo/did-manager'
|
|
3
3
|
import { KeyManager } from '@veramo/key-manager'
|
|
4
|
+
import fetch from 'cross-fetch'
|
|
5
|
+
import Multibase from 'multibase'
|
|
6
|
+
import Multicodec from 'multicodec'
|
|
7
|
+
|
|
8
|
+
import * as u8a from 'uint8arrays'
|
|
9
|
+
|
|
10
|
+
import Debug from 'debug'
|
|
4
11
|
import type {
|
|
12
|
+
CMSMCallbackOpts,
|
|
13
|
+
OydConstructorOptions,
|
|
5
14
|
OydCreateIdentifierOptions,
|
|
6
15
|
OydDidHoldKeysArgs,
|
|
7
16
|
OydDidSupportedKeyTypes,
|
|
8
|
-
CMSMCallbackOpts,
|
|
9
|
-
OydConstructorOptions,
|
|
10
17
|
} from './types/oyd-provider-types.js'
|
|
11
|
-
import fetch from 'cross-fetch'
|
|
12
|
-
|
|
13
|
-
import Debug from 'debug'
|
|
14
18
|
|
|
15
19
|
const debug = Debug('veramo:oyd-did:identifier-provider')
|
|
16
20
|
const OYDID_REGISTRAR_URL = 'https://oydid-registrar.data-container.net/1.0/createIdentifier'
|
|
@@ -119,17 +123,20 @@ export class OydDIDProvider extends AbstractIdentifierProvider {
|
|
|
119
123
|
(await cmsmCallbackOpts.publicKeyCallback(options.kid ?? 'default', assertedKms, options.cmsm?.create !== false, options.keyType)) // "default" is probably not right, TODO!!
|
|
120
124
|
const kid = pubKey.kid
|
|
121
125
|
const keyType = pubKey.type
|
|
126
|
+
const key = base58btc({publicKeyHex: pubKey.publicKeyHex, keyType})
|
|
122
127
|
|
|
128
|
+
console.log(`Bae58 pubkey key: ${key}`)
|
|
123
129
|
let signValue: any | undefined // do the request
|
|
124
130
|
try {
|
|
125
131
|
const body_create = {
|
|
126
132
|
// specify the Identifier options for the registrar
|
|
127
|
-
key:
|
|
133
|
+
key: key,
|
|
128
134
|
options: {
|
|
129
135
|
cmsm: true,
|
|
130
136
|
key_type: keyType,
|
|
131
137
|
},
|
|
132
138
|
}
|
|
139
|
+
console.log(`Create request:\n${JSON.stringify(body_create, null, 2)}\n`)
|
|
133
140
|
const response = await fetch(OYDID_REGISTRAR_URL, {
|
|
134
141
|
method: 'POST',
|
|
135
142
|
headers: {
|
|
@@ -142,8 +149,9 @@ export class OydDIDProvider extends AbstractIdentifierProvider {
|
|
|
142
149
|
return Promise.reject(Error('Network response was not ok: ' + response.statusText))
|
|
143
150
|
}
|
|
144
151
|
signValue = await response.json()
|
|
152
|
+
console.log(`Create response:\n${JSON.stringify(signValue, null, 2)}\n`)
|
|
145
153
|
} catch (error: any) {
|
|
146
|
-
|
|
154
|
+
console.log('Unexpected error from OydDID Registrar: ', error)
|
|
147
155
|
return Promise.reject(Error('There has been a problem with the fetch operation: ' + error.toString()))
|
|
148
156
|
}
|
|
149
157
|
|
|
@@ -151,15 +159,21 @@ export class OydDIDProvider extends AbstractIdentifierProvider {
|
|
|
151
159
|
const { sign } = signValue
|
|
152
160
|
const signature = await cmsmCallbackOpts.signCallback(kid, sign)
|
|
153
161
|
|
|
162
|
+
console.log(`Signature: ${signature}`)
|
|
163
|
+
|
|
164
|
+
|
|
165
|
+
|
|
154
166
|
const body_signed = {
|
|
155
|
-
key
|
|
167
|
+
key,
|
|
156
168
|
options: {
|
|
157
169
|
cmsm: true,
|
|
170
|
+
key_type: keyType,
|
|
158
171
|
sig: signature,
|
|
159
172
|
},
|
|
160
173
|
}
|
|
174
|
+
console.log(`Signed request:\n${JSON.stringify(body_signed, null, 2)}\n`)
|
|
161
175
|
|
|
162
|
-
Object.assign(body_signed.options, options)
|
|
176
|
+
// Object.assign(body_signed.options, options)
|
|
163
177
|
|
|
164
178
|
let didDoc: any | undefined // do the request
|
|
165
179
|
try {
|
|
@@ -171,6 +185,7 @@ export class OydDIDProvider extends AbstractIdentifierProvider {
|
|
|
171
185
|
body: JSON.stringify(body_signed),
|
|
172
186
|
})
|
|
173
187
|
if (!response.ok) {
|
|
188
|
+
console.log(`Error response from OydDID Registrar: ${JSON.stringify(response.text)}${response.statusText}`, response)
|
|
174
189
|
debug('Error response from OydDID Registrar: ', response)
|
|
175
190
|
return Promise.reject(Error('Network response was not ok: ' + response.statusText))
|
|
176
191
|
}
|
|
@@ -194,6 +209,10 @@ export class OydDIDProvider extends AbstractIdentifierProvider {
|
|
|
194
209
|
context
|
|
195
210
|
);*/
|
|
196
211
|
|
|
212
|
+
|
|
213
|
+
|
|
214
|
+
|
|
215
|
+
|
|
197
216
|
const identifier: Omit<IIdentifier, 'provider'> = {
|
|
198
217
|
did: didDoc.did,
|
|
199
218
|
controllerKeyId: pubKey.kid,
|
|
@@ -255,8 +274,32 @@ export class OydDIDProvider extends AbstractIdentifierProvider {
|
|
|
255
274
|
},
|
|
256
275
|
})
|
|
257
276
|
}
|
|
277
|
+
|
|
278
|
+
|
|
279
|
+
|
|
258
280
|
}
|
|
259
281
|
|
|
282
|
+
const keyCodecs = {
|
|
283
|
+
RSA: 'rsa-pub',
|
|
284
|
+
Ed25519: 'ed25519-pub',
|
|
285
|
+
X25519: 'x25519-pub',
|
|
286
|
+
Secp256k1: 'secp256k1-pub',
|
|
287
|
+
Secp256r1: 'p256-pub',
|
|
288
|
+
Bls12381G1: 'bls12_381-g1-pub',
|
|
289
|
+
Bls12381G2: 'bls12_381-g2-pub',
|
|
290
|
+
} as const
|
|
291
|
+
|
|
292
|
+
const base58btc = ({publicKeyHex, keyType = 'Secp256r1'}:{publicKeyHex: string, keyType?: TKeyType}): string => {
|
|
293
|
+
const codecName = keyCodecs[keyType]
|
|
294
|
+
|
|
295
|
+
|
|
296
|
+
// methodSpecificId = bytesToMultibase({bytes: u8a.fromString(key.publicKeyHex, 'hex'), codecName})
|
|
297
|
+
return u8a
|
|
298
|
+
.toString(
|
|
299
|
+
Multibase.encode('base58btc', Multicodec.addPrefix(codecName as Multicodec.CodecName, u8a.fromString(publicKeyHex, 'hex')))
|
|
300
|
+
)
|
|
301
|
+
.toString()
|
|
302
|
+
}
|
|
260
303
|
export function defaultOydCmsmPublicKeyCallback(
|
|
261
304
|
keyManager: KeyManager
|
|
262
305
|
): (kid: string, kms?: string, create?: boolean, createKeyType?: TKeyType) => Promise<IKey> {
|
|
@@ -279,7 +322,7 @@ export function defaultOydCmsmPublicKeyCallback(
|
|
|
279
322
|
|
|
280
323
|
export function defaultOydCmsmSignCallback(keyManager: KeyManager): (kid: string, data: string) => Promise<string> {
|
|
281
324
|
return async (kid: string, data: string): Promise<string> => {
|
|
282
|
-
return keyManager.keyManagerSign({ keyRef: kid, data, encoding: '
|
|
325
|
+
return keyManager.keyManagerSign({ keyRef: kid, data, encoding: 'utf-8' })
|
|
283
326
|
}
|
|
284
327
|
}
|
|
285
328
|
|