@enbox/dids 0.0.4 → 0.0.6

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.
Files changed (55) hide show
  1. package/dist/browser.mjs +1 -1
  2. package/dist/browser.mjs.map +4 -4
  3. package/dist/esm/methods/did-dht-dns.js +455 -0
  4. package/dist/esm/methods/did-dht-dns.js.map +1 -0
  5. package/dist/esm/methods/did-dht-pkarr.js +168 -0
  6. package/dist/esm/methods/did-dht-pkarr.js.map +1 -0
  7. package/dist/esm/methods/did-dht-types.js +116 -0
  8. package/dist/esm/methods/did-dht-types.js.map +1 -0
  9. package/dist/esm/methods/did-dht-utils.js +143 -0
  10. package/dist/esm/methods/did-dht-utils.js.map +1 -0
  11. package/dist/esm/methods/did-dht.js +65 -842
  12. package/dist/esm/methods/did-dht.js.map +1 -1
  13. package/dist/esm/methods/did-ion-utils.js +161 -0
  14. package/dist/esm/methods/did-ion-utils.js.map +1 -0
  15. package/dist/esm/methods/did-ion.js +4 -151
  16. package/dist/esm/methods/did-ion.js.map +1 -1
  17. package/dist/esm/methods/did-key-utils.js +235 -0
  18. package/dist/esm/methods/did-key-utils.js.map +1 -0
  19. package/dist/esm/methods/did-key.js +6 -222
  20. package/dist/esm/methods/did-key.js.map +1 -1
  21. package/dist/esm/utils.js +15 -19
  22. package/dist/esm/utils.js.map +1 -1
  23. package/dist/types/methods/did-dht-dns.d.ts +114 -0
  24. package/dist/types/methods/did-dht-dns.d.ts.map +1 -0
  25. package/dist/types/methods/did-dht-pkarr.d.ts +56 -0
  26. package/dist/types/methods/did-dht-pkarr.d.ts.map +1 -0
  27. package/dist/types/methods/did-dht-types.d.ts +286 -0
  28. package/dist/types/methods/did-dht-types.d.ts.map +1 -0
  29. package/dist/types/methods/did-dht-utils.d.ts +54 -0
  30. package/dist/types/methods/did-dht-utils.d.ts.map +1 -0
  31. package/dist/types/methods/did-dht.d.ts +42 -457
  32. package/dist/types/methods/did-dht.d.ts.map +1 -1
  33. package/dist/types/methods/did-ion-utils.d.ts +86 -0
  34. package/dist/types/methods/did-ion-utils.d.ts.map +1 -0
  35. package/dist/types/methods/did-ion.d.ts +2 -82
  36. package/dist/types/methods/did-ion.d.ts.map +1 -1
  37. package/dist/types/methods/did-key-utils.d.ts +138 -0
  38. package/dist/types/methods/did-key-utils.d.ts.map +1 -0
  39. package/dist/types/methods/did-key.d.ts +3 -124
  40. package/dist/types/methods/did-key.d.ts.map +1 -1
  41. package/dist/types/utils.d.ts +25 -25
  42. package/dist/types/utils.d.ts.map +1 -1
  43. package/dist/utils.js +1 -1
  44. package/dist/utils.js.map +4 -4
  45. package/package.json +4 -4
  46. package/src/methods/did-dht-dns.ts +516 -0
  47. package/src/methods/did-dht-pkarr.ts +192 -0
  48. package/src/methods/did-dht-types.ts +316 -0
  49. package/src/methods/did-dht-utils.ts +157 -0
  50. package/src/methods/did-dht.ts +122 -1128
  51. package/src/methods/did-ion-utils.ts +186 -0
  52. package/src/methods/did-ion.ts +14 -190
  53. package/src/methods/did-key-utils.ts +258 -0
  54. package/src/methods/did-key.ts +14 -266
  55. package/src/utils.ts +31 -30
