@sphereon/ssi-sdk-ext.did-resolver-key 0.28.1-feature.esm.cjs.8 → 0.28.1-feature.esm.cjs.9
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/index.cjs +37 -65
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -1
- package/package.json +3 -3
- package/src/index.ts +2 -1
package/dist/index.cjs
CHANGED
|
@@ -1,48 +1,13 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __create = Object.create;
|
|
3
|
-
var __defProp = Object.defineProperty;
|
|
4
|
-
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
|
-
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
-
var __getProtoOf = Object.getPrototypeOf;
|
|
7
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { newObj[key] = obj[key]; } } } newObj.default = obj; return newObj; } } function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }var __defProp = Object.defineProperty;
|
|
8
2
|
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
9
|
-
var __export = (target, all) => {
|
|
10
|
-
for (var name in all)
|
|
11
|
-
__defProp(target, name, { get: all[name], enumerable: true });
|
|
12
|
-
};
|
|
13
|
-
var __copyProps = (to, from, except, desc) => {
|
|
14
|
-
if (from && typeof from === "object" || typeof from === "function") {
|
|
15
|
-
for (let key of __getOwnPropNames(from))
|
|
16
|
-
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
17
|
-
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
18
|
-
}
|
|
19
|
-
return to;
|
|
20
|
-
};
|
|
21
|
-
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
22
|
-
// If the importer is in node compatibility mode or this is not an ESM
|
|
23
|
-
// file that has been converted to a CommonJS file using a Babel-
|
|
24
|
-
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
25
|
-
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
26
|
-
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
27
|
-
mod
|
|
28
|
-
));
|
|
29
|
-
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
30
3
|
|
|
31
4
|
// src/index.ts
|
|
32
|
-
var
|
|
33
|
-
|
|
34
|
-
DID_JSON: () => DID_JSON,
|
|
35
|
-
DID_LD_JSON: () => DID_LD_JSON,
|
|
36
|
-
default: () => index_default,
|
|
37
|
-
getResolver: () => getResolver
|
|
38
|
-
});
|
|
39
|
-
module.exports = __toCommonJS(index_exports);
|
|
40
|
-
var import_varint = require("varint");
|
|
41
|
-
var import_base58 = require("multiformats/bases/base58");
|
|
5
|
+
var _varint = require('varint'); var _varint2 = _interopRequireDefault(_varint);
|
|
6
|
+
var _base58 = require('multiformats/bases/base58');
|
|
42
7
|
|
|
43
8
|
// src/drivers/ed25519.ts
|
|
44
|
-
var
|
|
45
|
-
var
|
|
9
|
+
var _tostring = require('uint8arrays/to-string');
|
|
10
|
+
var _ed25519 = require('@stablelib/ed25519');
|
|
46
11
|
|
|
47
12
|
// src/types.ts
|
|
48
13
|
var DID_LD_JSON = "application/did+ld+json";
|
|
@@ -51,15 +16,15 @@ var DID_JSON = "application/did+json";
|
|
|
51
16
|
// src/drivers/ed25519.ts
|
|
52
17
|
function encodeKey(key, encodeKey2) {
|
|
53
18
|
const bytes = new Uint8Array(key.length + 2);
|
|
54
|
-
bytes[0] = encodeKey2
|
|
19
|
+
bytes[0] = _nullishCoalesce(encodeKey2, () => ( 236));
|
|
55
20
|
bytes[1] = 1;
|
|
56
21
|
bytes.set(key, 2);
|
|
57
|
-
return `z${(0,
|
|
22
|
+
return `z${_tostring.toString.call(void 0, bytes, "base58btc")}`;
|
|
58
23
|
}
|
|
59
24
|
__name(encodeKey, "encodeKey");
|
|
60
25
|
var keyToDidDoc = /* @__PURE__ */ __name((args) => {
|
|
61
26
|
const { options } = args;
|
|
62
|
-
if (!options
|
|
27
|
+
if (!_optionalChain([options, 'optionalAccess', _ => _.publicKeyFormat])) {
|
|
63
28
|
return keyToDidDoc2020(args);
|
|
64
29
|
}
|
|
65
30
|
switch (options.publicKeyFormat) {
|
|
@@ -77,7 +42,7 @@ var keyToDidDoc = /* @__PURE__ */ __name((args) => {
|
|
|
77
42
|
var keyToDidDoc2018_2019 = /* @__PURE__ */ __name(({ pubKeyBytes, fingerprint, contentType }) => {
|
|
78
43
|
const did = `did:key:${fingerprint}`;
|
|
79
44
|
const keyId = `${did}#${fingerprint}`;
|
|
80
|
-
const x25519PubBytes = (0,
|
|
45
|
+
const x25519PubBytes = _ed25519.convertPublicKeyToX25519.call(void 0, pubKeyBytes);
|
|
81
46
|
const x25519KeyId = `${did}#${encodeKey(x25519PubBytes)}`;
|
|
82
47
|
return {
|
|
83
48
|
...contentType === DID_LD_JSON && {
|
|
@@ -93,13 +58,13 @@ var keyToDidDoc2018_2019 = /* @__PURE__ */ __name(({ pubKeyBytes, fingerprint, c
|
|
|
93
58
|
id: keyId,
|
|
94
59
|
type: "Ed25519VerificationKey2018",
|
|
95
60
|
controller: did,
|
|
96
|
-
publicKeyBase58: (0,
|
|
61
|
+
publicKeyBase58: _tostring.toString.call(void 0, pubKeyBytes, "base58btc")
|
|
97
62
|
},
|
|
98
63
|
{
|
|
99
64
|
id: x25519KeyId,
|
|
100
65
|
type: "X25519KeyAgreementKey2019",
|
|
101
66
|
controller: did,
|
|
102
|
-
publicKeyBase58: (0,
|
|
67
|
+
publicKeyBase58: _tostring.toString.call(void 0, x25519PubBytes, "base58btc")
|
|
103
68
|
}
|
|
104
69
|
],
|
|
105
70
|
authentication: [
|
|
@@ -122,7 +87,7 @@ var keyToDidDoc2018_2019 = /* @__PURE__ */ __name(({ pubKeyBytes, fingerprint, c
|
|
|
122
87
|
var keyToDidDoc2020 = /* @__PURE__ */ __name(({ pubKeyBytes, fingerprint, contentType }) => {
|
|
123
88
|
const did = `did:key:${fingerprint}`;
|
|
124
89
|
const keyId = `${did}#${fingerprint}`;
|
|
125
|
-
const x25519PubBytes = (0,
|
|
90
|
+
const x25519PubBytes = _ed25519.convertPublicKeyToX25519.call(void 0, pubKeyBytes);
|
|
126
91
|
const x25519KeyId = `${did}#${encodeKey(x25519PubBytes)}`;
|
|
127
92
|
return {
|
|
128
93
|
...contentType === DID_LD_JSON && {
|
|
@@ -168,7 +133,7 @@ var ed25519_default = {
|
|
|
168
133
|
};
|
|
169
134
|
|
|
170
135
|
// src/drivers/bls12381g2.ts
|
|
171
|
-
|
|
136
|
+
|
|
172
137
|
var keyToDidDoc2 = /* @__PURE__ */ __name(({ pubKeyBytes, fingerprint }) => {
|
|
173
138
|
const did = `did:key:${fingerprint}`;
|
|
174
139
|
const keyId = `${did}#${fingerprint}`;
|
|
@@ -179,7 +144,7 @@ var keyToDidDoc2 = /* @__PURE__ */ __name(({ pubKeyBytes, fingerprint }) => {
|
|
|
179
144
|
id: keyId,
|
|
180
145
|
type: "Bls12381G2Key2020",
|
|
181
146
|
controller: did,
|
|
182
|
-
publicKeyBase58: (0,
|
|
147
|
+
publicKeyBase58: _tostring.toString.call(void 0, pubKeyBytes, "base58btc")
|
|
183
148
|
}
|
|
184
149
|
],
|
|
185
150
|
authentication: [
|
|
@@ -201,7 +166,7 @@ var bls12381g2_default = {
|
|
|
201
166
|
};
|
|
202
167
|
|
|
203
168
|
// src/drivers/secp256k1.ts
|
|
204
|
-
|
|
169
|
+
|
|
205
170
|
var keyToDidDoc3 = /* @__PURE__ */ __name(({ pubKeyBytes, fingerprint }) => {
|
|
206
171
|
const did = `did:key:${fingerprint}`;
|
|
207
172
|
const keyId = `${did}#${fingerprint}`;
|
|
@@ -212,7 +177,7 @@ var keyToDidDoc3 = /* @__PURE__ */ __name(({ pubKeyBytes, fingerprint }) => {
|
|
|
212
177
|
id: keyId,
|
|
213
178
|
type: "Secp256k1VerificationKey2018",
|
|
214
179
|
controller: did,
|
|
215
|
-
publicKeyBase58: (0,
|
|
180
|
+
publicKeyBase58: _tostring.toString.call(void 0, pubKeyBytes, "base58btc")
|
|
216
181
|
}
|
|
217
182
|
],
|
|
218
183
|
authentication: [
|
|
@@ -234,8 +199,8 @@ var secp256k1_default = {
|
|
|
234
199
|
};
|
|
235
200
|
|
|
236
201
|
// src/drivers/secp256r1.ts
|
|
237
|
-
var
|
|
238
|
-
var
|
|
202
|
+
var _nistweierstrauss = require('nist-weierstrauss'); var nist_weierstrauss = _interopRequireWildcard(_nistweierstrauss); var nist_weierstrauss2 = _interopRequireWildcard(_nistweierstrauss); var nist_weierstrauss3 = _interopRequireWildcard(_nistweierstrauss);
|
|
203
|
+
var _fromstring = require('uint8arrays/from-string');
|
|
239
204
|
function keyToDidDoc4({ pubKeyBytes, fingerprint }) {
|
|
240
205
|
const did = `did:key:${fingerprint}`;
|
|
241
206
|
const keyId = `${did}#${fingerprint}`;
|
|
@@ -287,7 +252,7 @@ function pubKeyBytesToXY(pubKeyBytes) {
|
|
|
287
252
|
}
|
|
288
253
|
if (bytesCount == 33) {
|
|
289
254
|
if (publicKeyHex.slice(0, 2) == "03" || publicKeyHex.slice(0, 2) == "02") {
|
|
290
|
-
const publicKey = (0,
|
|
255
|
+
const publicKey = _fromstring.fromString.call(void 0, publicKeyHex, "base16");
|
|
291
256
|
const point = nist_weierstrauss.secp256r1.ECPointDecompress(publicKey);
|
|
292
257
|
return nist_weierstrauss.nist_weierstrauss_common.publicKeyIntToXY(point);
|
|
293
258
|
}
|
|
@@ -300,8 +265,8 @@ var secp256r1_default = {
|
|
|
300
265
|
};
|
|
301
266
|
|
|
302
267
|
// src/drivers/secp384r1.ts
|
|
303
|
-
|
|
304
|
-
|
|
268
|
+
|
|
269
|
+
|
|
305
270
|
function keyToDidDoc5({ pubKeyBytes, fingerprint }) {
|
|
306
271
|
const did = `did:key:${fingerprint}`;
|
|
307
272
|
const keyId = `${did}#${fingerprint}`;
|
|
@@ -353,7 +318,7 @@ function pubKeyBytesToXY2(pubKeyBytes) {
|
|
|
353
318
|
}
|
|
354
319
|
if (bytesCount == 49) {
|
|
355
320
|
if (publicKeyHex.slice(0, 2) == "03" || publicKeyHex.slice(0, 2) == "02") {
|
|
356
|
-
const publicKey = (0,
|
|
321
|
+
const publicKey = _fromstring.fromString.call(void 0, publicKeyHex, "base16");
|
|
357
322
|
const point = nist_weierstrauss2.secp384r1.ECPointDecompress(publicKey);
|
|
358
323
|
return nist_weierstrauss2.nist_weierstrauss_common.publicKeyIntToXY(point);
|
|
359
324
|
}
|
|
@@ -366,8 +331,8 @@ var secp384r1_default = {
|
|
|
366
331
|
};
|
|
367
332
|
|
|
368
333
|
// src/drivers/secp521r1.ts
|
|
369
|
-
|
|
370
|
-
|
|
334
|
+
|
|
335
|
+
|
|
371
336
|
function keyToDidDoc6({ pubKeyBytes, fingerprint }) {
|
|
372
337
|
const did = `did:key:${fingerprint}`;
|
|
373
338
|
const keyId = `${did}#${fingerprint}`;
|
|
@@ -409,7 +374,7 @@ function pubKeyBytesToXY3(pubKeyBytes) {
|
|
|
409
374
|
const publicKeyHex = nist_weierstrauss3.nist_weierstrauss_common.pubKeyBytesToHex(pubKeyBytes);
|
|
410
375
|
if (132 <= publicKeyHex.length && publicKeyHex.length <= 134) {
|
|
411
376
|
if (publicKeyHex.slice(0, 2) == "03" || publicKeyHex.slice(0, 2) == "02") {
|
|
412
|
-
const publicKey = (0,
|
|
377
|
+
const publicKey = _fromstring.fromString.call(void 0, publicKeyHex, "base16");
|
|
413
378
|
const point = nist_weierstrauss3.secp521r1.ECPointDecompress(publicKey);
|
|
414
379
|
return nist_weierstrauss3.nist_weierstrauss_common.publicKeyIntToXY(point);
|
|
415
380
|
}
|
|
@@ -422,11 +387,11 @@ var secp521r1_default = {
|
|
|
422
387
|
};
|
|
423
388
|
|
|
424
389
|
// src/drivers/jwk.jcs.ts
|
|
425
|
-
var
|
|
390
|
+
var _ssisdkextkeyutils = require('@sphereon/ssi-sdk-ext.key-utils');
|
|
426
391
|
var keyToDidDoc7 = /* @__PURE__ */ __name(({ pubKeyBytes, fingerprint, contentType }) => {
|
|
427
392
|
const did = `did:key:${fingerprint}`;
|
|
428
393
|
const keyId = `${did}#${fingerprint}`;
|
|
429
|
-
const publicKeyJwk = (0,
|
|
394
|
+
const publicKeyJwk = _ssisdkextkeyutils.jwkJcsDecode.call(void 0, pubKeyBytes);
|
|
430
395
|
return {
|
|
431
396
|
...contentType === DID_LD_JSON && {
|
|
432
397
|
"@context": [
|
|
@@ -462,6 +427,7 @@ var jwk_jcs_default = {
|
|
|
462
427
|
};
|
|
463
428
|
|
|
464
429
|
// src/index.ts
|
|
430
|
+
var { decode } = _varint2.default;
|
|
465
431
|
var prefixToDriverMap = {
|
|
466
432
|
231: secp256k1_default,
|
|
467
433
|
237: ed25519_default,
|
|
@@ -483,9 +449,9 @@ var getResolver = /* @__PURE__ */ __name(() => {
|
|
|
483
449
|
didDocumentMetadata: {}
|
|
484
450
|
};
|
|
485
451
|
try {
|
|
486
|
-
const multicodecPubKey =
|
|
487
|
-
const keyType =
|
|
488
|
-
const pubKeyBytes = multicodecPubKey.slice(
|
|
452
|
+
const multicodecPubKey = _base58.base58btc.decode(parsed.id);
|
|
453
|
+
const keyType = decode(multicodecPubKey);
|
|
454
|
+
const pubKeyBytes = multicodecPubKey.slice(decode.bytes);
|
|
489
455
|
const args = {
|
|
490
456
|
pubKeyBytes,
|
|
491
457
|
fingerprint: parsed.id,
|
|
@@ -517,4 +483,10 @@ var getResolver = /* @__PURE__ */ __name(() => {
|
|
|
517
483
|
var index_default = {
|
|
518
484
|
getResolver
|
|
519
485
|
};
|
|
486
|
+
|
|
487
|
+
|
|
488
|
+
|
|
489
|
+
|
|
490
|
+
|
|
491
|
+
exports.DID_JSON = DID_JSON; exports.DID_LD_JSON = DID_LD_JSON; exports.default = index_default; exports.getResolver = getResolver;
|
|
520
492
|
//# sourceMappingURL=index.cjs.map
|
package/dist/index.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.ts","../src/drivers/ed25519.ts","../src/types.ts","../src/drivers/bls12381g2.ts","../src/drivers/secp256k1.ts","../src/drivers/secp256r1.ts","../src/drivers/secp384r1.ts","../src/drivers/secp521r1.ts","../src/drivers/jwk.jcs.ts"],"sourcesContent":["import { decode } from 'varint'\n// @ts-ignore\nimport { base58btc } from 'multiformats/bases/base58'\nimport ed25519 from './drivers/ed25519'\nimport bls12381g2 from './drivers/bls12381g2'\nimport secp256k1 from './drivers/secp256k1'\nimport secp256r1 from './drivers/secp256r1'\nimport secp384r1 from './drivers/secp384r1'\nimport secp521r1 from './drivers/secp521r1'\nimport { DIDResolutionResult, ParsedDID, Resolvable, ResolverRegistry } from 'did-resolver'\nimport jwkJcs from './drivers/jwk.jcs'\nimport { DID_JSON, DID_LD_JSON, DIDKeyResolutionOptions, KeyToDidDocArgs } from './types'\n\nexport * from './types'\n\nconst prefixToDriverMap: any = {\n 0xe7: secp256k1,\n 0xed: ed25519,\n 0x1200: secp256r1,\n 0x1201: secp384r1,\n 0x1202: secp521r1,\n 0xeb: bls12381g2,\n 0xeb51: jwkJcs,\n}\n\nexport const getResolver = (): ResolverRegistry => {\n return {\n key: async (did: string, parsed: ParsedDID, r: Resolvable, options: DIDKeyResolutionOptions) => {\n const contentType = options.accept || DID_LD_JSON\n const response: DIDResolutionResult = {\n didResolutionMetadata: { contentType },\n didDocument: null,\n didDocumentMetadata: {},\n }\n try {\n const multicodecPubKey = base58btc.decode(parsed.id)\n const keyType = decode(multicodecPubKey)\n const pubKeyBytes = multicodecPubKey.slice(decode.bytes)\n const args: KeyToDidDocArgs = { pubKeyBytes, fingerprint: parsed.id, contentType, options }\n const doc = await prefixToDriverMap[keyType].keyToDidDoc(args)\n if (contentType === DID_LD_JSON) {\n if (!doc['@context']) {\n doc['@context'] = 'https://w3id.org/did/v1'\n } else if (\n Array.isArray(doc['@context']) &&\n !doc['@context'].includes('https://w3id.org/did/v1') &&\n !doc['@context'].includes('https://www.w3.org/ns/did/v1')\n ) {\n doc['@context'].push('https://w3id.org/did/v1')\n }\n response.didDocument = doc\n } else if (contentType === DID_JSON) {\n response.didDocument = doc\n } else {\n delete response.didResolutionMetadata.contentType\n response.didResolutionMetadata.error = 'representationNotSupported'\n }\n } catch (e: any) {\n response.didResolutionMetadata.error = 'invalidDid'\n response.didResolutionMetadata.message = e.toString()\n }\n return response\n },\n }\n}\nexport default { getResolver }\n","\n// @ts-ignore\nimport { toString } from 'uint8arrays/to-string'\nimport { DIDDocument } from 'did-resolver'\n// import { edwardsToMontgomery } from '@noble/curves/ed25519'\nimport { convertPublicKeyToX25519 } from '@stablelib/ed25519'\nimport { DID_LD_JSON, KeyToDidDocArgs } from '../types'\n\nfunction encodeKey(key: Uint8Array, encodeKey?: number) {\n const bytes = new Uint8Array(key.length + 2)\n bytes[0] = encodeKey ?? 0xec\n // The multicodec is encoded as a varint so we need to add this.\n // See js-multicodec for a general implementation\n bytes[1] = 0x01\n bytes.set(key, 2)\n return `z${toString(bytes, 'base58btc')}`\n}\n\nexport const keyToDidDoc = (args: KeyToDidDocArgs) => {\n const { options } = args\n if (!options?.publicKeyFormat) {\n return keyToDidDoc2020(args)\n }\n switch (options.publicKeyFormat) {\n case 'Ed25519VerificationKey2018':\n case 'X25519KeyAgreementKey2019':\n return keyToDidDoc2018_2019(args)\n case 'Ed25519VerificationKey2020':\n case 'X25519KeyAgreementKey2020':\n case 'Multikey':\n return keyToDidDoc2020(args)\n default:\n throw Error(`${options.publicKeyFormat} not supported yet for the ed25519 driver`)\n }\n}\nconst keyToDidDoc2018_2019 = ({ pubKeyBytes, fingerprint, contentType }: KeyToDidDocArgs): DIDDocument => {\n const did = `did:key:${fingerprint}`\n const keyId = `${did}#${fingerprint}`\n\n //todo: Move to noble lib. x25519 values differ between below methods. Current implementation is correct according to DID:key spec\n // const pubKeyHex = toString(pubKeyBytes, 'base16')\n // const x25519PubBytes = edwardsToMontgomery(pubKeyHex)\n const x25519PubBytes = convertPublicKeyToX25519(pubKeyBytes)\n\n const x25519KeyId = `${did}#${encodeKey(x25519PubBytes)}`\n return {\n ...(contentType === DID_LD_JSON && {\n '@context': [\n 'https://www.w3.org/ns/did/v1',\n 'https://w3id.org/security/suites/ed25519-2018/v1',\n 'https://w3id.org/security/suites/x25519-2019/v1',\n ],\n }),\n id: did,\n verificationMethod: [\n {\n id: keyId,\n type: 'Ed25519VerificationKey2018',\n controller: did,\n publicKeyBase58: toString(pubKeyBytes, 'base58btc'),\n },\n {\n id: x25519KeyId,\n type: 'X25519KeyAgreementKey2019',\n controller: did,\n publicKeyBase58: toString(x25519PubBytes, 'base58btc'),\n },\n ],\n authentication: [keyId],\n assertionMethod: [keyId],\n capabilityDelegation: [keyId],\n capabilityInvocation: [keyId],\n keyAgreement: [x25519KeyId],\n }\n}\n\nconst keyToDidDoc2020 = ({ pubKeyBytes, fingerprint, contentType }: KeyToDidDocArgs): DIDDocument => {\n const did = `did:key:${fingerprint}`\n const keyId = `${did}#${fingerprint}`\n //todo: Move to noble lib. x25519 values differ between below methods. Current implementation is correct according to DID:key spec\n // const pubKeyHex = u8a.toString(pubKeyBytes, 'base16')\n // const x25519PubBytes = edwardsToMontgomery(pubKeyBytes)\n const x25519PubBytes = convertPublicKeyToX25519(pubKeyBytes)\n\n const x25519KeyId = `${did}#${encodeKey(x25519PubBytes)}`\n return {\n ...(contentType === DID_LD_JSON && {\n '@context': [\n 'https://www.w3.org/ns/did/v1',\n 'https://w3id.org/security/suites/ed25519-2020/v1',\n 'https://w3id.org/security/suites/x25519-2020/v1',\n ],\n }),\n id: did,\n verificationMethod: [\n {\n id: keyId,\n type: 'Ed25519VerificationKey2020',\n controller: did,\n publicKeyMultibase: encodeKey(pubKeyBytes, 0xed),\n },\n ],\n authentication: [keyId],\n assertionMethod: [keyId],\n capabilityDelegation: [keyId],\n capabilityInvocation: [keyId],\n keyAgreement: [\n {\n id: x25519KeyId,\n type: 'X25519KeyAgreementKey2020',\n controller: did,\n publicKeyMultibase: encodeKey(x25519PubBytes, 0xec),\n },\n ],\n }\n}\nexport default { keyToDidDoc }\n","import { DIDResolutionOptions } from 'did-resolver'\n\nexport const DID_LD_JSON = 'application/did+ld+json'\nexport const DID_JSON = 'application/did+json'\n\nexport type PublicKeyFormat =\n | 'JsonWebKey2020'\n | 'Ed25519VerificationKey2018'\n | 'X25519KeyAgreementKey2019'\n | 'Ed25519VerificationKey2020'\n | 'X25519KeyAgreementKey2020'\n | 'Multikey'\nexport interface KeyToDidDocArgs {\n pubKeyBytes: Uint8Array\n fingerprint: string\n contentType?: string\n options?: DIDKeyResolutionOptions\n}\n\nexport interface DIDKeyResolutionOptions extends DIDResolutionOptions {\n publicKeyFormat?: PublicKeyFormat\n}\n","import { DIDDocument } from 'did-resolver'\n// @ts-ignore\nimport { toString } from 'uint8arrays/to-string'\nimport { KeyToDidDocArgs } from '../index'\n\nexport const keyToDidDoc = ({ pubKeyBytes, fingerprint }: KeyToDidDocArgs): DIDDocument => {\n const did = `did:key:${fingerprint}`\n const keyId = `${did}#${fingerprint}`\n return {\n id: did,\n verificationMethod: [\n {\n id: keyId,\n type: 'Bls12381G2Key2020',\n controller: did,\n publicKeyBase58: toString(pubKeyBytes, 'base58btc'),\n },\n ],\n authentication: [keyId],\n assertionMethod: [keyId],\n capabilityDelegation: [keyId],\n capabilityInvocation: [keyId],\n }\n}\nexport default { keyToDidDoc }\n","// @ts-ignore\nimport { toString } from 'uint8arrays/to-string'\nimport { DIDDocument } from 'did-resolver'\nimport { KeyToDidDocArgs } from '../types'\n\nexport const keyToDidDoc = ({ pubKeyBytes, fingerprint }: KeyToDidDocArgs): DIDDocument => {\n const did = `did:key:${fingerprint}`\n const keyId = `${did}#${fingerprint}`\n return {\n id: did,\n verificationMethod: [\n {\n id: keyId,\n type: 'Secp256k1VerificationKey2018',\n controller: did,\n publicKeyBase58: toString(pubKeyBytes, 'base58btc'),\n },\n ],\n authentication: [keyId],\n assertionMethod: [keyId],\n capabilityDelegation: [keyId],\n capabilityInvocation: [keyId],\n }\n}\n\nexport default { keyToDidDoc }\n","// Brent Shambaugh <brent.shambaugh@gmail.com>. 2021.\n\nimport * as nist_weierstrauss from 'nist-weierstrauss'\nimport {base64urlPoint} from 'nist-weierstrauss'\n// @ts-ignore\nimport {fromString} from 'uint8arrays/from-string'\nimport {KeyToDidDocArgs} from '../types'\n\n/**\n * Constructs the document based on the method key\n */\nexport function keyToDidDoc({ pubKeyBytes, fingerprint }: KeyToDidDocArgs): any {\n const did = `did:key:${fingerprint}`\n const keyId = `${did}#${fingerprint}`\n const key = pubKeyBytesToXY(pubKeyBytes)\n return {\n id: did,\n verificationMethod: [\n {\n id: keyId,\n type: 'JsonWebKey2020',\n controller: did,\n publicKeyJwk: {\n kty: 'EC',\n crv: 'P-256',\n x: key.xm,\n y: key.ym,\n },\n },\n ],\n authentication: [keyId],\n assertionMethod: [keyId],\n capabilityDelegation: [keyId],\n capabilityInvocation: [keyId],\n }\n}\n\n/**\n *\n * @param pubKeyBytes - public key as uncompressed byte array with no prefix (raw key),\n * uncompressed with 0x04 prefix, or compressed with 0x02 prefix if even and 0x03 prefix if odd.\n * @returns point x,y with coordinates as multibase encoded base64urls\n *\n * See the the did:key specification: https://w3c-ccg.github.io/did-method-key/#p-256.\n * At present only raw p-256 keys are covered in the specification.\n * @throws TypeError: input cannot be null or undefined.\n * @throws Error: Unexpected pubKeyBytes\n * @internal\n */\nexport function pubKeyBytesToXY(pubKeyBytes: Uint8Array): base64urlPoint {\n if (!nist_weierstrauss.nist_weierstrauss_common.testUint8Array(pubKeyBytes)) {\n throw new TypeError('input must be a Uint8Array')\n }\n const publicKeyHex = nist_weierstrauss.nist_weierstrauss_common.pubKeyBytesToHex(pubKeyBytes)\n const bytesCount = publicKeyHex.length / 2\n\n // raw p-256 key\n if (bytesCount == 64) {\n return nist_weierstrauss.nist_weierstrauss_common.publicKeyToXY(publicKeyHex)\n }\n\n // uncompressed p-256 key, SEC format\n if (bytesCount == 65) {\n if (publicKeyHex.slice(0, 2) == '04') {\n const publicKey = publicKeyHex.slice(2)\n return nist_weierstrauss.nist_weierstrauss_common.publicKeyToXY(publicKey)\n }\n }\n\n // compressed p-256 key, SEC format\n if (bytesCount == 33) {\n if (publicKeyHex.slice(0, 2) == '03' || publicKeyHex.slice(0, 2) == '02') {\n const publicKey = fromString(publicKeyHex, 'base16')\n const point = nist_weierstrauss.secp256r1.ECPointDecompress(publicKey)\n return nist_weierstrauss.nist_weierstrauss_common.publicKeyIntToXY(point)\n }\n }\n\n throw new Error('Unexpected pubKeyBytes')\n}\n\nexport default { keyToDidDoc }\n","// Brent Shambaugh <brent.shambaugh@gmail.com>. 2021.\n\n// @ts-ignore\nimport { fromString } from 'uint8arrays/from-string'\n\nimport * as nist_weierstrauss from 'nist-weierstrauss'\nimport { base64urlPoint } from 'nist-weierstrauss'\nimport { KeyToDidDocArgs } from '../types'\n\n/**\n * Constructs the document based on the method key\n */\nexport function keyToDidDoc({ pubKeyBytes, fingerprint }: KeyToDidDocArgs): any {\n const did = `did:key:${fingerprint}`\n const keyId = `${did}#${fingerprint}`\n const key = pubKeyBytesToXY(pubKeyBytes)\n return {\n id: did,\n verificationMethod: [\n {\n id: keyId,\n type: 'JsonWebKey2020',\n controller: did,\n publicKeyJwk: {\n kty: 'EC',\n crv: 'P-384',\n x: key.xm,\n y: key.ym,\n },\n },\n ],\n authentication: [keyId],\n assertionMethod: [keyId],\n capabilityDelegation: [keyId],\n capabilityInvocation: [keyId],\n }\n}\n\n/**\n *\n * @param pubKeyBytes - public key as uncompressed byte array with no prefix (raw key),\n * uncompressed with 0x04 prefix, or compressed with 0x02 prefix if even and 0x03 prefix if odd.\n * @returns point x,y with coordinates as multibase encoded base64urls\n *\n * See the the did:key specification: https://w3c-ccg.github.io/did-method-key/#p-384.\n * At present only raw p-384 keys are covered in the specification.\n * @throws TypeError: input cannot be null or undefined.\n * @throws Error: Unexpected pubKeyBytes\n * @internal\n */\nexport function pubKeyBytesToXY(pubKeyBytes: Uint8Array): base64urlPoint {\n if (!nist_weierstrauss.nist_weierstrauss_common.testUint8Array(pubKeyBytes)) {\n throw new TypeError('input must be a Uint8Array')\n }\n const publicKeyHex = nist_weierstrauss.nist_weierstrauss_common.pubKeyBytesToHex(pubKeyBytes)\n const bytesCount = publicKeyHex.length / 2\n\n // raw p-384 key\n if (bytesCount == 96) {\n return nist_weierstrauss.nist_weierstrauss_common.publicKeyToXY(publicKeyHex)\n }\n\n // uncompressed p-384 key, SEC format\n if (bytesCount == 97) {\n if (publicKeyHex.slice(0, 2) == '04') {\n const publicKey = publicKeyHex.slice(2)\n return nist_weierstrauss.nist_weierstrauss_common.publicKeyToXY(publicKey)\n }\n }\n\n // compressed p-384 key, SEC format\n if (bytesCount == 49) {\n if (publicKeyHex.slice(0, 2) == '03' || publicKeyHex.slice(0, 2) == '02') {\n const publicKey = fromString(publicKeyHex, 'base16')\n const point = nist_weierstrauss.secp384r1.ECPointDecompress(publicKey)\n return nist_weierstrauss.nist_weierstrauss_common.publicKeyIntToXY(point)\n }\n }\n\n throw new Error('Unexpected pubKeyBytes')\n}\n\nexport default { keyToDidDoc }\n","// Brent Shambaugh <brent.shambaugh@gmail.com>. 2021.\n\n// @ts-ignore\nimport { fromString } from 'uint8arrays/from-string'\n\nimport * as nist_weierstrauss from 'nist-weierstrauss'\nimport { base64urlPoint } from 'nist-weierstrauss'\nimport { KeyToDidDocArgs } from '../types'\n\n/**\n * Constructs the document based on the method key\n */\nexport function keyToDidDoc({ pubKeyBytes, fingerprint }: KeyToDidDocArgs): any {\n const did = `did:key:${fingerprint}`\n const keyId = `${did}#${fingerprint}`\n const key = pubKeyBytesToXY(pubKeyBytes)\n return {\n id: did,\n verificationMethod: [\n {\n id: keyId,\n type: 'JsonWebKey2020',\n controller: did,\n publicKeyJwk: {\n kty: 'EC',\n crv: 'P-521',\n x: key.xm,\n y: key.ym,\n },\n },\n ],\n authentication: [keyId],\n assertionMethod: [keyId],\n capabilityDelegation: [keyId],\n capabilityInvocation: [keyId],\n }\n}\n\n/**\n *\n * @param pubKeyBytes - public key as compressed with 0x02 prefix if even and 0x03 prefix if odd.\n * @returns point x,y with coordinates as multibase encoded base64urls\n *\n * See the the did:key specification: https://w3c-ccg.github.io/did-method-key/#p-521.\n * For compression see: https://tools.ietf.org/id/draft-jivsov-ecc-compact-05.html#rfc.section.3\n * @throws TypeError: input cannot be null or undefined.\n * @throws Error: Unexpected pubKeyBytes\n * @internal\n */\nexport function pubKeyBytesToXY(pubKeyBytes: Uint8Array): base64urlPoint {\n if (!nist_weierstrauss.nist_weierstrauss_common.testUint8Array(pubKeyBytes)) {\n throw new TypeError('input must be a Uint8Array')\n }\n const publicKeyHex = nist_weierstrauss.nist_weierstrauss_common.pubKeyBytesToHex(pubKeyBytes)\n\n // compressed p-521 key, SEC format\n // publicKeyHex.length / 2.0 = 67.0 bytes\n if (132 <= publicKeyHex.length && publicKeyHex.length <= 134) {\n if (publicKeyHex.slice(0, 2) == '03' || publicKeyHex.slice(0, 2) == '02') {\n const publicKey = fromString(publicKeyHex, 'base16')\n const point = nist_weierstrauss.secp521r1.ECPointDecompress(publicKey)\n return nist_weierstrauss.nist_weierstrauss_common.publicKeyIntToXY(point)\n }\n }\n\n throw new Error('Unexpected pubKeyBytes')\n}\n\nexport default { keyToDidDoc }\n","import { DIDDocument, JsonWebKey as DIFJWK } from 'did-resolver'\nimport { DID_LD_JSON, KeyToDidDocArgs } from '../index'\nimport { jwkJcsDecode } from '@sphereon/ssi-sdk-ext.key-utils'\n\nexport const keyToDidDoc = ({ pubKeyBytes, fingerprint, contentType }: KeyToDidDocArgs): DIDDocument => {\n const did = `did:key:${fingerprint}`\n const keyId = `${did}#${fingerprint}`\n const publicKeyJwk = jwkJcsDecode(pubKeyBytes) as DIFJWK\n return {\n ...(contentType === DID_LD_JSON && {\n '@context': ['https://www.w3.org/ns/did/v1', 'https://w3id.org/security/suites/jws-2020/v1'],\n }),\n id: did,\n verificationMethod: [\n {\n id: keyId,\n type: 'JsonWebKey2020',\n controller: did,\n publicKeyJwk,\n },\n ],\n authentication: [keyId],\n assertionMethod: [keyId],\n capabilityDelegation: [keyId],\n capabilityInvocation: [keyId],\n }\n}\nexport default { keyToDidDoc }\n"],"mappings":"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","names":["DID_LD_JSON","DID_JSON","encodeKey","key","bytes","Uint8Array","length","set","toString","keyToDidDoc","args","options","publicKeyFormat","keyToDidDoc2020","keyToDidDoc2018_2019","Error","pubKeyBytes","fingerprint","contentType","did","keyId","x25519PubBytes","convertPublicKeyToX25519","x25519KeyId","DID_LD_JSON","id","verificationMethod","type","controller","publicKeyBase58","authentication","assertionMethod","capabilityDelegation","capabilityInvocation","keyAgreement","publicKeyMultibase","import_to_string","keyToDidDoc","pubKeyBytes","fingerprint","did","keyId","id","verificationMethod","type","controller","publicKeyBase58","toString","authentication","assertionMethod","capabilityDelegation","capabilityInvocation","import_to_string","keyToDidDoc","pubKeyBytes","fingerprint","did","keyId","id","verificationMethod","type","controller","publicKeyBase58","toString","authentication","assertionMethod","capabilityDelegation","capabilityInvocation","keyToDidDoc","pubKeyBytes","fingerprint","did","keyId","key","pubKeyBytesToXY","id","verificationMethod","type","controller","publicKeyJwk","kty","crv","x","xm","y","ym","authentication","assertionMethod","capabilityDelegation","capabilityInvocation","nist_weierstrauss_common","testUint8Array","TypeError","publicKeyHex","pubKeyBytesToHex","bytesCount","length","publicKeyToXY","slice","publicKey","fromString","point","secp256r1","ECPointDecompress","publicKeyIntToXY","Error","import_from_string","nist_weierstrauss","keyToDidDoc","pubKeyBytes","fingerprint","did","keyId","key","pubKeyBytesToXY","id","verificationMethod","type","controller","publicKeyJwk","kty","crv","x","xm","y","ym","authentication","assertionMethod","capabilityDelegation","capabilityInvocation","nist_weierstrauss_common","testUint8Array","TypeError","publicKeyHex","pubKeyBytesToHex","bytesCount","length","publicKeyToXY","slice","publicKey","fromString","point","secp384r1","ECPointDecompress","publicKeyIntToXY","Error","import_from_string","nist_weierstrauss","keyToDidDoc","pubKeyBytes","fingerprint","did","keyId","key","pubKeyBytesToXY","id","verificationMethod","type","controller","publicKeyJwk","kty","crv","x","xm","y","ym","authentication","assertionMethod","capabilityDelegation","capabilityInvocation","nist_weierstrauss_common","testUint8Array","TypeError","publicKeyHex","pubKeyBytesToHex","length","slice","publicKey","fromString","point","secp521r1","ECPointDecompress","publicKeyIntToXY","Error","keyToDidDoc","pubKeyBytes","fingerprint","contentType","did","keyId","publicKeyJwk","jwkJcsDecode","DID_LD_JSON","id","verificationMethod","type","controller","authentication","assertionMethod","capabilityDelegation","capabilityInvocation","prefixToDriverMap","secp256k1","ed25519","secp256r1","secp384r1","secp521r1","bls12381g2","jwkJcs","getResolver","key","did","parsed","r","options","contentType","accept","DID_LD_JSON","response","didResolutionMetadata","didDocument","didDocumentMetadata","multicodecPubKey","base58btc","decode","id","keyType","pubKeyBytes","slice","bytes","args","fingerprint","doc","keyToDidDoc","Array","isArray","includes","push","DID_JSON","error","e","message","toString"]}
|
|
1
|
+
{"version":3,"sources":["/home/runner/work/SSI-SDK-crypto-extensions/SSI-SDK-crypto-extensions/packages/did-resolver-key/dist/index.cjs","../src/index.ts","../src/drivers/ed25519.ts","../src/types.ts","../src/drivers/bls12381g2.ts","../src/drivers/secp256k1.ts","../src/drivers/secp256r1.ts","../src/drivers/secp384r1.ts","../src/drivers/secp521r1.ts","../src/drivers/jwk.jcs.ts"],"names":["DID_LD_JSON","DID_JSON","encodeKey","key","bytes","Uint8Array","length","set","toString","args","publicKeyFormat","fingerprint","convertPublicKeyToX25519","x25519PubBytes","did","keyId","pubKeyBytes","x25519KeyId","keyToDidDoc","xm","ym","nist_weierstrauss_common","slice","publicKeyHex","secp256r1","pubKeyBytesToXY","secp384r1","secp521r1","publicKeyJwk","varint","secp256k1","ed25519","bls12381g2","jwkJcs","accept","contentType","base58btc","multicodecPubKey","id","options","prefixToDriverMap","doc","didResolutionMetadata","error","message","response","getResolver"],"mappings":"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","file":"/home/runner/work/SSI-SDK-crypto-extensions/SSI-SDK-crypto-extensions/packages/did-resolver-key/dist/index.cjs","sourcesContent":[null,"import varint from 'varint';\nconst { decode } = varint;\n// @ts-ignore\nimport { base58btc } from 'multiformats/bases/base58'\nimport ed25519 from './drivers/ed25519'\nimport bls12381g2 from './drivers/bls12381g2'\nimport secp256k1 from './drivers/secp256k1'\nimport secp256r1 from './drivers/secp256r1'\nimport secp384r1 from './drivers/secp384r1'\nimport secp521r1 from './drivers/secp521r1'\nimport { DIDResolutionResult, ParsedDID, Resolvable, ResolverRegistry } from 'did-resolver'\nimport jwkJcs from './drivers/jwk.jcs'\nimport { DID_JSON, DID_LD_JSON, DIDKeyResolutionOptions, KeyToDidDocArgs } from './types'\n\nexport * from './types'\n\nconst prefixToDriverMap: any = {\n 0xe7: secp256k1,\n 0xed: ed25519,\n 0x1200: secp256r1,\n 0x1201: secp384r1,\n 0x1202: secp521r1,\n 0xeb: bls12381g2,\n 0xeb51: jwkJcs,\n}\n\nexport const getResolver = (): ResolverRegistry => {\n return {\n key: async (did: string, parsed: ParsedDID, r: Resolvable, options: DIDKeyResolutionOptions) => {\n const contentType = options.accept || DID_LD_JSON\n const response: DIDResolutionResult = {\n didResolutionMetadata: { contentType },\n didDocument: null,\n didDocumentMetadata: {},\n }\n try {\n const multicodecPubKey = base58btc.decode(parsed.id)\n const keyType = decode(multicodecPubKey)\n const pubKeyBytes = multicodecPubKey.slice(decode.bytes)\n const args: KeyToDidDocArgs = { pubKeyBytes, fingerprint: parsed.id, contentType, options }\n const doc = await prefixToDriverMap[keyType].keyToDidDoc(args)\n if (contentType === DID_LD_JSON) {\n if (!doc['@context']) {\n doc['@context'] = 'https://w3id.org/did/v1'\n } else if (\n Array.isArray(doc['@context']) &&\n !doc['@context'].includes('https://w3id.org/did/v1') &&\n !doc['@context'].includes('https://www.w3.org/ns/did/v1')\n ) {\n doc['@context'].push('https://w3id.org/did/v1')\n }\n response.didDocument = doc\n } else if (contentType === DID_JSON) {\n response.didDocument = doc\n } else {\n delete response.didResolutionMetadata.contentType\n response.didResolutionMetadata.error = 'representationNotSupported'\n }\n } catch (e: any) {\n response.didResolutionMetadata.error = 'invalidDid'\n response.didResolutionMetadata.message = e.toString()\n }\n return response\n },\n }\n}\nexport default { getResolver }\n","\n// @ts-ignore\nimport { toString } from 'uint8arrays/to-string'\nimport { DIDDocument } from 'did-resolver'\n// import { edwardsToMontgomery } from '@noble/curves/ed25519'\nimport { convertPublicKeyToX25519 } from '@stablelib/ed25519'\nimport { DID_LD_JSON, KeyToDidDocArgs } from '../types'\n\nfunction encodeKey(key: Uint8Array, encodeKey?: number) {\n const bytes = new Uint8Array(key.length + 2)\n bytes[0] = encodeKey ?? 0xec\n // The multicodec is encoded as a varint so we need to add this.\n // See js-multicodec for a general implementation\n bytes[1] = 0x01\n bytes.set(key, 2)\n return `z${toString(bytes, 'base58btc')}`\n}\n\nexport const keyToDidDoc = (args: KeyToDidDocArgs) => {\n const { options } = args\n if (!options?.publicKeyFormat) {\n return keyToDidDoc2020(args)\n }\n switch (options.publicKeyFormat) {\n case 'Ed25519VerificationKey2018':\n case 'X25519KeyAgreementKey2019':\n return keyToDidDoc2018_2019(args)\n case 'Ed25519VerificationKey2020':\n case 'X25519KeyAgreementKey2020':\n case 'Multikey':\n return keyToDidDoc2020(args)\n default:\n throw Error(`${options.publicKeyFormat} not supported yet for the ed25519 driver`)\n }\n}\nconst keyToDidDoc2018_2019 = ({ pubKeyBytes, fingerprint, contentType }: KeyToDidDocArgs): DIDDocument => {\n const did = `did:key:${fingerprint}`\n const keyId = `${did}#${fingerprint}`\n\n //todo: Move to noble lib. x25519 values differ between below methods. Current implementation is correct according to DID:key spec\n // const pubKeyHex = toString(pubKeyBytes, 'base16')\n // const x25519PubBytes = edwardsToMontgomery(pubKeyHex)\n const x25519PubBytes = convertPublicKeyToX25519(pubKeyBytes)\n\n const x25519KeyId = `${did}#${encodeKey(x25519PubBytes)}`\n return {\n ...(contentType === DID_LD_JSON && {\n '@context': [\n 'https://www.w3.org/ns/did/v1',\n 'https://w3id.org/security/suites/ed25519-2018/v1',\n 'https://w3id.org/security/suites/x25519-2019/v1',\n ],\n }),\n id: did,\n verificationMethod: [\n {\n id: keyId,\n type: 'Ed25519VerificationKey2018',\n controller: did,\n publicKeyBase58: toString(pubKeyBytes, 'base58btc'),\n },\n {\n id: x25519KeyId,\n type: 'X25519KeyAgreementKey2019',\n controller: did,\n publicKeyBase58: toString(x25519PubBytes, 'base58btc'),\n },\n ],\n authentication: [keyId],\n assertionMethod: [keyId],\n capabilityDelegation: [keyId],\n capabilityInvocation: [keyId],\n keyAgreement: [x25519KeyId],\n }\n}\n\nconst keyToDidDoc2020 = ({ pubKeyBytes, fingerprint, contentType }: KeyToDidDocArgs): DIDDocument => {\n const did = `did:key:${fingerprint}`\n const keyId = `${did}#${fingerprint}`\n //todo: Move to noble lib. x25519 values differ between below methods. Current implementation is correct according to DID:key spec\n // const pubKeyHex = u8a.toString(pubKeyBytes, 'base16')\n // const x25519PubBytes = edwardsToMontgomery(pubKeyBytes)\n const x25519PubBytes = convertPublicKeyToX25519(pubKeyBytes)\n\n const x25519KeyId = `${did}#${encodeKey(x25519PubBytes)}`\n return {\n ...(contentType === DID_LD_JSON && {\n '@context': [\n 'https://www.w3.org/ns/did/v1',\n 'https://w3id.org/security/suites/ed25519-2020/v1',\n 'https://w3id.org/security/suites/x25519-2020/v1',\n ],\n }),\n id: did,\n verificationMethod: [\n {\n id: keyId,\n type: 'Ed25519VerificationKey2020',\n controller: did,\n publicKeyMultibase: encodeKey(pubKeyBytes, 0xed),\n },\n ],\n authentication: [keyId],\n assertionMethod: [keyId],\n capabilityDelegation: [keyId],\n capabilityInvocation: [keyId],\n keyAgreement: [\n {\n id: x25519KeyId,\n type: 'X25519KeyAgreementKey2020',\n controller: did,\n publicKeyMultibase: encodeKey(x25519PubBytes, 0xec),\n },\n ],\n }\n}\nexport default { keyToDidDoc }\n","import { DIDResolutionOptions } from 'did-resolver'\n\nexport const DID_LD_JSON = 'application/did+ld+json'\nexport const DID_JSON = 'application/did+json'\n\nexport type PublicKeyFormat =\n | 'JsonWebKey2020'\n | 'Ed25519VerificationKey2018'\n | 'X25519KeyAgreementKey2019'\n | 'Ed25519VerificationKey2020'\n | 'X25519KeyAgreementKey2020'\n | 'Multikey'\nexport interface KeyToDidDocArgs {\n pubKeyBytes: Uint8Array\n fingerprint: string\n contentType?: string\n options?: DIDKeyResolutionOptions\n}\n\nexport interface DIDKeyResolutionOptions extends DIDResolutionOptions {\n publicKeyFormat?: PublicKeyFormat\n}\n","import { DIDDocument } from 'did-resolver'\n// @ts-ignore\nimport { toString } from 'uint8arrays/to-string'\nimport { KeyToDidDocArgs } from '../index'\n\nexport const keyToDidDoc = ({ pubKeyBytes, fingerprint }: KeyToDidDocArgs): DIDDocument => {\n const did = `did:key:${fingerprint}`\n const keyId = `${did}#${fingerprint}`\n return {\n id: did,\n verificationMethod: [\n {\n id: keyId,\n type: 'Bls12381G2Key2020',\n controller: did,\n publicKeyBase58: toString(pubKeyBytes, 'base58btc'),\n },\n ],\n authentication: [keyId],\n assertionMethod: [keyId],\n capabilityDelegation: [keyId],\n capabilityInvocation: [keyId],\n }\n}\nexport default { keyToDidDoc }\n","// @ts-ignore\nimport { toString } from 'uint8arrays/to-string'\nimport { DIDDocument } from 'did-resolver'\nimport { KeyToDidDocArgs } from '../types'\n\nexport const keyToDidDoc = ({ pubKeyBytes, fingerprint }: KeyToDidDocArgs): DIDDocument => {\n const did = `did:key:${fingerprint}`\n const keyId = `${did}#${fingerprint}`\n return {\n id: did,\n verificationMethod: [\n {\n id: keyId,\n type: 'Secp256k1VerificationKey2018',\n controller: did,\n publicKeyBase58: toString(pubKeyBytes, 'base58btc'),\n },\n ],\n authentication: [keyId],\n assertionMethod: [keyId],\n capabilityDelegation: [keyId],\n capabilityInvocation: [keyId],\n }\n}\n\nexport default { keyToDidDoc }\n","// Brent Shambaugh <brent.shambaugh@gmail.com>. 2021.\n\nimport * as nist_weierstrauss from 'nist-weierstrauss'\nimport {base64urlPoint} from 'nist-weierstrauss'\n// @ts-ignore\nimport {fromString} from 'uint8arrays/from-string'\nimport {KeyToDidDocArgs} from '../types'\n\n/**\n * Constructs the document based on the method key\n */\nexport function keyToDidDoc({ pubKeyBytes, fingerprint }: KeyToDidDocArgs): any {\n const did = `did:key:${fingerprint}`\n const keyId = `${did}#${fingerprint}`\n const key = pubKeyBytesToXY(pubKeyBytes)\n return {\n id: did,\n verificationMethod: [\n {\n id: keyId,\n type: 'JsonWebKey2020',\n controller: did,\n publicKeyJwk: {\n kty: 'EC',\n crv: 'P-256',\n x: key.xm,\n y: key.ym,\n },\n },\n ],\n authentication: [keyId],\n assertionMethod: [keyId],\n capabilityDelegation: [keyId],\n capabilityInvocation: [keyId],\n }\n}\n\n/**\n *\n * @param pubKeyBytes - public key as uncompressed byte array with no prefix (raw key),\n * uncompressed with 0x04 prefix, or compressed with 0x02 prefix if even and 0x03 prefix if odd.\n * @returns point x,y with coordinates as multibase encoded base64urls\n *\n * See the the did:key specification: https://w3c-ccg.github.io/did-method-key/#p-256.\n * At present only raw p-256 keys are covered in the specification.\n * @throws TypeError: input cannot be null or undefined.\n * @throws Error: Unexpected pubKeyBytes\n * @internal\n */\nexport function pubKeyBytesToXY(pubKeyBytes: Uint8Array): base64urlPoint {\n if (!nist_weierstrauss.nist_weierstrauss_common.testUint8Array(pubKeyBytes)) {\n throw new TypeError('input must be a Uint8Array')\n }\n const publicKeyHex = nist_weierstrauss.nist_weierstrauss_common.pubKeyBytesToHex(pubKeyBytes)\n const bytesCount = publicKeyHex.length / 2\n\n // raw p-256 key\n if (bytesCount == 64) {\n return nist_weierstrauss.nist_weierstrauss_common.publicKeyToXY(publicKeyHex)\n }\n\n // uncompressed p-256 key, SEC format\n if (bytesCount == 65) {\n if (publicKeyHex.slice(0, 2) == '04') {\n const publicKey = publicKeyHex.slice(2)\n return nist_weierstrauss.nist_weierstrauss_common.publicKeyToXY(publicKey)\n }\n }\n\n // compressed p-256 key, SEC format\n if (bytesCount == 33) {\n if (publicKeyHex.slice(0, 2) == '03' || publicKeyHex.slice(0, 2) == '02') {\n const publicKey = fromString(publicKeyHex, 'base16')\n const point = nist_weierstrauss.secp256r1.ECPointDecompress(publicKey)\n return nist_weierstrauss.nist_weierstrauss_common.publicKeyIntToXY(point)\n }\n }\n\n throw new Error('Unexpected pubKeyBytes')\n}\n\nexport default { keyToDidDoc }\n","// Brent Shambaugh <brent.shambaugh@gmail.com>. 2021.\n\n// @ts-ignore\nimport { fromString } from 'uint8arrays/from-string'\n\nimport * as nist_weierstrauss from 'nist-weierstrauss'\nimport { base64urlPoint } from 'nist-weierstrauss'\nimport { KeyToDidDocArgs } from '../types'\n\n/**\n * Constructs the document based on the method key\n */\nexport function keyToDidDoc({ pubKeyBytes, fingerprint }: KeyToDidDocArgs): any {\n const did = `did:key:${fingerprint}`\n const keyId = `${did}#${fingerprint}`\n const key = pubKeyBytesToXY(pubKeyBytes)\n return {\n id: did,\n verificationMethod: [\n {\n id: keyId,\n type: 'JsonWebKey2020',\n controller: did,\n publicKeyJwk: {\n kty: 'EC',\n crv: 'P-384',\n x: key.xm,\n y: key.ym,\n },\n },\n ],\n authentication: [keyId],\n assertionMethod: [keyId],\n capabilityDelegation: [keyId],\n capabilityInvocation: [keyId],\n }\n}\n\n/**\n *\n * @param pubKeyBytes - public key as uncompressed byte array with no prefix (raw key),\n * uncompressed with 0x04 prefix, or compressed with 0x02 prefix if even and 0x03 prefix if odd.\n * @returns point x,y with coordinates as multibase encoded base64urls\n *\n * See the the did:key specification: https://w3c-ccg.github.io/did-method-key/#p-384.\n * At present only raw p-384 keys are covered in the specification.\n * @throws TypeError: input cannot be null or undefined.\n * @throws Error: Unexpected pubKeyBytes\n * @internal\n */\nexport function pubKeyBytesToXY(pubKeyBytes: Uint8Array): base64urlPoint {\n if (!nist_weierstrauss.nist_weierstrauss_common.testUint8Array(pubKeyBytes)) {\n throw new TypeError('input must be a Uint8Array')\n }\n const publicKeyHex = nist_weierstrauss.nist_weierstrauss_common.pubKeyBytesToHex(pubKeyBytes)\n const bytesCount = publicKeyHex.length / 2\n\n // raw p-384 key\n if (bytesCount == 96) {\n return nist_weierstrauss.nist_weierstrauss_common.publicKeyToXY(publicKeyHex)\n }\n\n // uncompressed p-384 key, SEC format\n if (bytesCount == 97) {\n if (publicKeyHex.slice(0, 2) == '04') {\n const publicKey = publicKeyHex.slice(2)\n return nist_weierstrauss.nist_weierstrauss_common.publicKeyToXY(publicKey)\n }\n }\n\n // compressed p-384 key, SEC format\n if (bytesCount == 49) {\n if (publicKeyHex.slice(0, 2) == '03' || publicKeyHex.slice(0, 2) == '02') {\n const publicKey = fromString(publicKeyHex, 'base16')\n const point = nist_weierstrauss.secp384r1.ECPointDecompress(publicKey)\n return nist_weierstrauss.nist_weierstrauss_common.publicKeyIntToXY(point)\n }\n }\n\n throw new Error('Unexpected pubKeyBytes')\n}\n\nexport default { keyToDidDoc }\n","// Brent Shambaugh <brent.shambaugh@gmail.com>. 2021.\n\n// @ts-ignore\nimport { fromString } from 'uint8arrays/from-string'\n\nimport * as nist_weierstrauss from 'nist-weierstrauss'\nimport { base64urlPoint } from 'nist-weierstrauss'\nimport { KeyToDidDocArgs } from '../types'\n\n/**\n * Constructs the document based on the method key\n */\nexport function keyToDidDoc({ pubKeyBytes, fingerprint }: KeyToDidDocArgs): any {\n const did = `did:key:${fingerprint}`\n const keyId = `${did}#${fingerprint}`\n const key = pubKeyBytesToXY(pubKeyBytes)\n return {\n id: did,\n verificationMethod: [\n {\n id: keyId,\n type: 'JsonWebKey2020',\n controller: did,\n publicKeyJwk: {\n kty: 'EC',\n crv: 'P-521',\n x: key.xm,\n y: key.ym,\n },\n },\n ],\n authentication: [keyId],\n assertionMethod: [keyId],\n capabilityDelegation: [keyId],\n capabilityInvocation: [keyId],\n }\n}\n\n/**\n *\n * @param pubKeyBytes - public key as compressed with 0x02 prefix if even and 0x03 prefix if odd.\n * @returns point x,y with coordinates as multibase encoded base64urls\n *\n * See the the did:key specification: https://w3c-ccg.github.io/did-method-key/#p-521.\n * For compression see: https://tools.ietf.org/id/draft-jivsov-ecc-compact-05.html#rfc.section.3\n * @throws TypeError: input cannot be null or undefined.\n * @throws Error: Unexpected pubKeyBytes\n * @internal\n */\nexport function pubKeyBytesToXY(pubKeyBytes: Uint8Array): base64urlPoint {\n if (!nist_weierstrauss.nist_weierstrauss_common.testUint8Array(pubKeyBytes)) {\n throw new TypeError('input must be a Uint8Array')\n }\n const publicKeyHex = nist_weierstrauss.nist_weierstrauss_common.pubKeyBytesToHex(pubKeyBytes)\n\n // compressed p-521 key, SEC format\n // publicKeyHex.length / 2.0 = 67.0 bytes\n if (132 <= publicKeyHex.length && publicKeyHex.length <= 134) {\n if (publicKeyHex.slice(0, 2) == '03' || publicKeyHex.slice(0, 2) == '02') {\n const publicKey = fromString(publicKeyHex, 'base16')\n const point = nist_weierstrauss.secp521r1.ECPointDecompress(publicKey)\n return nist_weierstrauss.nist_weierstrauss_common.publicKeyIntToXY(point)\n }\n }\n\n throw new Error('Unexpected pubKeyBytes')\n}\n\nexport default { keyToDidDoc }\n","import { DIDDocument, JsonWebKey as DIFJWK } from 'did-resolver'\nimport { DID_LD_JSON, KeyToDidDocArgs } from '../index'\nimport { jwkJcsDecode } from '@sphereon/ssi-sdk-ext.key-utils'\n\nexport const keyToDidDoc = ({ pubKeyBytes, fingerprint, contentType }: KeyToDidDocArgs): DIDDocument => {\n const did = `did:key:${fingerprint}`\n const keyId = `${did}#${fingerprint}`\n const publicKeyJwk = jwkJcsDecode(pubKeyBytes) as DIFJWK\n return {\n ...(contentType === DID_LD_JSON && {\n '@context': ['https://www.w3.org/ns/did/v1', 'https://w3id.org/security/suites/jws-2020/v1'],\n }),\n id: did,\n verificationMethod: [\n {\n id: keyId,\n type: 'JsonWebKey2020',\n controller: did,\n publicKeyJwk,\n },\n ],\n authentication: [keyId],\n assertionMethod: [keyId],\n capabilityDelegation: [keyId],\n capabilityInvocation: [keyId],\n }\n}\nexport default { keyToDidDoc }\n"]}
|
package/dist/index.js
CHANGED
|
@@ -2,7 +2,7 @@ var __defProp = Object.defineProperty;
|
|
|
2
2
|
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
3
3
|
|
|
4
4
|
// src/index.ts
|
|
5
|
-
import
|
|
5
|
+
import varint from "varint";
|
|
6
6
|
import { base58btc } from "multiformats/bases/base58";
|
|
7
7
|
|
|
8
8
|
// src/drivers/ed25519.ts
|
|
@@ -427,6 +427,7 @@ var jwk_jcs_default = {
|
|
|
427
427
|
};
|
|
428
428
|
|
|
429
429
|
// src/index.ts
|
|
430
|
+
var { decode } = varint;
|
|
430
431
|
var prefixToDriverMap = {
|
|
431
432
|
231: secp256k1_default,
|
|
432
433
|
237: ed25519_default,
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.ts","../src/drivers/ed25519.ts","../src/types.ts","../src/drivers/bls12381g2.ts","../src/drivers/secp256k1.ts","../src/drivers/secp256r1.ts","../src/drivers/secp384r1.ts","../src/drivers/secp521r1.ts","../src/drivers/jwk.jcs.ts"],"sourcesContent":["import { decode } from 'varint'\n// @ts-ignore\nimport { base58btc } from 'multiformats/bases/base58'\nimport ed25519 from './drivers/ed25519'\nimport bls12381g2 from './drivers/bls12381g2'\nimport secp256k1 from './drivers/secp256k1'\nimport secp256r1 from './drivers/secp256r1'\nimport secp384r1 from './drivers/secp384r1'\nimport secp521r1 from './drivers/secp521r1'\nimport { DIDResolutionResult, ParsedDID, Resolvable, ResolverRegistry } from 'did-resolver'\nimport jwkJcs from './drivers/jwk.jcs'\nimport { DID_JSON, DID_LD_JSON, DIDKeyResolutionOptions, KeyToDidDocArgs } from './types'\n\nexport * from './types'\n\nconst prefixToDriverMap: any = {\n 0xe7: secp256k1,\n 0xed: ed25519,\n 0x1200: secp256r1,\n 0x1201: secp384r1,\n 0x1202: secp521r1,\n 0xeb: bls12381g2,\n 0xeb51: jwkJcs,\n}\n\nexport const getResolver = (): ResolverRegistry => {\n return {\n key: async (did: string, parsed: ParsedDID, r: Resolvable, options: DIDKeyResolutionOptions) => {\n const contentType = options.accept || DID_LD_JSON\n const response: DIDResolutionResult = {\n didResolutionMetadata: { contentType },\n didDocument: null,\n didDocumentMetadata: {},\n }\n try {\n const multicodecPubKey = base58btc.decode(parsed.id)\n const keyType = decode(multicodecPubKey)\n const pubKeyBytes = multicodecPubKey.slice(decode.bytes)\n const args: KeyToDidDocArgs = { pubKeyBytes, fingerprint: parsed.id, contentType, options }\n const doc = await prefixToDriverMap[keyType].keyToDidDoc(args)\n if (contentType === DID_LD_JSON) {\n if (!doc['@context']) {\n doc['@context'] = 'https://w3id.org/did/v1'\n } else if (\n Array.isArray(doc['@context']) &&\n !doc['@context'].includes('https://w3id.org/did/v1') &&\n !doc['@context'].includes('https://www.w3.org/ns/did/v1')\n ) {\n doc['@context'].push('https://w3id.org/did/v1')\n }\n response.didDocument = doc\n } else if (contentType === DID_JSON) {\n response.didDocument = doc\n } else {\n delete response.didResolutionMetadata.contentType\n response.didResolutionMetadata.error = 'representationNotSupported'\n }\n } catch (e: any) {\n response.didResolutionMetadata.error = 'invalidDid'\n response.didResolutionMetadata.message = e.toString()\n }\n return response\n },\n }\n}\nexport default { getResolver }\n","\n// @ts-ignore\nimport { toString } from 'uint8arrays/to-string'\nimport { DIDDocument } from 'did-resolver'\n// import { edwardsToMontgomery } from '@noble/curves/ed25519'\nimport { convertPublicKeyToX25519 } from '@stablelib/ed25519'\nimport { DID_LD_JSON, KeyToDidDocArgs } from '../types'\n\nfunction encodeKey(key: Uint8Array, encodeKey?: number) {\n const bytes = new Uint8Array(key.length + 2)\n bytes[0] = encodeKey ?? 0xec\n // The multicodec is encoded as a varint so we need to add this.\n // See js-multicodec for a general implementation\n bytes[1] = 0x01\n bytes.set(key, 2)\n return `z${toString(bytes, 'base58btc')}`\n}\n\nexport const keyToDidDoc = (args: KeyToDidDocArgs) => {\n const { options } = args\n if (!options?.publicKeyFormat) {\n return keyToDidDoc2020(args)\n }\n switch (options.publicKeyFormat) {\n case 'Ed25519VerificationKey2018':\n case 'X25519KeyAgreementKey2019':\n return keyToDidDoc2018_2019(args)\n case 'Ed25519VerificationKey2020':\n case 'X25519KeyAgreementKey2020':\n case 'Multikey':\n return keyToDidDoc2020(args)\n default:\n throw Error(`${options.publicKeyFormat} not supported yet for the ed25519 driver`)\n }\n}\nconst keyToDidDoc2018_2019 = ({ pubKeyBytes, fingerprint, contentType }: KeyToDidDocArgs): DIDDocument => {\n const did = `did:key:${fingerprint}`\n const keyId = `${did}#${fingerprint}`\n\n //todo: Move to noble lib. x25519 values differ between below methods. Current implementation is correct according to DID:key spec\n // const pubKeyHex = toString(pubKeyBytes, 'base16')\n // const x25519PubBytes = edwardsToMontgomery(pubKeyHex)\n const x25519PubBytes = convertPublicKeyToX25519(pubKeyBytes)\n\n const x25519KeyId = `${did}#${encodeKey(x25519PubBytes)}`\n return {\n ...(contentType === DID_LD_JSON && {\n '@context': [\n 'https://www.w3.org/ns/did/v1',\n 'https://w3id.org/security/suites/ed25519-2018/v1',\n 'https://w3id.org/security/suites/x25519-2019/v1',\n ],\n }),\n id: did,\n verificationMethod: [\n {\n id: keyId,\n type: 'Ed25519VerificationKey2018',\n controller: did,\n publicKeyBase58: toString(pubKeyBytes, 'base58btc'),\n },\n {\n id: x25519KeyId,\n type: 'X25519KeyAgreementKey2019',\n controller: did,\n publicKeyBase58: toString(x25519PubBytes, 'base58btc'),\n },\n ],\n authentication: [keyId],\n assertionMethod: [keyId],\n capabilityDelegation: [keyId],\n capabilityInvocation: [keyId],\n keyAgreement: [x25519KeyId],\n }\n}\n\nconst keyToDidDoc2020 = ({ pubKeyBytes, fingerprint, contentType }: KeyToDidDocArgs): DIDDocument => {\n const did = `did:key:${fingerprint}`\n const keyId = `${did}#${fingerprint}`\n //todo: Move to noble lib. x25519 values differ between below methods. Current implementation is correct according to DID:key spec\n // const pubKeyHex = u8a.toString(pubKeyBytes, 'base16')\n // const x25519PubBytes = edwardsToMontgomery(pubKeyBytes)\n const x25519PubBytes = convertPublicKeyToX25519(pubKeyBytes)\n\n const x25519KeyId = `${did}#${encodeKey(x25519PubBytes)}`\n return {\n ...(contentType === DID_LD_JSON && {\n '@context': [\n 'https://www.w3.org/ns/did/v1',\n 'https://w3id.org/security/suites/ed25519-2020/v1',\n 'https://w3id.org/security/suites/x25519-2020/v1',\n ],\n }),\n id: did,\n verificationMethod: [\n {\n id: keyId,\n type: 'Ed25519VerificationKey2020',\n controller: did,\n publicKeyMultibase: encodeKey(pubKeyBytes, 0xed),\n },\n ],\n authentication: [keyId],\n assertionMethod: [keyId],\n capabilityDelegation: [keyId],\n capabilityInvocation: [keyId],\n keyAgreement: [\n {\n id: x25519KeyId,\n type: 'X25519KeyAgreementKey2020',\n controller: did,\n publicKeyMultibase: encodeKey(x25519PubBytes, 0xec),\n },\n ],\n }\n}\nexport default { keyToDidDoc }\n","import { DIDResolutionOptions } from 'did-resolver'\n\nexport const DID_LD_JSON = 'application/did+ld+json'\nexport const DID_JSON = 'application/did+json'\n\nexport type PublicKeyFormat =\n | 'JsonWebKey2020'\n | 'Ed25519VerificationKey2018'\n | 'X25519KeyAgreementKey2019'\n | 'Ed25519VerificationKey2020'\n | 'X25519KeyAgreementKey2020'\n | 'Multikey'\nexport interface KeyToDidDocArgs {\n pubKeyBytes: Uint8Array\n fingerprint: string\n contentType?: string\n options?: DIDKeyResolutionOptions\n}\n\nexport interface DIDKeyResolutionOptions extends DIDResolutionOptions {\n publicKeyFormat?: PublicKeyFormat\n}\n","import { DIDDocument } from 'did-resolver'\n// @ts-ignore\nimport { toString } from 'uint8arrays/to-string'\nimport { KeyToDidDocArgs } from '../index'\n\nexport const keyToDidDoc = ({ pubKeyBytes, fingerprint }: KeyToDidDocArgs): DIDDocument => {\n const did = `did:key:${fingerprint}`\n const keyId = `${did}#${fingerprint}`\n return {\n id: did,\n verificationMethod: [\n {\n id: keyId,\n type: 'Bls12381G2Key2020',\n controller: did,\n publicKeyBase58: toString(pubKeyBytes, 'base58btc'),\n },\n ],\n authentication: [keyId],\n assertionMethod: [keyId],\n capabilityDelegation: [keyId],\n capabilityInvocation: [keyId],\n }\n}\nexport default { keyToDidDoc }\n","// @ts-ignore\nimport { toString } from 'uint8arrays/to-string'\nimport { DIDDocument } from 'did-resolver'\nimport { KeyToDidDocArgs } from '../types'\n\nexport const keyToDidDoc = ({ pubKeyBytes, fingerprint }: KeyToDidDocArgs): DIDDocument => {\n const did = `did:key:${fingerprint}`\n const keyId = `${did}#${fingerprint}`\n return {\n id: did,\n verificationMethod: [\n {\n id: keyId,\n type: 'Secp256k1VerificationKey2018',\n controller: did,\n publicKeyBase58: toString(pubKeyBytes, 'base58btc'),\n },\n ],\n authentication: [keyId],\n assertionMethod: [keyId],\n capabilityDelegation: [keyId],\n capabilityInvocation: [keyId],\n }\n}\n\nexport default { keyToDidDoc }\n","// Brent Shambaugh <brent.shambaugh@gmail.com>. 2021.\n\nimport * as nist_weierstrauss from 'nist-weierstrauss'\nimport {base64urlPoint} from 'nist-weierstrauss'\n// @ts-ignore\nimport {fromString} from 'uint8arrays/from-string'\nimport {KeyToDidDocArgs} from '../types'\n\n/**\n * Constructs the document based on the method key\n */\nexport function keyToDidDoc({ pubKeyBytes, fingerprint }: KeyToDidDocArgs): any {\n const did = `did:key:${fingerprint}`\n const keyId = `${did}#${fingerprint}`\n const key = pubKeyBytesToXY(pubKeyBytes)\n return {\n id: did,\n verificationMethod: [\n {\n id: keyId,\n type: 'JsonWebKey2020',\n controller: did,\n publicKeyJwk: {\n kty: 'EC',\n crv: 'P-256',\n x: key.xm,\n y: key.ym,\n },\n },\n ],\n authentication: [keyId],\n assertionMethod: [keyId],\n capabilityDelegation: [keyId],\n capabilityInvocation: [keyId],\n }\n}\n\n/**\n *\n * @param pubKeyBytes - public key as uncompressed byte array with no prefix (raw key),\n * uncompressed with 0x04 prefix, or compressed with 0x02 prefix if even and 0x03 prefix if odd.\n * @returns point x,y with coordinates as multibase encoded base64urls\n *\n * See the the did:key specification: https://w3c-ccg.github.io/did-method-key/#p-256.\n * At present only raw p-256 keys are covered in the specification.\n * @throws TypeError: input cannot be null or undefined.\n * @throws Error: Unexpected pubKeyBytes\n * @internal\n */\nexport function pubKeyBytesToXY(pubKeyBytes: Uint8Array): base64urlPoint {\n if (!nist_weierstrauss.nist_weierstrauss_common.testUint8Array(pubKeyBytes)) {\n throw new TypeError('input must be a Uint8Array')\n }\n const publicKeyHex = nist_weierstrauss.nist_weierstrauss_common.pubKeyBytesToHex(pubKeyBytes)\n const bytesCount = publicKeyHex.length / 2\n\n // raw p-256 key\n if (bytesCount == 64) {\n return nist_weierstrauss.nist_weierstrauss_common.publicKeyToXY(publicKeyHex)\n }\n\n // uncompressed p-256 key, SEC format\n if (bytesCount == 65) {\n if (publicKeyHex.slice(0, 2) == '04') {\n const publicKey = publicKeyHex.slice(2)\n return nist_weierstrauss.nist_weierstrauss_common.publicKeyToXY(publicKey)\n }\n }\n\n // compressed p-256 key, SEC format\n if (bytesCount == 33) {\n if (publicKeyHex.slice(0, 2) == '03' || publicKeyHex.slice(0, 2) == '02') {\n const publicKey = fromString(publicKeyHex, 'base16')\n const point = nist_weierstrauss.secp256r1.ECPointDecompress(publicKey)\n return nist_weierstrauss.nist_weierstrauss_common.publicKeyIntToXY(point)\n }\n }\n\n throw new Error('Unexpected pubKeyBytes')\n}\n\nexport default { keyToDidDoc }\n","// Brent Shambaugh <brent.shambaugh@gmail.com>. 2021.\n\n// @ts-ignore\nimport { fromString } from 'uint8arrays/from-string'\n\nimport * as nist_weierstrauss from 'nist-weierstrauss'\nimport { base64urlPoint } from 'nist-weierstrauss'\nimport { KeyToDidDocArgs } from '../types'\n\n/**\n * Constructs the document based on the method key\n */\nexport function keyToDidDoc({ pubKeyBytes, fingerprint }: KeyToDidDocArgs): any {\n const did = `did:key:${fingerprint}`\n const keyId = `${did}#${fingerprint}`\n const key = pubKeyBytesToXY(pubKeyBytes)\n return {\n id: did,\n verificationMethod: [\n {\n id: keyId,\n type: 'JsonWebKey2020',\n controller: did,\n publicKeyJwk: {\n kty: 'EC',\n crv: 'P-384',\n x: key.xm,\n y: key.ym,\n },\n },\n ],\n authentication: [keyId],\n assertionMethod: [keyId],\n capabilityDelegation: [keyId],\n capabilityInvocation: [keyId],\n }\n}\n\n/**\n *\n * @param pubKeyBytes - public key as uncompressed byte array with no prefix (raw key),\n * uncompressed with 0x04 prefix, or compressed with 0x02 prefix if even and 0x03 prefix if odd.\n * @returns point x,y with coordinates as multibase encoded base64urls\n *\n * See the the did:key specification: https://w3c-ccg.github.io/did-method-key/#p-384.\n * At present only raw p-384 keys are covered in the specification.\n * @throws TypeError: input cannot be null or undefined.\n * @throws Error: Unexpected pubKeyBytes\n * @internal\n */\nexport function pubKeyBytesToXY(pubKeyBytes: Uint8Array): base64urlPoint {\n if (!nist_weierstrauss.nist_weierstrauss_common.testUint8Array(pubKeyBytes)) {\n throw new TypeError('input must be a Uint8Array')\n }\n const publicKeyHex = nist_weierstrauss.nist_weierstrauss_common.pubKeyBytesToHex(pubKeyBytes)\n const bytesCount = publicKeyHex.length / 2\n\n // raw p-384 key\n if (bytesCount == 96) {\n return nist_weierstrauss.nist_weierstrauss_common.publicKeyToXY(publicKeyHex)\n }\n\n // uncompressed p-384 key, SEC format\n if (bytesCount == 97) {\n if (publicKeyHex.slice(0, 2) == '04') {\n const publicKey = publicKeyHex.slice(2)\n return nist_weierstrauss.nist_weierstrauss_common.publicKeyToXY(publicKey)\n }\n }\n\n // compressed p-384 key, SEC format\n if (bytesCount == 49) {\n if (publicKeyHex.slice(0, 2) == '03' || publicKeyHex.slice(0, 2) == '02') {\n const publicKey = fromString(publicKeyHex, 'base16')\n const point = nist_weierstrauss.secp384r1.ECPointDecompress(publicKey)\n return nist_weierstrauss.nist_weierstrauss_common.publicKeyIntToXY(point)\n }\n }\n\n throw new Error('Unexpected pubKeyBytes')\n}\n\nexport default { keyToDidDoc }\n","// Brent Shambaugh <brent.shambaugh@gmail.com>. 2021.\n\n// @ts-ignore\nimport { fromString } from 'uint8arrays/from-string'\n\nimport * as nist_weierstrauss from 'nist-weierstrauss'\nimport { base64urlPoint } from 'nist-weierstrauss'\nimport { KeyToDidDocArgs } from '../types'\n\n/**\n * Constructs the document based on the method key\n */\nexport function keyToDidDoc({ pubKeyBytes, fingerprint }: KeyToDidDocArgs): any {\n const did = `did:key:${fingerprint}`\n const keyId = `${did}#${fingerprint}`\n const key = pubKeyBytesToXY(pubKeyBytes)\n return {\n id: did,\n verificationMethod: [\n {\n id: keyId,\n type: 'JsonWebKey2020',\n controller: did,\n publicKeyJwk: {\n kty: 'EC',\n crv: 'P-521',\n x: key.xm,\n y: key.ym,\n },\n },\n ],\n authentication: [keyId],\n assertionMethod: [keyId],\n capabilityDelegation: [keyId],\n capabilityInvocation: [keyId],\n }\n}\n\n/**\n *\n * @param pubKeyBytes - public key as compressed with 0x02 prefix if even and 0x03 prefix if odd.\n * @returns point x,y with coordinates as multibase encoded base64urls\n *\n * See the the did:key specification: https://w3c-ccg.github.io/did-method-key/#p-521.\n * For compression see: https://tools.ietf.org/id/draft-jivsov-ecc-compact-05.html#rfc.section.3\n * @throws TypeError: input cannot be null or undefined.\n * @throws Error: Unexpected pubKeyBytes\n * @internal\n */\nexport function pubKeyBytesToXY(pubKeyBytes: Uint8Array): base64urlPoint {\n if (!nist_weierstrauss.nist_weierstrauss_common.testUint8Array(pubKeyBytes)) {\n throw new TypeError('input must be a Uint8Array')\n }\n const publicKeyHex = nist_weierstrauss.nist_weierstrauss_common.pubKeyBytesToHex(pubKeyBytes)\n\n // compressed p-521 key, SEC format\n // publicKeyHex.length / 2.0 = 67.0 bytes\n if (132 <= publicKeyHex.length && publicKeyHex.length <= 134) {\n if (publicKeyHex.slice(0, 2) == '03' || publicKeyHex.slice(0, 2) == '02') {\n const publicKey = fromString(publicKeyHex, 'base16')\n const point = nist_weierstrauss.secp521r1.ECPointDecompress(publicKey)\n return nist_weierstrauss.nist_weierstrauss_common.publicKeyIntToXY(point)\n }\n }\n\n throw new Error('Unexpected pubKeyBytes')\n}\n\nexport default { keyToDidDoc }\n","import { DIDDocument, JsonWebKey as DIFJWK } from 'did-resolver'\nimport { DID_LD_JSON, KeyToDidDocArgs } from '../index'\nimport { jwkJcsDecode } from '@sphereon/ssi-sdk-ext.key-utils'\n\nexport const keyToDidDoc = ({ pubKeyBytes, fingerprint, contentType }: KeyToDidDocArgs): DIDDocument => {\n const did = `did:key:${fingerprint}`\n const keyId = `${did}#${fingerprint}`\n const publicKeyJwk = jwkJcsDecode(pubKeyBytes) as DIFJWK\n return {\n ...(contentType === DID_LD_JSON && {\n '@context': ['https://www.w3.org/ns/did/v1', 'https://w3id.org/security/suites/jws-2020/v1'],\n }),\n id: did,\n verificationMethod: [\n {\n id: keyId,\n type: 'JsonWebKey2020',\n controller: did,\n publicKeyJwk,\n },\n ],\n authentication: [keyId],\n assertionMethod: [keyId],\n capabilityDelegation: [keyId],\n capabilityInvocation: [keyId],\n }\n}\nexport default { keyToDidDoc }\n"],"mappings":"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","names":["decode","base58btc","toString","convertPublicKeyToX25519","DID_LD_JSON","DID_JSON","encodeKey","key","bytes","Uint8Array","length","set","toString","keyToDidDoc","args","options","publicKeyFormat","keyToDidDoc2020","keyToDidDoc2018_2019","Error","pubKeyBytes","fingerprint","contentType","did","keyId","x25519PubBytes","convertPublicKeyToX25519","x25519KeyId","DID_LD_JSON","id","verificationMethod","type","controller","publicKeyBase58","authentication","assertionMethod","capabilityDelegation","capabilityInvocation","keyAgreement","publicKeyMultibase","toString","keyToDidDoc","pubKeyBytes","fingerprint","did","keyId","id","verificationMethod","type","controller","publicKeyBase58","toString","authentication","assertionMethod","capabilityDelegation","capabilityInvocation","toString","keyToDidDoc","pubKeyBytes","fingerprint","did","keyId","id","verificationMethod","type","controller","publicKeyBase58","toString","authentication","assertionMethod","capabilityDelegation","capabilityInvocation","nist_weierstrauss","fromString","keyToDidDoc","pubKeyBytes","fingerprint","did","keyId","key","pubKeyBytesToXY","id","verificationMethod","type","controller","publicKeyJwk","kty","crv","x","xm","y","ym","authentication","assertionMethod","capabilityDelegation","capabilityInvocation","nist_weierstrauss_common","testUint8Array","TypeError","publicKeyHex","pubKeyBytesToHex","bytesCount","length","publicKeyToXY","slice","publicKey","fromString","point","secp256r1","ECPointDecompress","publicKeyIntToXY","Error","fromString","nist_weierstrauss","keyToDidDoc","pubKeyBytes","fingerprint","did","keyId","key","pubKeyBytesToXY","id","verificationMethod","type","controller","publicKeyJwk","kty","crv","x","xm","y","ym","authentication","assertionMethod","capabilityDelegation","capabilityInvocation","nist_weierstrauss_common","testUint8Array","TypeError","publicKeyHex","pubKeyBytesToHex","bytesCount","length","publicKeyToXY","slice","publicKey","fromString","point","secp384r1","ECPointDecompress","publicKeyIntToXY","Error","fromString","nist_weierstrauss","keyToDidDoc","pubKeyBytes","fingerprint","did","keyId","key","pubKeyBytesToXY","id","verificationMethod","type","controller","publicKeyJwk","kty","crv","x","xm","y","ym","authentication","assertionMethod","capabilityDelegation","capabilityInvocation","nist_weierstrauss_common","testUint8Array","TypeError","publicKeyHex","pubKeyBytesToHex","length","slice","publicKey","fromString","point","secp521r1","ECPointDecompress","publicKeyIntToXY","Error","jwkJcsDecode","keyToDidDoc","pubKeyBytes","fingerprint","contentType","did","keyId","publicKeyJwk","jwkJcsDecode","DID_LD_JSON","id","verificationMethod","type","controller","authentication","assertionMethod","capabilityDelegation","capabilityInvocation","prefixToDriverMap","secp256k1","ed25519","secp256r1","secp384r1","secp521r1","bls12381g2","jwkJcs","getResolver","key","did","parsed","r","options","contentType","accept","DID_LD_JSON","response","didResolutionMetadata","didDocument","didDocumentMetadata","multicodecPubKey","base58btc","decode","id","keyType","pubKeyBytes","slice","bytes","args","fingerprint","doc","keyToDidDoc","Array","isArray","includes","push","DID_JSON","error","e","message","toString"]}
|
|
1
|
+
{"version":3,"sources":["../src/index.ts","../src/drivers/ed25519.ts","../src/types.ts","../src/drivers/bls12381g2.ts","../src/drivers/secp256k1.ts","../src/drivers/secp256r1.ts","../src/drivers/secp384r1.ts","../src/drivers/secp521r1.ts","../src/drivers/jwk.jcs.ts"],"sourcesContent":["import varint from 'varint';\nconst { decode } = varint;\n// @ts-ignore\nimport { base58btc } from 'multiformats/bases/base58'\nimport ed25519 from './drivers/ed25519'\nimport bls12381g2 from './drivers/bls12381g2'\nimport secp256k1 from './drivers/secp256k1'\nimport secp256r1 from './drivers/secp256r1'\nimport secp384r1 from './drivers/secp384r1'\nimport secp521r1 from './drivers/secp521r1'\nimport { DIDResolutionResult, ParsedDID, Resolvable, ResolverRegistry } from 'did-resolver'\nimport jwkJcs from './drivers/jwk.jcs'\nimport { DID_JSON, DID_LD_JSON, DIDKeyResolutionOptions, KeyToDidDocArgs } from './types'\n\nexport * from './types'\n\nconst prefixToDriverMap: any = {\n 0xe7: secp256k1,\n 0xed: ed25519,\n 0x1200: secp256r1,\n 0x1201: secp384r1,\n 0x1202: secp521r1,\n 0xeb: bls12381g2,\n 0xeb51: jwkJcs,\n}\n\nexport const getResolver = (): ResolverRegistry => {\n return {\n key: async (did: string, parsed: ParsedDID, r: Resolvable, options: DIDKeyResolutionOptions) => {\n const contentType = options.accept || DID_LD_JSON\n const response: DIDResolutionResult = {\n didResolutionMetadata: { contentType },\n didDocument: null,\n didDocumentMetadata: {},\n }\n try {\n const multicodecPubKey = base58btc.decode(parsed.id)\n const keyType = decode(multicodecPubKey)\n const pubKeyBytes = multicodecPubKey.slice(decode.bytes)\n const args: KeyToDidDocArgs = { pubKeyBytes, fingerprint: parsed.id, contentType, options }\n const doc = await prefixToDriverMap[keyType].keyToDidDoc(args)\n if (contentType === DID_LD_JSON) {\n if (!doc['@context']) {\n doc['@context'] = 'https://w3id.org/did/v1'\n } else if (\n Array.isArray(doc['@context']) &&\n !doc['@context'].includes('https://w3id.org/did/v1') &&\n !doc['@context'].includes('https://www.w3.org/ns/did/v1')\n ) {\n doc['@context'].push('https://w3id.org/did/v1')\n }\n response.didDocument = doc\n } else if (contentType === DID_JSON) {\n response.didDocument = doc\n } else {\n delete response.didResolutionMetadata.contentType\n response.didResolutionMetadata.error = 'representationNotSupported'\n }\n } catch (e: any) {\n response.didResolutionMetadata.error = 'invalidDid'\n response.didResolutionMetadata.message = e.toString()\n }\n return response\n },\n }\n}\nexport default { getResolver }\n","\n// @ts-ignore\nimport { toString } from 'uint8arrays/to-string'\nimport { DIDDocument } from 'did-resolver'\n// import { edwardsToMontgomery } from '@noble/curves/ed25519'\nimport { convertPublicKeyToX25519 } from '@stablelib/ed25519'\nimport { DID_LD_JSON, KeyToDidDocArgs } from '../types'\n\nfunction encodeKey(key: Uint8Array, encodeKey?: number) {\n const bytes = new Uint8Array(key.length + 2)\n bytes[0] = encodeKey ?? 0xec\n // The multicodec is encoded as a varint so we need to add this.\n // See js-multicodec for a general implementation\n bytes[1] = 0x01\n bytes.set(key, 2)\n return `z${toString(bytes, 'base58btc')}`\n}\n\nexport const keyToDidDoc = (args: KeyToDidDocArgs) => {\n const { options } = args\n if (!options?.publicKeyFormat) {\n return keyToDidDoc2020(args)\n }\n switch (options.publicKeyFormat) {\n case 'Ed25519VerificationKey2018':\n case 'X25519KeyAgreementKey2019':\n return keyToDidDoc2018_2019(args)\n case 'Ed25519VerificationKey2020':\n case 'X25519KeyAgreementKey2020':\n case 'Multikey':\n return keyToDidDoc2020(args)\n default:\n throw Error(`${options.publicKeyFormat} not supported yet for the ed25519 driver`)\n }\n}\nconst keyToDidDoc2018_2019 = ({ pubKeyBytes, fingerprint, contentType }: KeyToDidDocArgs): DIDDocument => {\n const did = `did:key:${fingerprint}`\n const keyId = `${did}#${fingerprint}`\n\n //todo: Move to noble lib. x25519 values differ between below methods. Current implementation is correct according to DID:key spec\n // const pubKeyHex = toString(pubKeyBytes, 'base16')\n // const x25519PubBytes = edwardsToMontgomery(pubKeyHex)\n const x25519PubBytes = convertPublicKeyToX25519(pubKeyBytes)\n\n const x25519KeyId = `${did}#${encodeKey(x25519PubBytes)}`\n return {\n ...(contentType === DID_LD_JSON && {\n '@context': [\n 'https://www.w3.org/ns/did/v1',\n 'https://w3id.org/security/suites/ed25519-2018/v1',\n 'https://w3id.org/security/suites/x25519-2019/v1',\n ],\n }),\n id: did,\n verificationMethod: [\n {\n id: keyId,\n type: 'Ed25519VerificationKey2018',\n controller: did,\n publicKeyBase58: toString(pubKeyBytes, 'base58btc'),\n },\n {\n id: x25519KeyId,\n type: 'X25519KeyAgreementKey2019',\n controller: did,\n publicKeyBase58: toString(x25519PubBytes, 'base58btc'),\n },\n ],\n authentication: [keyId],\n assertionMethod: [keyId],\n capabilityDelegation: [keyId],\n capabilityInvocation: [keyId],\n keyAgreement: [x25519KeyId],\n }\n}\n\nconst keyToDidDoc2020 = ({ pubKeyBytes, fingerprint, contentType }: KeyToDidDocArgs): DIDDocument => {\n const did = `did:key:${fingerprint}`\n const keyId = `${did}#${fingerprint}`\n //todo: Move to noble lib. x25519 values differ between below methods. Current implementation is correct according to DID:key spec\n // const pubKeyHex = u8a.toString(pubKeyBytes, 'base16')\n // const x25519PubBytes = edwardsToMontgomery(pubKeyBytes)\n const x25519PubBytes = convertPublicKeyToX25519(pubKeyBytes)\n\n const x25519KeyId = `${did}#${encodeKey(x25519PubBytes)}`\n return {\n ...(contentType === DID_LD_JSON && {\n '@context': [\n 'https://www.w3.org/ns/did/v1',\n 'https://w3id.org/security/suites/ed25519-2020/v1',\n 'https://w3id.org/security/suites/x25519-2020/v1',\n ],\n }),\n id: did,\n verificationMethod: [\n {\n id: keyId,\n type: 'Ed25519VerificationKey2020',\n controller: did,\n publicKeyMultibase: encodeKey(pubKeyBytes, 0xed),\n },\n ],\n authentication: [keyId],\n assertionMethod: [keyId],\n capabilityDelegation: [keyId],\n capabilityInvocation: [keyId],\n keyAgreement: [\n {\n id: x25519KeyId,\n type: 'X25519KeyAgreementKey2020',\n controller: did,\n publicKeyMultibase: encodeKey(x25519PubBytes, 0xec),\n },\n ],\n }\n}\nexport default { keyToDidDoc }\n","import { DIDResolutionOptions } from 'did-resolver'\n\nexport const DID_LD_JSON = 'application/did+ld+json'\nexport const DID_JSON = 'application/did+json'\n\nexport type PublicKeyFormat =\n | 'JsonWebKey2020'\n | 'Ed25519VerificationKey2018'\n | 'X25519KeyAgreementKey2019'\n | 'Ed25519VerificationKey2020'\n | 'X25519KeyAgreementKey2020'\n | 'Multikey'\nexport interface KeyToDidDocArgs {\n pubKeyBytes: Uint8Array\n fingerprint: string\n contentType?: string\n options?: DIDKeyResolutionOptions\n}\n\nexport interface DIDKeyResolutionOptions extends DIDResolutionOptions {\n publicKeyFormat?: PublicKeyFormat\n}\n","import { DIDDocument } from 'did-resolver'\n// @ts-ignore\nimport { toString } from 'uint8arrays/to-string'\nimport { KeyToDidDocArgs } from '../index'\n\nexport const keyToDidDoc = ({ pubKeyBytes, fingerprint }: KeyToDidDocArgs): DIDDocument => {\n const did = `did:key:${fingerprint}`\n const keyId = `${did}#${fingerprint}`\n return {\n id: did,\n verificationMethod: [\n {\n id: keyId,\n type: 'Bls12381G2Key2020',\n controller: did,\n publicKeyBase58: toString(pubKeyBytes, 'base58btc'),\n },\n ],\n authentication: [keyId],\n assertionMethod: [keyId],\n capabilityDelegation: [keyId],\n capabilityInvocation: [keyId],\n }\n}\nexport default { keyToDidDoc }\n","// @ts-ignore\nimport { toString } from 'uint8arrays/to-string'\nimport { DIDDocument } from 'did-resolver'\nimport { KeyToDidDocArgs } from '../types'\n\nexport const keyToDidDoc = ({ pubKeyBytes, fingerprint }: KeyToDidDocArgs): DIDDocument => {\n const did = `did:key:${fingerprint}`\n const keyId = `${did}#${fingerprint}`\n return {\n id: did,\n verificationMethod: [\n {\n id: keyId,\n type: 'Secp256k1VerificationKey2018',\n controller: did,\n publicKeyBase58: toString(pubKeyBytes, 'base58btc'),\n },\n ],\n authentication: [keyId],\n assertionMethod: [keyId],\n capabilityDelegation: [keyId],\n capabilityInvocation: [keyId],\n }\n}\n\nexport default { keyToDidDoc }\n","// Brent Shambaugh <brent.shambaugh@gmail.com>. 2021.\n\nimport * as nist_weierstrauss from 'nist-weierstrauss'\nimport {base64urlPoint} from 'nist-weierstrauss'\n// @ts-ignore\nimport {fromString} from 'uint8arrays/from-string'\nimport {KeyToDidDocArgs} from '../types'\n\n/**\n * Constructs the document based on the method key\n */\nexport function keyToDidDoc({ pubKeyBytes, fingerprint }: KeyToDidDocArgs): any {\n const did = `did:key:${fingerprint}`\n const keyId = `${did}#${fingerprint}`\n const key = pubKeyBytesToXY(pubKeyBytes)\n return {\n id: did,\n verificationMethod: [\n {\n id: keyId,\n type: 'JsonWebKey2020',\n controller: did,\n publicKeyJwk: {\n kty: 'EC',\n crv: 'P-256',\n x: key.xm,\n y: key.ym,\n },\n },\n ],\n authentication: [keyId],\n assertionMethod: [keyId],\n capabilityDelegation: [keyId],\n capabilityInvocation: [keyId],\n }\n}\n\n/**\n *\n * @param pubKeyBytes - public key as uncompressed byte array with no prefix (raw key),\n * uncompressed with 0x04 prefix, or compressed with 0x02 prefix if even and 0x03 prefix if odd.\n * @returns point x,y with coordinates as multibase encoded base64urls\n *\n * See the the did:key specification: https://w3c-ccg.github.io/did-method-key/#p-256.\n * At present only raw p-256 keys are covered in the specification.\n * @throws TypeError: input cannot be null or undefined.\n * @throws Error: Unexpected pubKeyBytes\n * @internal\n */\nexport function pubKeyBytesToXY(pubKeyBytes: Uint8Array): base64urlPoint {\n if (!nist_weierstrauss.nist_weierstrauss_common.testUint8Array(pubKeyBytes)) {\n throw new TypeError('input must be a Uint8Array')\n }\n const publicKeyHex = nist_weierstrauss.nist_weierstrauss_common.pubKeyBytesToHex(pubKeyBytes)\n const bytesCount = publicKeyHex.length / 2\n\n // raw p-256 key\n if (bytesCount == 64) {\n return nist_weierstrauss.nist_weierstrauss_common.publicKeyToXY(publicKeyHex)\n }\n\n // uncompressed p-256 key, SEC format\n if (bytesCount == 65) {\n if (publicKeyHex.slice(0, 2) == '04') {\n const publicKey = publicKeyHex.slice(2)\n return nist_weierstrauss.nist_weierstrauss_common.publicKeyToXY(publicKey)\n }\n }\n\n // compressed p-256 key, SEC format\n if (bytesCount == 33) {\n if (publicKeyHex.slice(0, 2) == '03' || publicKeyHex.slice(0, 2) == '02') {\n const publicKey = fromString(publicKeyHex, 'base16')\n const point = nist_weierstrauss.secp256r1.ECPointDecompress(publicKey)\n return nist_weierstrauss.nist_weierstrauss_common.publicKeyIntToXY(point)\n }\n }\n\n throw new Error('Unexpected pubKeyBytes')\n}\n\nexport default { keyToDidDoc }\n","// Brent Shambaugh <brent.shambaugh@gmail.com>. 2021.\n\n// @ts-ignore\nimport { fromString } from 'uint8arrays/from-string'\n\nimport * as nist_weierstrauss from 'nist-weierstrauss'\nimport { base64urlPoint } from 'nist-weierstrauss'\nimport { KeyToDidDocArgs } from '../types'\n\n/**\n * Constructs the document based on the method key\n */\nexport function keyToDidDoc({ pubKeyBytes, fingerprint }: KeyToDidDocArgs): any {\n const did = `did:key:${fingerprint}`\n const keyId = `${did}#${fingerprint}`\n const key = pubKeyBytesToXY(pubKeyBytes)\n return {\n id: did,\n verificationMethod: [\n {\n id: keyId,\n type: 'JsonWebKey2020',\n controller: did,\n publicKeyJwk: {\n kty: 'EC',\n crv: 'P-384',\n x: key.xm,\n y: key.ym,\n },\n },\n ],\n authentication: [keyId],\n assertionMethod: [keyId],\n capabilityDelegation: [keyId],\n capabilityInvocation: [keyId],\n }\n}\n\n/**\n *\n * @param pubKeyBytes - public key as uncompressed byte array with no prefix (raw key),\n * uncompressed with 0x04 prefix, or compressed with 0x02 prefix if even and 0x03 prefix if odd.\n * @returns point x,y with coordinates as multibase encoded base64urls\n *\n * See the the did:key specification: https://w3c-ccg.github.io/did-method-key/#p-384.\n * At present only raw p-384 keys are covered in the specification.\n * @throws TypeError: input cannot be null or undefined.\n * @throws Error: Unexpected pubKeyBytes\n * @internal\n */\nexport function pubKeyBytesToXY(pubKeyBytes: Uint8Array): base64urlPoint {\n if (!nist_weierstrauss.nist_weierstrauss_common.testUint8Array(pubKeyBytes)) {\n throw new TypeError('input must be a Uint8Array')\n }\n const publicKeyHex = nist_weierstrauss.nist_weierstrauss_common.pubKeyBytesToHex(pubKeyBytes)\n const bytesCount = publicKeyHex.length / 2\n\n // raw p-384 key\n if (bytesCount == 96) {\n return nist_weierstrauss.nist_weierstrauss_common.publicKeyToXY(publicKeyHex)\n }\n\n // uncompressed p-384 key, SEC format\n if (bytesCount == 97) {\n if (publicKeyHex.slice(0, 2) == '04') {\n const publicKey = publicKeyHex.slice(2)\n return nist_weierstrauss.nist_weierstrauss_common.publicKeyToXY(publicKey)\n }\n }\n\n // compressed p-384 key, SEC format\n if (bytesCount == 49) {\n if (publicKeyHex.slice(0, 2) == '03' || publicKeyHex.slice(0, 2) == '02') {\n const publicKey = fromString(publicKeyHex, 'base16')\n const point = nist_weierstrauss.secp384r1.ECPointDecompress(publicKey)\n return nist_weierstrauss.nist_weierstrauss_common.publicKeyIntToXY(point)\n }\n }\n\n throw new Error('Unexpected pubKeyBytes')\n}\n\nexport default { keyToDidDoc }\n","// Brent Shambaugh <brent.shambaugh@gmail.com>. 2021.\n\n// @ts-ignore\nimport { fromString } from 'uint8arrays/from-string'\n\nimport * as nist_weierstrauss from 'nist-weierstrauss'\nimport { base64urlPoint } from 'nist-weierstrauss'\nimport { KeyToDidDocArgs } from '../types'\n\n/**\n * Constructs the document based on the method key\n */\nexport function keyToDidDoc({ pubKeyBytes, fingerprint }: KeyToDidDocArgs): any {\n const did = `did:key:${fingerprint}`\n const keyId = `${did}#${fingerprint}`\n const key = pubKeyBytesToXY(pubKeyBytes)\n return {\n id: did,\n verificationMethod: [\n {\n id: keyId,\n type: 'JsonWebKey2020',\n controller: did,\n publicKeyJwk: {\n kty: 'EC',\n crv: 'P-521',\n x: key.xm,\n y: key.ym,\n },\n },\n ],\n authentication: [keyId],\n assertionMethod: [keyId],\n capabilityDelegation: [keyId],\n capabilityInvocation: [keyId],\n }\n}\n\n/**\n *\n * @param pubKeyBytes - public key as compressed with 0x02 prefix if even and 0x03 prefix if odd.\n * @returns point x,y with coordinates as multibase encoded base64urls\n *\n * See the the did:key specification: https://w3c-ccg.github.io/did-method-key/#p-521.\n * For compression see: https://tools.ietf.org/id/draft-jivsov-ecc-compact-05.html#rfc.section.3\n * @throws TypeError: input cannot be null or undefined.\n * @throws Error: Unexpected pubKeyBytes\n * @internal\n */\nexport function pubKeyBytesToXY(pubKeyBytes: Uint8Array): base64urlPoint {\n if (!nist_weierstrauss.nist_weierstrauss_common.testUint8Array(pubKeyBytes)) {\n throw new TypeError('input must be a Uint8Array')\n }\n const publicKeyHex = nist_weierstrauss.nist_weierstrauss_common.pubKeyBytesToHex(pubKeyBytes)\n\n // compressed p-521 key, SEC format\n // publicKeyHex.length / 2.0 = 67.0 bytes\n if (132 <= publicKeyHex.length && publicKeyHex.length <= 134) {\n if (publicKeyHex.slice(0, 2) == '03' || publicKeyHex.slice(0, 2) == '02') {\n const publicKey = fromString(publicKeyHex, 'base16')\n const point = nist_weierstrauss.secp521r1.ECPointDecompress(publicKey)\n return nist_weierstrauss.nist_weierstrauss_common.publicKeyIntToXY(point)\n }\n }\n\n throw new Error('Unexpected pubKeyBytes')\n}\n\nexport default { keyToDidDoc }\n","import { DIDDocument, JsonWebKey as DIFJWK } from 'did-resolver'\nimport { DID_LD_JSON, KeyToDidDocArgs } from '../index'\nimport { jwkJcsDecode } from '@sphereon/ssi-sdk-ext.key-utils'\n\nexport const keyToDidDoc = ({ pubKeyBytes, fingerprint, contentType }: KeyToDidDocArgs): DIDDocument => {\n const did = `did:key:${fingerprint}`\n const keyId = `${did}#${fingerprint}`\n const publicKeyJwk = jwkJcsDecode(pubKeyBytes) as DIFJWK\n return {\n ...(contentType === DID_LD_JSON && {\n '@context': ['https://www.w3.org/ns/did/v1', 'https://w3id.org/security/suites/jws-2020/v1'],\n }),\n id: did,\n verificationMethod: [\n {\n id: keyId,\n type: 'JsonWebKey2020',\n controller: did,\n publicKeyJwk,\n },\n ],\n authentication: [keyId],\n assertionMethod: [keyId],\n capabilityDelegation: [keyId],\n capabilityInvocation: [keyId],\n }\n}\nexport default { keyToDidDoc }\n"],"mappings":"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","names":["varint","base58btc","toString","convertPublicKeyToX25519","DID_LD_JSON","DID_JSON","encodeKey","key","bytes","Uint8Array","length","set","toString","keyToDidDoc","args","options","publicKeyFormat","keyToDidDoc2020","keyToDidDoc2018_2019","Error","pubKeyBytes","fingerprint","contentType","did","keyId","x25519PubBytes","convertPublicKeyToX25519","x25519KeyId","DID_LD_JSON","id","verificationMethod","type","controller","publicKeyBase58","authentication","assertionMethod","capabilityDelegation","capabilityInvocation","keyAgreement","publicKeyMultibase","toString","keyToDidDoc","pubKeyBytes","fingerprint","did","keyId","id","verificationMethod","type","controller","publicKeyBase58","toString","authentication","assertionMethod","capabilityDelegation","capabilityInvocation","toString","keyToDidDoc","pubKeyBytes","fingerprint","did","keyId","id","verificationMethod","type","controller","publicKeyBase58","toString","authentication","assertionMethod","capabilityDelegation","capabilityInvocation","nist_weierstrauss","fromString","keyToDidDoc","pubKeyBytes","fingerprint","did","keyId","key","pubKeyBytesToXY","id","verificationMethod","type","controller","publicKeyJwk","kty","crv","x","xm","y","ym","authentication","assertionMethod","capabilityDelegation","capabilityInvocation","nist_weierstrauss_common","testUint8Array","TypeError","publicKeyHex","pubKeyBytesToHex","bytesCount","length","publicKeyToXY","slice","publicKey","fromString","point","secp256r1","ECPointDecompress","publicKeyIntToXY","Error","fromString","nist_weierstrauss","keyToDidDoc","pubKeyBytes","fingerprint","did","keyId","key","pubKeyBytesToXY","id","verificationMethod","type","controller","publicKeyJwk","kty","crv","x","xm","y","ym","authentication","assertionMethod","capabilityDelegation","capabilityInvocation","nist_weierstrauss_common","testUint8Array","TypeError","publicKeyHex","pubKeyBytesToHex","bytesCount","length","publicKeyToXY","slice","publicKey","fromString","point","secp384r1","ECPointDecompress","publicKeyIntToXY","Error","fromString","nist_weierstrauss","keyToDidDoc","pubKeyBytes","fingerprint","did","keyId","key","pubKeyBytesToXY","id","verificationMethod","type","controller","publicKeyJwk","kty","crv","x","xm","y","ym","authentication","assertionMethod","capabilityDelegation","capabilityInvocation","nist_weierstrauss_common","testUint8Array","TypeError","publicKeyHex","pubKeyBytesToHex","length","slice","publicKey","fromString","point","secp521r1","ECPointDecompress","publicKeyIntToXY","Error","jwkJcsDecode","keyToDidDoc","pubKeyBytes","fingerprint","contentType","did","keyId","publicKeyJwk","jwkJcsDecode","DID_LD_JSON","id","verificationMethod","type","controller","authentication","assertionMethod","capabilityDelegation","capabilityInvocation","decode","varint","prefixToDriverMap","secp256k1","ed25519","secp256r1","secp384r1","secp521r1","bls12381g2","jwkJcs","getResolver","key","did","parsed","r","options","contentType","accept","DID_LD_JSON","response","didResolutionMetadata","didDocument","didDocumentMetadata","multicodecPubKey","base58btc","id","keyType","pubKeyBytes","slice","bytes","args","fingerprint","doc","keyToDidDoc","Array","isArray","includes","push","DID_JSON","error","e","message","toString"]}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sphereon/ssi-sdk-ext.did-resolver-key",
|
|
3
3
|
"description": "Sphereon did:key resolver with BBS+/BLS and EBSI support.",
|
|
4
|
-
"version": "0.28.1-feature.esm.cjs.
|
|
4
|
+
"version": "0.28.1-feature.esm.cjs.9+71682ea",
|
|
5
5
|
"source": "./src/index.ts",
|
|
6
6
|
"type": "module",
|
|
7
7
|
"main": "./dist/index.cjs",
|
|
@@ -21,7 +21,7 @@
|
|
|
21
21
|
"build": "tsup --config ../../tsup.config.ts --tsconfig ../../tsconfig.tsup.json"
|
|
22
22
|
},
|
|
23
23
|
"dependencies": {
|
|
24
|
-
"@sphereon/ssi-sdk-ext.key-utils": "^0.28.1-feature.esm.cjs.
|
|
24
|
+
"@sphereon/ssi-sdk-ext.key-utils": "^0.28.1-feature.esm.cjs.9+71682ea",
|
|
25
25
|
"@stablelib/ed25519": "^1.0.3",
|
|
26
26
|
"bigint-mod-arith": "^3.3.1",
|
|
27
27
|
"did-resolver": "^4.1.0",
|
|
@@ -63,5 +63,5 @@
|
|
|
63
63
|
"secp256r1",
|
|
64
64
|
"RSA"
|
|
65
65
|
],
|
|
66
|
-
"gitHead": "
|
|
66
|
+
"gitHead": "71682ea0c528f5b32c421245c253b3bc9d6296a0"
|
|
67
67
|
}
|
package/src/index.ts
CHANGED