@enbox/dids 0.0.4 → 0.0.5

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 (48) 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/types/methods/did-dht-dns.d.ts +114 -0
  22. package/dist/types/methods/did-dht-dns.d.ts.map +1 -0
  23. package/dist/types/methods/did-dht-pkarr.d.ts +56 -0
  24. package/dist/types/methods/did-dht-pkarr.d.ts.map +1 -0
  25. package/dist/types/methods/did-dht-types.d.ts +286 -0
  26. package/dist/types/methods/did-dht-types.d.ts.map +1 -0
  27. package/dist/types/methods/did-dht-utils.d.ts +54 -0
  28. package/dist/types/methods/did-dht-utils.d.ts.map +1 -0
  29. package/dist/types/methods/did-dht.d.ts +42 -457
  30. package/dist/types/methods/did-dht.d.ts.map +1 -1
  31. package/dist/types/methods/did-ion-utils.d.ts +86 -0
  32. package/dist/types/methods/did-ion-utils.d.ts.map +1 -0
  33. package/dist/types/methods/did-ion.d.ts +2 -82
  34. package/dist/types/methods/did-ion.d.ts.map +1 -1
  35. package/dist/types/methods/did-key-utils.d.ts +138 -0
  36. package/dist/types/methods/did-key-utils.d.ts.map +1 -0
  37. package/dist/types/methods/did-key.d.ts +3 -124
  38. package/dist/types/methods/did-key.d.ts.map +1 -1
  39. package/package.json +1 -1
  40. package/src/methods/did-dht-dns.ts +516 -0
  41. package/src/methods/did-dht-pkarr.ts +192 -0
  42. package/src/methods/did-dht-types.ts +316 -0
  43. package/src/methods/did-dht-utils.ts +157 -0
  44. package/src/methods/did-dht.ts +122 -1128
  45. package/src/methods/did-ion-utils.ts +186 -0
  46. package/src/methods/did-ion.ts +14 -190
  47. package/src/methods/did-key-utils.ts +258 -0
  48. package/src/methods/did-key.ts +14 -266