@@ -0,0 +1,235 @@
1
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
+ return new (P || (P = Promise))(function (resolve, reject) {
4
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
8
+ });
9
+ };
10
+ import { Multicodec } from '@enbox/common';
11
+ import { Ed25519, Secp256k1, Secp256r1 } from '@enbox/crypto';
12
+ import { keyBytesToMultibaseId } from '../utils.js';
13
+ import { DidError, DidErrorCode } from '../did-error.js';
14
+ /**
15
+ * Private helper that maps algorithm identifiers to their corresponding DID Key
16
+ * {@link DidKeyRegisteredKeyType | registered key type}.
17
+ *
18
+ * Note: This is also used by `DidKeyUtils.publicKeyToMultibaseId()` to validate key types.
19
+ */
20
+ export const AlgorithmToKeyTypeMap = {
21
+ Ed25519: 'Ed25519',
22
+ ES256K: 'secp256k1',
23
+ ES256: 'secp256r1',
24
+ 'P-256': 'secp256r1',
25
+ secp256k1: 'secp256k1',
26
+ secp256r1: 'secp256r1',
27
+ };
28
+ /**
29
+ * The `DidKeyUtils` class provides utility functions to support operations in the DID Key method.
30
+ */
31
+ export class DidKeyUtils {
32
+ /**
33
+ * Converts a JWK (JSON Web Key) to a Multicodec code and name.
34
+ *
35
+ * @example
36
+ * ```ts
37
+ * const jwk: Jwk = { crv: 'Ed25519', kty: 'OKP', x: '...' };
38
+ * const { code, name } = await DidKeyUtils.jwkToMulticodec({ jwk });
39
+ * ```
40
+ *
41
+ * @param params - The parameters for the conversion.
42
+ * @param params.jwk - The JSON Web Key to be converted.
43
+ * @returns A promise that resolves to a Multicodec definition.
44
+ */
45
+ static jwkToMulticodec(_a) {
46
+ return __awaiter(this, arguments, void 0, function* ({ jwk }) {
47
+ const params = [];
48
+ if (jwk.crv) {
49
+ params.push(jwk.crv);
50
+ if (jwk.d) {
51
+ params.push('private');
52
+ }
53
+ else {
54
+ params.push('public');
55
+ }
56
+ }
57
+ const lookupKey = params.join(':');
58
+ const name = DidKeyUtils.JWK_TO_MULTICODEC[lookupKey];
59
+ if (name === undefined) {
60
+ throw new Error(`Unsupported JWK to Multicodec conversion: '${lookupKey}'`);
61
+ }
62
+ const code = Multicodec.getCodeFromName({ name });
63
+ return { code, name };
64
+ });
65
+ }
66
+ /**
67
+ * Returns the appropriate public key compressor for the specified cryptographic curve.
68
+ *
69
+ * @param curve - The cryptographic curve to use for the key conversion.
70
+ * @returns A public key compressor for the specified curve.
71
+ */
72
+ static keyCompressor(curve) {
73
+ // ): ({ publicKeyBytes }: { publicKeyBytes: Uint8Array }) => Promise<Uint8Array> {
74
+ const compressors = {
75
+ 'P-256': Secp256r1.compressPublicKey,
76
+ 'secp256k1': Secp256k1.compressPublicKey
77
+ };
78
+ const compressor = compressors[curve];
79
+ if (!compressor) {
80
+ throw new DidError(DidErrorCode.InvalidPublicKeyType, `Unsupported curve: ${curve}`);
81
+ }
82
+ return compressor;
83
+ }
84
+ /**
85
+ * Returns the appropriate key converter for the specified cryptographic curve.
86
+ *
87
+ * @param curve - The cryptographic curve to use for the key conversion.
88
+ * @returns An `AsymmetricKeyConverter` for the specified curve.
89
+ */
90
+ static keyConverter(curve) {
91
+ const converters = {
92
+ 'Ed25519': Ed25519,
93
+ 'P-256': Secp256r1,
94
+ 'secp256k1': Secp256k1,
95
+ };
96
+ const converter = converters[curve];
97
+ if (!converter) {
98
+ throw new DidError(DidErrorCode.InvalidPublicKeyType, `Unsupported curve: ${curve}`);
99
+ }
100
+ return converter;
101
+ }
102
+ /**
103
+ * Converts a Multicodec code or name to parial JWK (JSON Web Key).
104
+ *
105
+ * @example
106
+ * ```ts
107
+ * const partialJwk = await DidKeyUtils.multicodecToJwk({ name: 'ed25519-pub' });
108
+ * ```
109
+ *
110
+ * @param params - The parameters for the conversion.
111
+ * @param params.code - Optional Multicodec code to convert.
112
+ * @param params.name - Optional Multicodec name to convert.
113
+ * @returns A promise that resolves to a JOSE format key.
114
+ */
115
+ static multicodecToJwk(_a) {
116
+ return __awaiter(this, arguments, void 0, function* ({ code, name }) {
117
+ // Either code or name must be specified, but not both.
118
+ if (!(name ? !code : code)) {
119
+ throw new Error(`Either 'name' or 'code' must be defined, but not both.`);
120
+ }
121
+ // If name is undefined, lookup by code.
122
+ name = (name === undefined) ? Multicodec.getNameFromCode({ code: code }) : name;
123
+ const lookupKey = name;
124
+ const jose = DidKeyUtils.MULTICODEC_TO_JWK[lookupKey];
125
+ if (jose === undefined) {
126
+ throw new Error(`Unsupported Multicodec to JWK conversion`);
127
+ }
128
+ return Object.assign({}, jose);
129
+ });
130
+ }
131
+ /**
132
+ * Converts a public key in JWK (JSON Web Key) format to a multibase identifier.
133
+ *
134
+ * @remarks
135
+ * Note: All secp public keys are converted to compressed point encoding
136
+ * before the multibase identifier is computed.
137
+ *
138
+ * Per {@link https://github.com/multiformats/multicodec/blob/master/table.csv | Multicodec table}:
139
+ * Public keys for Elliptic Curve cryptography algorithms (e.g., secp256k1,
140
+ * secp256k1r1, secp384r1, etc.) are always represented with compressed point
141
+ * encoding (e.g., secp256k1-pub, p256-pub, p384-pub, etc.).
142
+ *
143
+ * Per {@link https://datatracker.ietf.org/doc/html/rfc8812#name-jose-and-cose-secp256k1-cur | RFC 8812}:
144
+ * "As a compressed point encoding representation is not defined for JWK
145
+ * elliptic curve points, the uncompressed point encoding defined there
146
+ * MUST be used. The x and y values represented MUST both be exactly
147
+ * 256 bits, with any leading zeros preserved."
148
+ *
149
+ * @example
150
+ * ```ts
151
+ * const publicKey = { crv: 'Ed25519', kty: 'OKP', x: '...' };
152
+ * const multibaseId = await DidKeyUtils.publicKeyToMultibaseId({ publicKey });
153
+ * ```
154
+ *
155
+ * @param params - The parameters for the conversion.
156
+ * @param params.publicKey - The public key in JWK format.
157
+ * @returns A promise that resolves to the multibase identifier.
158
+ */
159
+ static publicKeyToMultibaseId(_a) {
160
+ return __awaiter(this, arguments, void 0, function* ({ publicKey }) {
161
+ var _b;
162
+ if (!((publicKey === null || publicKey === void 0 ? void 0 : publicKey.crv) && publicKey.crv in AlgorithmToKeyTypeMap)) {
163
+ throw new DidError(DidErrorCode.InvalidPublicKeyType, `Public key contains an unsupported key type: ${(_b = publicKey === null || publicKey === void 0 ? void 0 : publicKey.crv) !== null && _b !== void 0 ? _b : 'undefined'}`);
164
+ }
165
+ // Convert the public key from JWK format to a byte array.
166
+ let publicKeyBytes = yield DidKeyUtils.keyConverter(publicKey.crv).publicKeyToBytes({ publicKey });
167
+ // Compress the public key if it is an elliptic curve key.
168
+ if (/^(secp256k1|P-256|P-384|P-521)$/.test(publicKey.crv)) {
169
+ publicKeyBytes = yield DidKeyUtils.keyCompressor(publicKey.crv)({ publicKeyBytes });
170
+ }
171
+ // Convert the JSON Web Key (JWK) parameters to a Multicodec name.
172
+ const { name: multicodecName } = yield DidKeyUtils.jwkToMulticodec({ jwk: publicKey });
173
+ // Compute the multibase identifier based on the provided key.
174
+ const multibaseId = keyBytesToMultibaseId({
175
+ keyBytes: publicKeyBytes,
176
+ multicodecName
177
+ });
178
+ return multibaseId;
179
+ });
180
+ }
181
+ }
182
+ /**
183
+ * A mapping from JSON Web Key (JWK) property descriptors to multicodec names.
184
+ *
185
+ * This mapping is used to convert keys in JWK (JSON Web Key) format to multicodec format.
186
+ *
187
+ * @remarks
188
+ * The keys of this object are strings that describe the JOSE key type and usage,
189
+ * such as 'Ed25519:public', 'Ed25519:private', etc. The values are the corresponding multicodec
190
+ * names used to represent these key types.
191
+ *
192
+ * @example
193
+ * ```ts
194
+ * const multicodecName = JWK_TO_MULTICODEC['Ed25519:public'];
195
+ * // Returns 'ed25519-pub', the multicodec name for an Ed25519 public key
196
+ * ```
197
+ */
198
+ DidKeyUtils.JWK_TO_MULTICODEC = {
199
+ 'Ed25519:public': 'ed25519-pub',
200
+ 'Ed25519:private': 'ed25519-priv',
201
+ 'secp256k1:public': 'secp256k1-pub',
202
+ 'secp256k1:private': 'secp256k1-priv',
203
+ };
204
+ /**
205
+ * Defines the expected byte lengths for public keys associated with different cryptographic
206
+ * algorithms, indexed by their multicodec code values.
207
+ */
208
+ DidKeyUtils.MULTICODEC_PUBLIC_KEY_LENGTH = {
209
+ // secp256k1-pub - Secp256k1 public key (compressed) - 33 bytes
210
+ 0xe7: 33,
211
+ // ed25519-pub - Ed25519 public key - 32 bytes
212
+ 0xed: 32
213
+ };
214
+ /**
215
+ * A mapping from multicodec names to their corresponding JOSE (JSON Object Signing and Encryption)
216
+ * representations. This mapping facilitates the conversion of multicodec key formats to
217
+ * JWK (JSON Web Key) formats.
218
+ *
219
+ * @remarks
220
+ * The keys of this object are multicodec names, such as 'ed25519-pub', 'ed25519-priv', etc.
221
+ * The values are objects representing the corresponding JWK properties for that key type.
222
+ *
223
+ * @example
224
+ * ```ts
225
+ * const joseKey = MULTICODEC_TO_JWK['ed25519-pub'];
226
+ * // Returns a partial JWK for an Ed25519 public key
227
+ * ```
228
+ */
229
+ DidKeyUtils.MULTICODEC_TO_JWK = {
230
+ 'ed25519-pub': { crv: 'Ed25519', kty: 'OKP', x: '' },
231
+ 'ed25519-priv': { crv: 'Ed25519', kty: 'OKP', x: '', d: '' },
232
+ 'secp256k1-pub': { crv: 'secp256k1', kty: 'EC', x: '', y: '' },
233
+ 'secp256k1-priv': { crv: 'secp256k1', kty: 'EC', x: '', y: '', d: '' },
234
+ };
235
+ //# sourceMappingURL=did-key-utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"did-key-utils.js","sourceRoot":"","sources":["../../../src/methods/did-key-utils.ts"],"names":[],"mappings":"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"}
@@ -7,14 +7,15 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
7
7
  step((generator = generator.apply(thisArg, _arguments || [])).next());
8
8
  });
9
9
  };
10
- import { Ed25519, LocalKeyManager, Secp256k1, Secp256r1, } from '@enbox/crypto';
11
- import { Multicodec, universalTypeOf } from '@enbox/common';
10
+ import { universalTypeOf } from '@enbox/common';
11
+ import { Ed25519, LocalKeyManager, Secp256k1 } from '@enbox/crypto';
12
12
  import { BearerDid } from '../bearer-did.js';
13
13
  import { Did } from '../did.js';
14
+ import { DidKeyUtils } from './did-key-utils.js';
14
15
  import { DidMethod } from './did-method.js';
15
16
  import { EMPTY_DID_RESOLUTION_RESULT } from '../types/did-resolution.js';
16
17
  import { DidError, DidErrorCode } from '../did-error.js';
17
- import { getVerificationMethodTypes, keyBytesToMultibaseId, multibaseIdToKeyBytes } from '../utils.js';
18
+ import { getVerificationMethodTypes, multibaseIdToKeyBytes } from '../utils.js';
18
19
  /**
19
20
  * Enumerates the types of keys that can be used in a DID Key document.
20
21
  *
@@ -53,18 +54,6 @@ export const DidKeyVerificationMethodType = {
53
54
  /** Represents a JSON Web Key (JWK) used for digital signatures and key agreement protocols. */