@@ -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":";;;;;;;;;AAiBA,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,OAAO,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAEpE,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,GAAG,EAAE,MAAM,WAAW,CAAC;AAChC,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,2BAA2B,EAAE,MAAM,4BAA4B,CAAC;AACzE,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AACzD,OAAO,EAAE,0BAA0B,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AA0FhF;;;;;;GAMG;AACH,MAAM,CAAN,IAAY,uBAkBX;AAlBD,WAAY,uBAAuB;IACjC;;;OAGG;IACH,8CAAmB,CAAA;IAEnB;;;OAGG;IACH,kDAAuB,CAAA;IAEvB;;;OAGG;IACH,kDAAuB,CAAA;AACzB,CAAC,EAlBW,uBAAuB,KAAvB,uBAAuB,QAkBlC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,4BAA4B,GAAG;IAC1C,oEAAoE;IACpE,0BAA0B,EAAE,kDAAkD;IAE9E,+FAA+F;IAC/F,cAAc,EAAE,8CAA8C;CACtD,CAAC;AAEX;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+EG;AACH,MAAM,OAAO,MAAO,SAAQ,SAAS;IAOnC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA6BG;IACI,MAAM,CAAO,MAAM;6DAAkD,EAC1E,UAAU,GAAG,IAAI,eAAe,EAAE,EAClC,OAAO,GAAG,EAAE,KAIV,EAAE;YACJ,+FAA+F;YAC/F,2CAA2C;;YAE3C,0FAA0F;YAC1F,IAAI,OAAO,CAAC,SAAS,IAAI,OAAO,CAAC,mBAAmB,EAAE,CAAC;gBACrD,MAAM,IAAI,KAAK,CAAC,0EAA0E,CAAC,CAAC;YAC9F,CAAC;YAED,8FAA8F;YAC9F,8CAA8C;YAC9C,IAAI,OAAO,CAAC,mBAAmB,IAAI,OAAO,CAAC,mBAAmB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC5E,MAAM,IAAI,KAAK,CAAC,iEAAiE,CAAC,CAAC;YACrF,CAAC;YAED,kEAAkE;YAClE,MAAM,SAAS,GAAG,MAAA,MAAA,OAAO,CAAC,SAAS,mCAAI,MAAA,MAAA,OAAO,CAAC,mBAAmB,0CAAG,CAAC,CAAC,0CAAE,SAAS,mCAAI,SAAS,CAAC;YAEhG,sDAAsD;YACtD,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,WAAW,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC;YAC3D,MAAM,SAAS,GAAG,MAAM,UAAU,CAAC,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;YAE5D,8FAA8F;YAC9F,oBAAoB;YACpB,MAAM,UAAU,GAAG,MAAM,WAAW,CAAC,sBAAsB,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC;YAE3E,4DAA4D;YAC5D,MAAM,MAAM,GAAG,OAAO,MAAM,CAAC,UAAU,IAAI,UAAU,EAAE,CAAC;YAExD,+CAA+C;YAC/C,MAAM,mBAAmB,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;YAClE,MAAM,QAAQ,GAAG,mBAAmB,CAAC,WAA0B,CAAC;YAEhE,+DAA+D;YAC/D,MAAM,GAAG,GAAG,IAAI,SAAS,CAAC;gBACxB,GAAG,EAAQ,MAAM;gBACjB,QAAQ;gBACR,QAAQ,EAAG,EAAE;gBACb,UAAU;aACX,CAAC,CAAC;YAEH,OAAO,GAAG,CAAC;QACb,CAAC;KAAA;IAED;;;;;;;;;;;;;OAaG;IACI,MAAM,CAAO,gBAAgB;6DAAC,EAAE,WAAW,EAGjD;;YACC,sCAAsC;YACtC,MAAM,SAAS,GAAG,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;YAC5C,IAAI,SAAS,IAAI,SAAS,CAAC,MAAM,KAAK,IAAI,CAAC,UAAU,EAAE,CAAC;gBACtD,MAAM,IAAI,QAAQ,CAAC,YAAY,CAAC,kBAAkB,EAAE,yBAAyB,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC;YACnG,CAAC;YAED,2EAA2E;YAC3E,MAAM,CAAE,QAAQ,CAAE,GAAG,WAAW,CAAC,eAAe,IAAI,EAAE,CAAC;YACvD,MAAM,kBAAkB,GAAG,MAAA,WAAW,CAAC,kBAAkB,0CAAE,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,QAAQ,CAAC,CAAC;YAE1F,IAAI,CAAC,CAAC,kBAAkB,IAAI,kBAAkB,CAAC,YAAY,CAAC,EAAE,CAAC;gBAC7D,MAAM,IAAI,QAAQ,CAAC,YAAY,CAAC,aAAa,EAAE,0FAA0F,CAAC,CAAC;YAC7I,CAAC;YAED,OAAO,kBAAkB,CAAC;QAC5B,CAAC;KAAA;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;OA0BG;IACI,MAAM,CAAO,MAAM;6DAAC,EAAE,WAAW,EAAE,UAAU,GAAG,IAAI,eAAe,EAAE,EAG3E;YACC,sCAAsC;YACtC,MAAM,SAAS,GAAG,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;YAC7C,IAAI,CAAA,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,MAAM,MAAK,MAAM,CAAC,UAAU,EAAE,CAAC;gBAC5C,MAAM,IAAI,QAAQ,CAAC,YAAY,CAAC,kBAAkB,EAAE,sBAAsB,CAAC,CAAC;YAC9E,CAAC;YAED,+DAA+D;YAC/D,MAAM,GAAG,GAAG,MAAM,SAAS,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,UAAU,EAAE,CAAC,CAAC;YAEhE,iFAAiF;YACjF,2FAA2F;YAC3F,4FAA4F;YAC5F,IAAI,GAAG,CAAC,QAAQ,CAAC,kBAAmB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAClD,MAAM,IAAI,QAAQ,CAAC,YAAY,CAAC,kBAAkB,EAAE,2DAA2D,CAAC,CAAC;YACnH,CAAC;YAED,OAAO,GAAG,CAAC;QACb,CAAC;KAAA;IAED;;;;;;OAMG;IACI,MAAM,CAAO,OAAO,CAAC,MAAc,EAAE,OAA8B;;YACxE,IAAI,CAAC;gBACH,0DAA0D;gBAC1D,MAAM,WAAW,GAAG,MAAM,MAAM,CAAC,cAAc,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC;gBAErE,2DAA2D;gBAC3D,uCACK,2BAA2B,KAC9B,WAAW,IACX;YAEJ,CAAC;YAAC,OAAO,KAAU,EAAE,CAAC;gBACpB,2DAA2D;gBAC3D,IAAI,CAAC,CAAC,KAAK,YAAY,QAAQ,CAAC,EAAE,CAAC;oBAAA,MAAM,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC;gBAAA,CAAC;gBAE3D,kEAAkE;gBAClE,uCACK,2BAA2B,KAC9B,qBAAqB,kBACnB,KAAK,EAAE,KAAK,CAAC,IAAI,IACd,KAAK,CAAC,OAAO,IAAI,EAAE,YAAY,EAAE,KAAK,CAAC,OAAO,EAAE,KAErD;YACJ,CAAC;QACH,CAAC;KAAA;IAED;;;;;;;OAOG;IACK,MAAM,CAAO,cAAc;6DAAC,EAAE,MAAM,EAAE,OAAO,GAAG,EAAE,EAGzD;YACC,MAAM,EACJ,cAAc,GAAG,8BAA8B,EAC/C,gCAAgC,GAAG,KAAK,EACxC,eAAe,GAAG,gBAAgB,EACnC,GAAG,OAAO,CAAC;YAEZ;;eAEG;YACH,MAAM,WAAW,GAAgB,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;YAE5C;;;;;eAKG;YACH,MAAM,SAAS,GAAG,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YACpC,IAAI,CAAC,SAAS,EAAE,CAAC;gBACf,MAAM,IAAI,QAAQ,CAAC,YAAY,CAAC,UAAU,EAAE,oBAAoB,MAAM,EAAE,CAAC,CAAC;YAC5E,CAAC;YACD,MAAM,cAAc,GAAG,SAAS,CAAC,EAAE,CAAC;YAEpC;;;;;;eAMG;YACH,IAAI,SAAS,CAAC,MAAM,KAAK,MAAM,CAAC,UAAU,EAAE,CAAC;gBAC3C,MAAM,IAAI,QAAQ,CAAC,YAAY,CAAC,kBAAkB,EAAE,yBAAyB,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC;YACnG,CAAC;YACD,IAAI,CAAC,MAAM,CAAC,kBAAkB,CAAC,SAAS,CAAC,EAAE,CAAC;gBAC1C,MAAM,IAAI,QAAQ,CAAC,YAAY,CAAC,UAAU,EAAE,oBAAoB,MAAM,EAAE,CAAC,CAAC;YAC5E,CAAC;YAED;;;;eAIG;YACH,MAAM,2BAA2B,GAAG,MAAM,MAAM,CAAC,qBAAqB,CAAC;gBACrE,MAAM;gBACN,cAAc;gBACd,OAAO,EAAE,EAAE,gCAAgC,EAAE,eAAe,EAAE;aAC/D,CAAC,CAAC;YAEH;;;;;;eAMG;YACH,WAAW,CAAC,EAAE,GAAG,SAAS,CAAC,GAAG,CAAC;YAE/B;;;eAGG;YACH,WAAW,CAAC,kBAAkB,GAAG,CAAC,2BAA2B,CAAC,CAAC;YAE/D;;;;;eAKG;YACH,WAAW,CAAC,cAAc,GAAG,CAAC,2BAA2B,CAAC,EAAE,CAAC,CAAC;YAC9D,WAAW,CAAC,eAAe,GAAG,CAAC,2BAA2B,CAAC,EAAE,CAAC,CAAC;YAC/D,WAAW,CAAC,oBAAoB,GAAG,CAAC,2BAA2B,CAAC,EAAE,CAAC,CAAC;YACpE,WAAW,CAAC,oBAAoB,GAAG,CAAC,2BAA2B,CAAC,EAAE,CAAC,CAAC;YAEpE;;;eAGG;YACH,8EAA8E;YAC9E,MAAM,YAAY,GAAG,CAAE,cAAc,CAAE,CAAC;YAExC,0EAA0E;YAC1E,yEAAyE;YACzE,iEAAiE;YACjE,kGAAkG;YAClG,MAAM,uBAAuB,GAAG,0BAA0B,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC;YAC5E,uBAAuB,CAAC,OAAO,CAAC,CAAC,QAAgB,EAAE,EAAE;gBACnD,MAAM,OAAO,GAAG,4BAA4B,CAAC,QAAqD,CAAC,CAAC;gBACpG,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAC7B,CAAC,CAAC,CAAC;YACH,WAAW,CAAC,UAAU,CAAC,GAAG,YAAY,CAAC;YAEvC;;eAEG;YACH,OAAO,WAAW,CAAC;QACrB,CAAC;KAAA;IAED;;;;;OAKG;IACK,MAAM,CAAO,qBAAqB;6DAAC,EAAE,MAAM,EAAE,cAAc,EAAE,OAAO,EAI3E;YACC,MAAM,EAAE,gCAAgC,EAAE,eAAe,EAAE,GAAG,OAAO,CAAC;YAEtE;;eAEG;YACH,MAAM,kBAAkB,GAA0B,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC;YAEvF;;;eAGG;YACH,MAAM,EACJ,QAAQ,EAAE,cAAc,EACxB,cAAc,EAAE,eAAe,EAC/B,cAAc,EACf,GAAG,qBAAqB,CAAC,EAAE,cAAc,EAAE,cAAc,EAAE,CAAC,CAAC;YAE9D;;;;;eAKG;YACH,MAAM,YAAY,GAAG,cAAc,CAAC,UAAU,CAAC;YAC/C,MAAM,cAAc,GAAG,WAAW,CAAC,4BAA4B,CAAC,eAAe,CAAC,CAAC;YACjF,IAAI,YAAY,KAAK,cAAc,EAAE,CAAC;gBACpC,MAAM,IAAI,QAAQ,CAAC,YAAY,CAAC,sBAAsB,EAAE,YAAY,YAAY,mBAAmB,cAAc,EAAE,CAAC,CAAC;YACvH,CAAC;YAED;;;;eAIG;YACH,IAAI,OAAO,GAAG,KAAK,CAAC;YACpB,QAAQ,cAAc,EAAE,CAAC;gBACvB,KAAK,eAAe;oBAClB,OAAO,GAAG,MAAM,SAAS,CAAC,iBAAiB,CAAC,EAAE,cAAc,EAAE,CAAC,CAAC;oBAChE,MAAM;gBACR,KAAK,aAAa;oBAChB,OAAO,GAAG,MAAM,OAAO,CAAC,iBAAiB,CAAC,EAAE,cAAc,EAAE,CAAC,CAAC;oBAC9D,MAAM;YACV,CAAC;YACD,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,MAAM,IAAI,QAAQ,CAAC,YAAY,CAAC,gBAAgB,EAAE,8BAA8B,CAAC,CAAC;YACpF,CAAC;YAED;;;;eAIG;YACH,kBAAkB,CAAC,EAAE,GAAG,GAAG,MAAM,IAAI,cAAc,EAAE,CAAC;YACtD,IAAI,CAAC;gBACH,IAAI,GAAG,CAAC,kBAAkB,CAAC,EAAE,CAAC,CAAC;YACjC,CAAC;YAAC,WAAM,CAAC;gBACP,MAAM,IAAI,QAAQ,CAAC,YAAY,CAAC,aAAa,EAAE,gDAAgD,CAAC,CAAC;YACnG,CAAC;YAED;;;;eAIG;YACH,IAAI,CAAC,CAAC,eAAe,IAAI,4BAA4B,CAAC,EAAE,CAAC;gBACvD,MAAM,IAAI,QAAQ,CAAC,YAAY,CAAC,wBAAwB,EAAE,uBAAuB,eAAe,EAAE,CAAC,CAAC;YACtG,CAAC;YAED;;;;eAIG;YACH,MAAM,sBAAsB,GAAG,CAAC,UAAU,EAAE,gBAAgB,EAAE,4BAA4B,CAAC,CAAC;YAC5F,IAAI,gCAAgC,KAAK,KAAK;mBACzC,CAAC,CAAC,sBAAsB,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,EAAE,CAAC;gBACzD,MAAM,IAAI,QAAQ,CAChB,YAAY,CAAC,oBAAoB,EACjC,cAAc,eAAe,6DAA6D,CAC3F,CAAC;YACJ,CAAC;YAED;;eAEG;YACH,kBAAkB,CAAC,IAAI,GAAG,eAAe,CAAC;YAE1C;;eAEG;YACH,kBAAkB,CAAC,UAAU,GAAG,MAAM,CAAC;YAEvC;;;;;;eAMG;YACH,IAAI,eAAe,KAAK,4BAA4B,EAAE,CAAC;gBACrD,kBAAkB,CAAC,kBAAkB,GAAG,cAAc,CAAC;YACzD,CAAC;YAED;;;eAGG;YACH,IAAI,eAAe,KAAK,gBAAgB,EAAE,CAAC;gBACzC,MAAM,EAAE,GAAG,EAAE,GAAG,MAAM,WAAW,CAAC,eAAe,CAAC,EAAE,IAAI,EAAE,eAAe,EAAE,CAAC,CAAC;gBAC7E,kBAAkB,CAAC,YAAY,GAAG,MAAM,WAAW,CAAC,YAAY,CAAC,GAAI,CAAC,CAAC,gBAAgB,CAAC,EAAE,cAAc,EAAE,CAAC,CAAC;YAC9G,CAAC;YAED;;eAEG;YACH,OAAO,kBAAkB,CAAC;QAC5B,CAAC;KAAA;IAGD;;;;;;;OAOG;IACK,MAAM,CAAC,kBAAkB,CAAC,SAAc;QAC9C,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,cAAc,EAAE,GAAG,SAAS,CAAC;QACjD,MAAM,CAAE,MAAM,CAAE,GAAG,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;QAE/C;;;;;WAKG;QACH,MAAM,OAAO,GAAG,GAAG,CAAC;QAEpB,OAAO,CACL,MAAM,KAAK,KAAK;YAChB,MAAM,KAAK,KAAK;YAChB,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC;YACnB,eAAe,CAAC,cAAc,CAAC,KAAK,QAAQ;YAC5C,cAAc,CAAC,UAAU,CAAC,GAAG,CAAC,CAC/B,CAAC;IACJ,CAAC;;AAtdD;;GAEG;AACW,iBAAU,GAAG,KAAK,CAAC;AAsdnC,8EAA8E;AAC9E,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC"}
@@ -0,0 +1,114 @@
1
+ import type { DidMetadata } from '../types/portable-did.js';
2
+ import type { PreviousDidProof } from './did-dht-types.js';
3
+ import type { DidDocument } from '../types/did-core.js';
4
+ import type { Packet, TxtAnswer, TxtData } from '@dnsquery/dns-packet';
5
+ import { DidDhtRegisteredKeyType } from './did-dht-types.js';
6
+ /**
7
+ * The version of the DID DHT specification that is implemented by this library.
8
+ */
9
+ export declare const DID_DHT_SPECIFICATION_VERSION = 0;
10
+ /**
11
+ * The default TTL for DNS records published to the DHT network.
12
+ *
13
+ * The recommended TTL value is 7200 seconds (2 hours) since it matches the default TTL for
14
+ * Mainline DHT records.
15
+ */
16
+ export declare const DNS_RECORD_TTL = 7200;
17
+ /**
18
+ * Character used to separate distinct elements or entries in the DNS packet representation
19
+ * of a DID Document.
20
+ */
21
+ export declare const PROPERTY_SEPARATOR = ";";
22
+ /**
23
+ * Character used to separate distinct values within a single element or entry in the DNS packet
24
+ * representation of a DID Document.
25
+ */
26
+ export declare const VALUE_SEPARATOR = ",";
27
+ /**
28
+ * Private helper that maps algorithm identifiers to their corresponding DID DHT
29
+ * {@link DidDhtRegisteredKeyType | registered key type}.
30
+ */
31
+ export declare const AlgorithmToKeyTypeMap: {
32
+ readonly Ed25519: DidDhtRegisteredKeyType.Ed25519;
33
+ readonly ES256K: DidDhtRegisteredKeyType.secp256k1;
34
+ readonly ES256: DidDhtRegisteredKeyType.secp256r1;
35
+ readonly 'P-256': DidDhtRegisteredKeyType.secp256r1;
36
+ readonly secp256k1: DidDhtRegisteredKeyType.secp256k1;
37
+ readonly secp256r1: DidDhtRegisteredKeyType.secp256r1;
38
+ readonly X25519: DidDhtRegisteredKeyType.X25519;
39
+ };
40
+ /**
41
+ * Private helper that maps DID DHT registered key types to their corresponding default algorithm identifiers.
42
+ */
43
+ export declare const KeyTypeToDefaultAlgorithmMap: {
44
+ 0: string;
45
+ 1: string;
46
+ 2: string;
47
+ 3: string;
48
+ };
49
+ /**
50
+ * Creates a TXT DNS answer record with the given name and data, using the standard DNS_RECORD_TTL.
51
+ *
52
+ * @param name - The DNS record name.
53
+ * @param data - The TXT record data (string or string array).
54
+ * @returns A TxtAnswer record.
55
+ */
56
+ export declare function createTxtRecord(name: string, data: string | string[]): TxtAnswer;
57
+ /**
58
+ * Decodes and parses the data value of a DNS TXT record into a string.
59
+ *
60
+ * @param txtData - The data value of a DNS TXT record.
61
+ * @returns A string representation of the TXT record data.
62
+ */
63
+ export declare function parseTxtDataToString(txtData: TxtData): string;
64
+ /**
65
+ * Decodes and parses the data value of a DNS TXT record into a key-value object.
66
+ *
67
+ * @param txtData - The data value of a DNS TXT record.
68
+ * @returns An object containing the key/value pairs of the TXT record data.
69
+ */
70
+ export declare function parseTxtDataToObject(txtData: TxtData): Record<string, string>;
71
+ /**
72
+ * Splits a string into chunks of length 255 if the string exceeds length 255.
73
+ *
74
+ * @param data - The string to split into chunks.
75
+ * @returns The original string if its length is less than or equal to 255, otherwise an array of chunked strings.
76
+ */
77
+ export declare function chunkDataIfNeeded(data: string): string | string[];
78
+ /**
79
+ * Converts a DNS packet to a DID document according to the DID DHT specification.
80
+ *
81
+ * @see {@link https://did-dht.com/#dids-as-dns-records | DID DHT Specification, § DIDs as DNS Records}
82
+ *
83
+ * @param params - The parameters to use when converting a DNS packet to a DID document.
84
+ * @param params.didUri - The DID URI of the DID document.
85
+ * @param params.dnsPacket - The DNS packet to convert to a DID document.
86
+ * @returns A Promise resolving to an object containing the DID document and its metadata.
87
+ */
88
+ export declare function fromDnsPacket({ didUri, dnsPacket }: {
89
+ didUri: string;
90
+ dnsPacket: Packet;
91
+ }): Promise<{
92
+ didDocument: DidDocument;
93
+ didDocumentMetadata: DidMetadata;
94
+ didResolutionMetadata: Record<string, never>;
95
+ }>;
96
+ /**
97
+ * Converts a DID document to a DNS packet according to the DID DHT specification.
98
+ *
99
+ * @see {@link https://did-dht.com/#dids-as-dns-records | DID DHT Specification, § DIDs as DNS Records}
100
+ *
101
+ * @param params - The parameters to use when converting a DID document to a DNS packet.
102
+ * @param params.didDocument - The DID document to convert to a DNS packet.
103
+ * @param params.didMetadata - The DID metadata to include in the DNS packet.
104
+ * @param params.authoritativeGatewayUris - The URIs of the Authoritative Gateways to generate NS records from.
105
+ * @param params.previousDidProof - The signature proof that this DID is linked to the given previous DID.
106
+ * @returns A promise that resolves to a DNS packet.
107
+ */
108
+ export declare function toDnsPacket({ didDocument, didMetadata, authoritativeGatewayUris, previousDidProof }: {
109
+ didDocument: DidDocument;
110
+ didMetadata: DidMetadata;
111
+ authoritativeGatewayUris?: string[];
112
+ previousDidProof?: PreviousDidProof;
113
+ }): Promise<Packet>;
114
+ //# sourceMappingURL=did-dht-dns.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"did-dht-dns.d.ts","sourceRoot":"","sources":["../../../src/methods/did-dht-dns.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,KAAK,EAAE,WAAW,EAAc,MAAM,sBAAsB,CAAC;AACpE,OAAO,KAAK,EAAE,MAAM,EAAgB,SAAS,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAOrF,OAAO,EAA2B,uBAAuB,EAAkC,MAAM,oBAAoB,CAAC;AAItH;;GAEG;AACH,eAAO,MAAM,6BAA6B,IAAI,CAAC;AAE/C;;;;;GAKG;AACH,eAAO,MAAM,cAAc,OAAO,CAAC;AAEnC;;;GAGG;AACH,eAAO,MAAM,kBAAkB,MAAM,CAAC;AAEtC;;;GAGG;AACH,eAAO,MAAM,eAAe,MAAM,CAAC;AAEnC;;;GAGG;AACH,eAAO,MAAM,qBAAqB;;;;;;;;CAQxB,CAAC;AAEX;;GAEG;AACH,eAAO,MAAM,4BAA4B;;;;;CAKxC,CAAC;AAEF;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS,CAOhF;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,CAU7D;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAM7E;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,EAAE,CAYjE;AAED;;;;;;;;;GASG;AACH,wBAAsB,aAAa,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE;IACzD,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;CACnB,GAAG,OAAO,CAAC;IAAE,WAAW,EAAE,WAAW,CAAC;IAAC,mBAAmB,EAAE,WAAW,CAAC;IAAC,qBAAqB,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAA;CAAE,CAAC,CAyJxH;AAED;;;;;;;;;;;GAWG;AACH,wBAAsB,WAAW,CAAC,EAAE,WAAW,EAAE,WAAW,EAAE,wBAAwB,EAAE,gBAAgB,EAAE,EAAE;IAC1G,WAAW,EAAE,WAAW,CAAC;IACzB,WAAW,EAAE,WAAW,CAAC;IACzB,wBAAwB,CAAC,EAAE,MAAM,EAAE,CAAC;IACpC,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;CACrC,GAAG,OAAO,CAAC,MAAM,CAAC,CA6LlB"}