54
55
  JsonWebKey2020: 'https://w3id.org/security/suites/jws-2020/v1',
55
56
  };
56
- /**
57
- * Private helper that maps algorithm identifiers to their corresponding DID Key
58
- * {@link DidKeyRegisteredKeyType | registered key type}.
59
- */
60
- const AlgorithmToKeyTypeMap = {
61
- Ed25519: DidKeyRegisteredKeyType.Ed25519,
62
- ES256K: DidKeyRegisteredKeyType.secp256k1,
63
- ES256: DidKeyRegisteredKeyType.secp256r1,
64
- 'P-256': DidKeyRegisteredKeyType.secp256r1,
65
- secp256k1: DidKeyRegisteredKeyType.secp256k1,
66
- secp256r1: DidKeyRegisteredKeyType.secp256r1,
67
- };
68
57
  /**
69
58
  * The `DidKey` class provides an implementation of the 'did:key' DID method.
70
59
  *
@@ -545,211 +534,6 @@ export class DidKey extends DidMethod {
545
534
  * Name of the DID method, as defined in the DID Key specification.
546
535
  */
547
536
  DidKey.methodName = 'key';
548
- /**
549
- * The `DidKeyUtils` class provides utility functions to support operations in the DID Key method.
550
- */
551
- export class DidKeyUtils {
552
- /**
553
- * Converts a JWK (JSON Web Key) to a Multicodec code and name.
554
- *
555
- * @example
556
- * ```ts
557
- * const jwk: Jwk = { crv: 'Ed25519', kty: 'OKP', x: '...' };
558
- * const { code, name } = await DidKeyUtils.jwkToMulticodec({ jwk });
559
- * ```
560
- *
561
- * @param params - The parameters for the conversion.
562
- * @param params.jwk - The JSON Web Key to be converted.
563
- * @returns A promise that resolves to a Multicodec definition.
564
- */
565
- static jwkToMulticodec(_a) {
566
- return __awaiter(this, arguments, void 0, function* ({ jwk }) {
567
- const params = [];
568
- if (jwk.crv) {
569
- params.push(jwk.crv);
570
- if (jwk.d) {
571
- params.push('private');
572
- }
573
- else {
574
- params.push('public');
575
- }
576
- }
577
- const lookupKey = params.join(':');
578
- const name = DidKeyUtils.JWK_TO_MULTICODEC[lookupKey];
579
- if (name === undefined) {
580
- throw new Error(`Unsupported JWK to Multicodec conversion: '${lookupKey}'`);
581
- }
582
- const code = Multicodec.getCodeFromName({ name });
583
- return { code, name };
584
- });
585
- }
586
- /**
587
- * Returns the appropriate public key compressor for the specified cryptographic curve.
588
- *
589
- * @param curve - The cryptographic curve to use for the key conversion.
590
- * @returns A public key compressor for the specified curve.
591
- */
592
- static keyCompressor(curve) {
593
- // ): ({ publicKeyBytes }: { publicKeyBytes: Uint8Array }) => Promise<Uint8Array> {
594
- const compressors = {
595
- 'P-256': Secp256r1.compressPublicKey,
596
- 'secp256k1': Secp256k1.compressPublicKey
597
- };
598
- const compressor = compressors[curve];
599
- if (!compressor) {
600
- throw new DidError(DidErrorCode.InvalidPublicKeyType, `Unsupported curve: ${curve}`);
601
- }
602
- return compressor;
603
- }
604
- /**
605
- * Returns the appropriate key converter for the specified cryptographic curve.
606
- *
607
- * @param curve - The cryptographic curve to use for the key conversion.
608
- * @returns An `AsymmetricKeyConverter` for the specified curve.
609
- */
610
- static keyConverter(curve) {
611
- const converters = {
612
- 'Ed25519': Ed25519,
613
- 'P-256': Secp256r1,
614
- 'secp256k1': Secp256k1,
615
- };
616
- const converter = converters[curve];
617
- if (!converter) {
618
- throw new DidError(DidErrorCode.InvalidPublicKeyType, `Unsupported curve: ${curve}`);
619
- }
620
- return converter;
621
- }
622
- /**
623
- * Converts a Multicodec code or name to parial JWK (JSON Web Key).
624
- *
625
- * @example
626
- * ```ts
627
- * const partialJwk = await DidKeyUtils.multicodecToJwk({ name: 'ed25519-pub' });
628
- * ```
629
- *
630
- * @param params - The parameters for the conversion.
631
- * @param params.code - Optional Multicodec code to convert.
632
- * @param params.name - Optional Multicodec name to convert.
633
- * @returns A promise that resolves to a JOSE format key.
634
- */
635
- static multicodecToJwk(_a) {
636
- return __awaiter(this, arguments, void 0, function* ({ code, name }) {
637
- // Either code or name must be specified, but not both.
638
- if (!(name ? !code : code)) {
639
- throw new Error(`Either 'name' or 'code' must be defined, but not both.`);
640
- }
641
- // If name is undefined, lookup by code.
642
- name = (name === undefined) ? Multicodec.getNameFromCode({ code: code }) : name;
643
- const lookupKey = name;
644
- const jose = DidKeyUtils.MULTICODEC_TO_JWK[lookupKey];
645
- if (jose === undefined) {
646
- throw new Error(`Unsupported Multicodec to JWK conversion`);
647
- }
648
- return Object.assign({}, jose);
649
- });
650
- }
651
- /**
652
- * Converts a public key in JWK (JSON Web Key) format to a multibase identifier.
653
- *
654
- * @remarks
655
- * Note: All secp public keys are converted to compressed point encoding
656
- * before the multibase identifier is computed.
657
- *
658
- * Per {@link https://github.com/multiformats/multicodec/blob/master/table.csv | Multicodec table}:
659
- * Public keys for Elliptic Curve cryptography algorithms (e.g., secp256k1,
660
- * secp256k1r1, secp384r1, etc.) are always represented with compressed point
661
- * encoding (e.g., secp256k1-pub, p256-pub, p384-pub, etc.).
662
- *
663
- * Per {@link https://datatracker.ietf.org/doc/html/rfc8812#name-jose-and-cose-secp256k1-cur | RFC 8812}:
664
- * "As a compressed point encoding representation is not defined for JWK
665
- * elliptic curve points, the uncompressed point encoding defined there
666
- * MUST be used. The x and y values represented MUST both be exactly
667
- * 256 bits, with any leading zeros preserved."
668
- *
669
- * @example
670
- * ```ts
671
- * const publicKey = { crv: 'Ed25519', kty: 'OKP', x: '...' };
672
- * const multibaseId = await DidKeyUtils.publicKeyToMultibaseId({ publicKey });
673
- * ```
674
- *
675
- * @param params - The parameters for the conversion.
676
- * @param params.publicKey - The public key in JWK format.
677
- * @returns A promise that resolves to the multibase identifier.
678
- */
679
- static publicKeyToMultibaseId(_a) {
680
- return __awaiter(this, arguments, void 0, function* ({ publicKey }) {
681
- var _b;
682
- if (!((publicKey === null || publicKey === void 0 ? void 0 : publicKey.crv) && publicKey.crv in AlgorithmToKeyTypeMap)) {
683
- throw new DidError(DidErrorCode.InvalidPublicKeyType, `Public key contains an unsupported key type: ${(_b = publicKey === null || publicKey === void 0 ? void 0 : publicKey.crv) !== null && _b !== void 0 ? _b : 'undefined'}`);
684
- }
685
- // Convert the public key from JWK format to a byte array.
686
- let publicKeyBytes = yield DidKeyUtils.keyConverter(publicKey.crv).publicKeyToBytes({ publicKey });
687
- // Compress the public key if it is an elliptic curve key.
688
- if (/^(secp256k1|P-256|P-384|P-521)$/.test(publicKey.crv)) {
689
- publicKeyBytes = yield DidKeyUtils.keyCompressor(publicKey.crv)({ publicKeyBytes });
690
- }
691
- // Convert the JSON Web Key (JWK) parameters to a Multicodec name.
692
- const { name: multicodecName } = yield DidKeyUtils.jwkToMulticodec({ jwk: publicKey });
693
- // Compute the multibase identifier based on the provided key.
694
- const multibaseId = keyBytesToMultibaseId({
695
- keyBytes: publicKeyBytes,
696
- multicodecName
697
- });
698
- return multibaseId;
699
- });
700
- }
701
- }
702
- /**
703
- * A mapping from JSON Web Key (JWK) property descriptors to multicodec names.
704
- *
705
- * This mapping is used to convert keys in JWK (JSON Web Key) format to multicodec format.
706
- *
707
- * @remarks
708
- * The keys of this object are strings that describe the JOSE key type and usage,
709
- * such as 'Ed25519:public', 'Ed25519:private', etc. The values are the corresponding multicodec
710
- * names used to represent these key types.
711
- *
712
- * @example
713
- * ```ts
714
- * const multicodecName = JWK_TO_MULTICODEC['Ed25519:public'];
715
- * // Returns 'ed25519-pub', the multicodec name for an Ed25519 public key
716
- * ```
717
- */
718
- DidKeyUtils.JWK_TO_MULTICODEC = {
719
- 'Ed25519:public': 'ed25519-pub',
720
- 'Ed25519:private': 'ed25519-priv',
721
- 'secp256k1:public': 'secp256k1-pub',
722
- 'secp256k1:private': 'secp256k1-priv',
723
- };
724
- /**
725
- * Defines the expected byte lengths for public keys associated with different cryptographic
726
- * algorithms, indexed by their multicodec code values.
727
- */
728
- DidKeyUtils.MULTICODEC_PUBLIC_KEY_LENGTH = {
729
- // secp256k1-pub - Secp256k1 public key (compressed) - 33 bytes
730
- 0xe7: 33,
731
- // ed25519-pub - Ed25519 public key - 32 bytes
732
- 0xed: 32
733
- };
734
- /**
735
- * A mapping from multicodec names to their corresponding JOSE (JSON Object Signing and Encryption)
736
- * representations. This mapping facilitates the conversion of multicodec key formats to
737
- * JWK (JSON Web Key) formats.
738
- *
739
- * @remarks
740
- * The keys of this object are multicodec names, such as 'ed25519-pub', 'ed25519-priv', etc.
741
- * The values are objects representing the corresponding JWK properties for that key type.
742
- *
743
- * @example
744
- * ```ts
745
- * const joseKey = MULTICODEC_TO_JWK['ed25519-pub'];
746
- * // Returns a partial JWK for an Ed25519 public key
747
- * ```
748
- */
749
- DidKeyUtils.MULTICODEC_TO_JWK = {
750
- 'ed25519-pub': { crv: 'Ed25519', kty: 'OKP', x: '' },
751
- 'ed25519-priv': { crv: 'Ed25519', kty: 'OKP', x: '', d: '' },
752
- 'secp256k1-pub': { crv: 'secp256k1', kty: 'EC', x: '', y: '' },
753
- 'secp256k1-priv': { crv: 'secp256k1', kty: 'EC', x: '', y: '', d: '' },
754
- };
537
+ // Re-export DidKeyUtils from its dedicated module for backward compatibility.
538
+ export { DidKeyUtils } from './did-key-utils.js';
755
539
  //# sourceMappingURL=did-key.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"did-key.js","sourceRoot":"","sources":["../../../src/methods/did-key.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"did-key.js","sourceRoot":"","sources":["../../../src/methods/did-key.ts"],"names":[],"mappings":"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"}
package/dist/esm/utils.js CHANGED
@@ -305,9 +305,11 @@ export function isDidService(obj) {
305
305
  /**
306
306
  * Checks if a given object is a {@link DwnDidService}.
307
307
  *
308
- * A {@link DwnDidService} is defined as {@link DidService} object with a `type` of
309
- * "DecentralizedWebNode" and `enc` and `sig` properties, where both properties are either strings
310
- * or arrays of strings.
308
+ * A {@link DwnDidService} is defined as a {@link DidService} object with a `type` of
309
+ * `"DecentralizedWebNode"`. The `enc` and `sig` properties are optional they may be present
310
+ * on existing DID documents for backward compatibility, but are not required per the DWN
311
+ * specification. Encryption and signing keys are resolved from the DID document's verification
312
+ * methods, not from the service entry.
311
313
  *
312
314
  * @example
313
315
  * ```ts
@@ -319,33 +321,25 @@ export function isDidService(obj) {
319
321
  * type: 'JsonWebKey2020',
320
322
  * controller: 'did:example:123',
321
323
  * publicKeyJwk: { ... }
322
- * },
323
- * {
324
- * id: 'did:example:123#key-2',
325
- * type: 'JsonWebKey2020',
326
- * controller: 'did:example:123',
327
- * publicKeyJwk: { ... }
328
324
  * }
329
325
  * ],
330
326
  * service: [
331
327
  * {
332
328
  * id: 'did:example:123#dwn',
333
329
  * type: 'DecentralizedWebNode',
334
- * serviceEndpoint: 'https://enbox-dwn.fly.dev',
335
- * enc: 'did:example:123#key-1',
336
- * sig: 'did:example:123#key-2'
330
+ * serviceEndpoint: 'https://enbox-dwn.fly.dev'
337
331
  * }
338
332
  * ]
339
333
  * };
340
334
  *
341
- * if (isDwnService(didDocument.service[0])) {
335
+ * if (isDwnDidService(didDocument.service[0])) {
342
336
  * console.log('The object is a DwnDidService');
343
337
  * } else {
344
338
  * console.log('The object is not a DwnDidService');
345
339
  * }
346
340
  * ```
347
341
  *
348
- * @see {@link https://identity.foundation/decentralized-web-node/spec/ | Decentralized Web Node (DWN) Specification}
342
+ * @see {@link https://github.com/enboxorg/dwn-spec | Enbox DWN Specification}
349
343
  *
350
344
  * @param obj - The object to be checked.
351
345
  * @returns `true` if `obj` is a DwnDidService; otherwise, `false`.
@@ -359,13 +353,15 @@ export function isDwnDidService(obj) {
359
353
  if (obj.type !== 'DecentralizedWebNode') {
360
354
  return false;
361
355
  }
362
- // Validate that the given object has the `enc` and `sig` properties.
363
- if (!('enc' in obj && 'sig' in obj)) {
356
+ // If `enc` or `sig` are present, validate they are strings or arrays of strings.
357
+ const isStringOrStringArray = (prop) => typeof prop === 'string' || Array.isArray(prop) && prop.every(item => typeof item === 'string');
358
+ if ('enc' in obj && obj.enc !== undefined && !isStringOrStringArray(obj.enc)) {
364
359
  return false;
365
360
  }
366
- // Validate that the `enc` and `sig` properties are either strings or arrays of strings.
367
- const isStringOrStringArray = (prop) => typeof prop === 'string' || Array.isArray(prop) && prop.every(item => typeof item === 'string');
368
- return (isStringOrStringArray(obj.enc)) && (isStringOrStringArray(obj.sig));
361
+ if ('sig' in obj && obj.sig !== undefined && !isStringOrStringArray(obj.sig)) {
362
+ return false;
363
+ }
364
+ return true;
369
365
  }
370
366
  /**
371
367
  * Checks if a given object is a DID Verification Method.
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"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"}