@enbox/dwn-sdk-js 0.4.4 → 0.4.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 (197) hide show
  1. package/dist/browser.mjs +15 -15
  2. package/dist/browser.mjs.map +4 -4
  3. package/dist/esm/generated/precompiled-validators.js +5316 -2425
  4. package/dist/esm/generated/precompiled-validators.js.map +1 -1
  5. package/dist/esm/json-schemas/definitions.json +18 -0
  6. package/dist/esm/src/core/constants.js +3 -3
  7. package/dist/esm/src/core/constants.js.map +1 -1
  8. package/dist/esm/src/core/dwn-error.js +29 -1
  9. package/dist/esm/src/core/dwn-error.js.map +1 -1
  10. package/dist/esm/src/core/messages-grant-authorization.js +20 -0
  11. package/dist/esm/src/core/messages-grant-authorization.js.map +1 -1
  12. package/dist/esm/src/core/protocol-authorization-validation.js +80 -3
  13. package/dist/esm/src/core/protocol-authorization-validation.js.map +1 -1
  14. package/dist/esm/src/core/recording-validation-state-reader.js +5 -0
  15. package/dist/esm/src/core/recording-validation-state-reader.js.map +1 -1
  16. package/dist/esm/src/core/replication-apply.js +163 -7
  17. package/dist/esm/src/core/replication-apply.js.map +1 -1
  18. package/dist/esm/src/core/validation-state-reader.js +20 -0
  19. package/dist/esm/src/core/validation-state-reader.js.map +1 -1
  20. package/dist/esm/src/dwn.js +19 -2
  21. package/dist/esm/src/dwn.js.map +1 -1
  22. package/dist/esm/src/handlers/messages-query.js +3 -5
  23. package/dist/esm/src/handlers/messages-query.js.map +1 -1
  24. package/dist/esm/src/handlers/protocols-configure.js +10 -4
  25. package/dist/esm/src/handlers/protocols-configure.js.map +1 -1
  26. package/dist/esm/src/handlers/records-write.js +1 -1
  27. package/dist/esm/src/handlers/records-write.js.map +1 -1
  28. package/dist/esm/src/index.js +2 -1
  29. package/dist/esm/src/index.js.map +1 -1
  30. package/dist/esm/src/interfaces/protocols-configure.js +23 -10
  31. package/dist/esm/src/interfaces/protocols-configure.js.map +1 -1
  32. package/dist/esm/src/interfaces/records-write-signing.js +2 -8
  33. package/dist/esm/src/interfaces/records-write-signing.js.map +1 -1
  34. package/dist/esm/src/interfaces/records-write.js +43 -65
  35. package/dist/esm/src/interfaces/records-write.js.map +1 -1
  36. package/dist/esm/src/protocols/encryption.js +411 -0
  37. package/dist/esm/src/protocols/encryption.js.map +1 -0
  38. package/dist/esm/src/protocols/permission-grant.js +0 -5
  39. package/dist/esm/src/protocols/permission-grant.js.map +1 -1
  40. package/dist/esm/src/types/message-types.js.map +1 -1
  41. package/dist/esm/src/types/permission-types.js.map +1 -1
  42. package/dist/esm/src/types/protocols-types.js.map +1 -1
  43. package/dist/esm/src/utils/encryption.js +135 -187
  44. package/dist/esm/src/utils/encryption.js.map +1 -1
  45. package/dist/esm/src/utils/hd-key.js +0 -1
  46. package/dist/esm/src/utils/hd-key.js.map +1 -1
  47. package/dist/esm/src/utils/permission-scope.js +9 -6
  48. package/dist/esm/src/utils/permission-scope.js.map +1 -1
  49. package/dist/esm/src/utils/protocols.js +12 -9
  50. package/dist/esm/src/utils/protocols.js.map +1 -1
  51. package/dist/esm/src/utils/records.js +54 -56
  52. package/dist/esm/src/utils/records.js.map +1 -1
  53. package/dist/esm/src/utils/replication.js +27 -4
  54. package/dist/esm/src/utils/replication.js.map +1 -1
  55. package/dist/esm/tests/core/replication-apply.spec.js +141 -1
  56. package/dist/esm/tests/core/replication-apply.spec.js.map +1 -1
  57. package/dist/esm/tests/core/replication-replay-property.spec.js +1 -0
  58. package/dist/esm/tests/core/replication-replay-property.spec.js.map +1 -1
  59. package/dist/esm/tests/core/validation-read-closure.spec.js +111 -0
  60. package/dist/esm/tests/core/validation-read-closure.spec.js.map +1 -1
  61. package/dist/esm/tests/core/validation-state-reader.spec.js +89 -0
  62. package/dist/esm/tests/core/validation-state-reader.spec.js.map +1 -1
  63. package/dist/esm/tests/features/protocol-composition.spec.js +30 -31
  64. package/dist/esm/tests/features/protocol-composition.spec.js.map +1 -1
  65. package/dist/esm/tests/fuzz/encryption.fuzz.spec.js +29 -121
  66. package/dist/esm/tests/fuzz/encryption.fuzz.spec.js.map +1 -1
  67. package/dist/esm/tests/handlers/messages-query.spec.js +71 -3
  68. package/dist/esm/tests/handlers/messages-query.spec.js.map +1 -1
  69. package/dist/esm/tests/handlers/messages-read.spec.js +2 -2
  70. package/dist/esm/tests/handlers/messages-read.spec.js.map +1 -1
  71. package/dist/esm/tests/handlers/records-read.spec.js +9 -135
  72. package/dist/esm/tests/handlers/records-read.spec.js.map +1 -1
  73. package/dist/esm/tests/handlers/records-write.spec.js +279 -19
  74. package/dist/esm/tests/handlers/records-write.spec.js.map +1 -1
  75. package/dist/esm/tests/interfaces/protocols-configure.spec.js +17 -22
  76. package/dist/esm/tests/interfaces/protocols-configure.spec.js.map +1 -1
  77. package/dist/esm/tests/interfaces/records-write.spec.js +170 -150
  78. package/dist/esm/tests/interfaces/records-write.spec.js.map +1 -1
  79. package/dist/esm/tests/protocols/encryption.spec.js +914 -0
  80. package/dist/esm/tests/protocols/encryption.spec.js.map +1 -0
  81. package/dist/esm/tests/scenarios/end-to-end-tests.spec.js +100 -100
  82. package/dist/esm/tests/scenarios/end-to-end-tests.spec.js.map +1 -1
  83. package/dist/esm/tests/store/message-store-level.spec.js +20 -2
  84. package/dist/esm/tests/store/message-store-level.spec.js.map +1 -1
  85. package/dist/esm/tests/utils/encryption-callbacks.spec.js +88 -125
  86. package/dist/esm/tests/utils/encryption-callbacks.spec.js.map +1 -1
  87. package/dist/esm/tests/utils/encryption.spec.js +125 -255
  88. package/dist/esm/tests/utils/encryption.spec.js.map +1 -1
  89. package/dist/esm/tests/utils/permission-scope.spec.js +5 -1
  90. package/dist/esm/tests/utils/permission-scope.spec.js.map +1 -1
  91. package/dist/esm/tests/utils/records.spec.js +15 -5
  92. package/dist/esm/tests/utils/records.spec.js.map +1 -1
  93. package/dist/esm/tests/utils/test-data-generator.js +7 -44
  94. package/dist/esm/tests/utils/test-data-generator.js.map +1 -1
  95. package/dist/esm/tests/validation/json-schemas/encryption/grant-key.spec.js +63 -0
  96. package/dist/esm/tests/validation/json-schemas/encryption/grant-key.spec.js.map +1 -0
  97. package/dist/types/generated/precompiled-validators.d.ts +140 -92
  98. package/dist/types/generated/precompiled-validators.d.ts.map +1 -1
  99. package/dist/types/src/core/constants.d.ts +2 -2
  100. package/dist/types/src/core/constants.d.ts.map +1 -1
  101. package/dist/types/src/core/core-protocol.d.ts +1 -1
  102. package/dist/types/src/core/core-protocol.d.ts.map +1 -1
  103. package/dist/types/src/core/dwn-error.d.ts +29 -1
  104. package/dist/types/src/core/dwn-error.d.ts.map +1 -1
  105. package/dist/types/src/core/messages-grant-authorization.d.ts +2 -0
  106. package/dist/types/src/core/messages-grant-authorization.d.ts.map +1 -1
  107. package/dist/types/src/core/protocol-authorization-validation.d.ts +2 -2
  108. package/dist/types/src/core/protocol-authorization-validation.d.ts.map +1 -1
  109. package/dist/types/src/core/recording-validation-state-reader.d.ts +9 -0
  110. package/dist/types/src/core/recording-validation-state-reader.d.ts.map +1 -1
  111. package/dist/types/src/core/replication-apply.d.ts +4 -3
  112. package/dist/types/src/core/replication-apply.d.ts.map +1 -1
  113. package/dist/types/src/core/validation-state-reader.d.ts +9 -0
  114. package/dist/types/src/core/validation-state-reader.d.ts.map +1 -1
  115. package/dist/types/src/dwn.d.ts +1 -0
  116. package/dist/types/src/dwn.d.ts.map +1 -1
  117. package/dist/types/src/handlers/messages-query.d.ts.map +1 -1
  118. package/dist/types/src/handlers/protocols-configure.d.ts.map +1 -1
  119. package/dist/types/src/index.d.ts +6 -5
  120. package/dist/types/src/index.d.ts.map +1 -1
  121. package/dist/types/src/interfaces/protocols-configure.d.ts +1 -1
  122. package/dist/types/src/interfaces/protocols-configure.d.ts.map +1 -1
  123. package/dist/types/src/interfaces/records-write-signing.d.ts +4 -8
  124. package/dist/types/src/interfaces/records-write-signing.d.ts.map +1 -1
  125. package/dist/types/src/interfaces/records-write.d.ts +10 -26
  126. package/dist/types/src/interfaces/records-write.d.ts.map +1 -1
  127. package/dist/types/src/protocols/encryption.d.ts +43 -0
  128. package/dist/types/src/protocols/encryption.d.ts.map +1 -0
  129. package/dist/types/src/protocols/permission-grant.d.ts +0 -7
  130. package/dist/types/src/protocols/permission-grant.d.ts.map +1 -1
  131. package/dist/types/src/types/encryption-types.d.ts +5 -38
  132. package/dist/types/src/types/encryption-types.d.ts.map +1 -1
  133. package/dist/types/src/types/message-types.d.ts +0 -13
  134. package/dist/types/src/types/message-types.d.ts.map +1 -1
  135. package/dist/types/src/types/permission-types.d.ts +0 -9
  136. package/dist/types/src/types/permission-types.d.ts.map +1 -1
  137. package/dist/types/src/types/protocols-types.d.ts +9 -14
  138. package/dist/types/src/types/protocols-types.d.ts.map +1 -1
  139. package/dist/types/src/types/records-types.d.ts +3 -3
  140. package/dist/types/src/types/records-types.d.ts.map +1 -1
  141. package/dist/types/src/types/validation-state-reader.d.ts +12 -0
  142. package/dist/types/src/types/validation-state-reader.d.ts.map +1 -1
  143. package/dist/types/src/utils/encryption.d.ts +54 -145
  144. package/dist/types/src/utils/encryption.d.ts.map +1 -1
  145. package/dist/types/src/utils/hd-key.d.ts +1 -1
  146. package/dist/types/src/utils/hd-key.d.ts.map +1 -1
  147. package/dist/types/src/utils/permission-scope.d.ts +4 -3
  148. package/dist/types/src/utils/permission-scope.d.ts.map +1 -1
  149. package/dist/types/src/utils/protocols.d.ts +3 -5
  150. package/dist/types/src/utils/protocols.d.ts.map +1 -1
  151. package/dist/types/src/utils/records.d.ts +5 -13
  152. package/dist/types/src/utils/records.d.ts.map +1 -1
  153. package/dist/types/src/utils/replication.d.ts +3 -0
  154. package/dist/types/src/utils/replication.d.ts.map +1 -1
  155. package/dist/types/tests/features/protocol-composition.spec.d.ts.map +1 -1
  156. package/dist/types/tests/handlers/messages-query.spec.d.ts.map +1 -1
  157. package/dist/types/tests/handlers/records-read.spec.d.ts.map +1 -1
  158. package/dist/types/tests/handlers/records-write.spec.d.ts.map +1 -1
  159. package/dist/types/tests/protocols/encryption.spec.d.ts +2 -0
  160. package/dist/types/tests/protocols/encryption.spec.d.ts.map +1 -0
  161. package/dist/types/tests/scenarios/end-to-end-tests.spec.d.ts.map +1 -1
  162. package/dist/types/tests/utils/test-data-generator.d.ts +0 -5
  163. package/dist/types/tests/utils/test-data-generator.d.ts.map +1 -1
  164. package/dist/types/tests/validation/json-schemas/encryption/grant-key.spec.d.ts +2 -0
  165. package/dist/types/tests/validation/json-schemas/encryption/grant-key.spec.d.ts.map +1 -0
  166. package/package.json +3 -3
  167. package/src/core/constants.ts +3 -3
  168. package/src/core/core-protocol.ts +1 -1
  169. package/src/core/dwn-error.ts +29 -1
  170. package/src/core/messages-grant-authorization.ts +27 -0
  171. package/src/core/protocol-authorization-validation.ts +145 -6
  172. package/src/core/recording-validation-state-reader.ts +13 -0
  173. package/src/core/replication-apply.ts +222 -8
  174. package/src/core/validation-state-reader.ts +30 -0
  175. package/src/dwn.ts +24 -2
  176. package/src/handlers/messages-query.ts +6 -5
  177. package/src/handlers/protocols-configure.ts +19 -3
  178. package/src/handlers/records-write.ts +1 -1
  179. package/src/index.ts +15 -5
  180. package/src/interfaces/protocols-configure.ts +39 -12
  181. package/src/interfaces/records-write-signing.ts +5 -12
  182. package/src/interfaces/records-write.ts +75 -92
  183. package/src/protocols/encryption.ts +649 -0
  184. package/src/protocols/permission-grant.ts +0 -6
  185. package/src/types/encryption-types.ts +9 -38
  186. package/src/types/message-types.ts +0 -13
  187. package/src/types/permission-types.ts +0 -10
  188. package/src/types/protocols-types.ts +9 -16
  189. package/src/types/records-types.ts +3 -3
  190. package/src/types/validation-state-reader.ts +13 -0
  191. package/src/utils/encryption.ts +213 -283
  192. package/src/utils/hd-key.ts +1 -1
  193. package/src/utils/permission-scope.ts +10 -6
  194. package/src/utils/protocols.ts +16 -15
  195. package/src/utils/records.ts +86 -71
  196. package/src/utils/replication.ts +30 -4
  197. package/dist/esm/tests/vectors/protocol-definitions/chat.json +0 -70
@@ -1,132 +1,40 @@
1
1
  import { describe, expect, it } from 'bun:test';
2
2
  import fc from 'fast-check';
3
- import { ContentEncryptionAlgorithm, Encryption } from '../../src/utils/encryption.js';
3
+ import { ArrayUtility } from '../../src/utils/array.js';
4
+ import { Encoder } from '../../src/utils/encoder.js';
5
+ import { KeyDerivationScheme } from '../../src/utils/hd-key.js';
6
+ import { X25519 } from '@enbox/crypto';
7
+ import { ContentEncryptionAlgorithm, Encryption, KeyAgreementAlgorithm } from '../../src/utils/encryption.js';
4
8
  const numRuns = Number(process.env.FAST_CHECK_NUM_RUNS) || 200;
5
- /** Generates a random 32-byte key (256-bit) for AES-256-GCM or XChaCha20. */
6
9
  function aes256Key() {
7
10
  return fc.uint8Array({ minLength: 32, maxLength: 32 });
8
11
  }
9
- /** Generates a random 12-byte IV for AES-256-GCM. */
10
- function aesGcmIv() {
11
- return fc.uint8Array({ minLength: 12, maxLength: 12 });
12
- }
13
- /** Generates a random 24-byte nonce for XChaCha20-Poly1305. */
14
- function xchachaIv() {
15
- return fc.uint8Array({ minLength: 24, maxLength: 24 });
12
+ function aesCtrIv() {
13
+ return fc.uint8Array({ minLength: 16, maxLength: 16 });
16
14
  }
17
15
  describe('Encryption — fuzz', () => {
18
- describe('AES-256-GCM encrypt/decrypt roundtrip', () => {
19
- it('should roundtrip arbitrary plaintext through AES-256-GCM', async () => {
20
- await fc.assert(fc.asyncProperty(aes256Key(), aesGcmIv(), fc.uint8Array({ minLength: 0, maxLength: 1024 }), async (key, iv, plaintext) => {
21
- const { ciphertext, tag } = await Encryption.aeadEncrypt(ContentEncryptionAlgorithm.A256GCM, key, iv, plaintext);
22
- const decrypted = await Encryption.aeadDecrypt(ContentEncryptionAlgorithm.A256GCM, key, iv, ciphertext, tag);
23
- expect(decrypted).toEqual(plaintext);
24
- }), { numRuns });
25
- });
26
- });
27
- describe('XChaCha20-Poly1305 encrypt/decrypt roundtrip', () => {
28
- it('should roundtrip arbitrary plaintext through XChaCha20-Poly1305', async () => {
29
- await fc.assert(fc.asyncProperty(aes256Key(), xchachaIv(), fc.uint8Array({ minLength: 0, maxLength: 1024 }), async (key, iv, plaintext) => {
30
- const { ciphertext, tag } = await Encryption.aeadEncrypt(ContentEncryptionAlgorithm.XC20P, key, iv, plaintext);
31
- const decrypted = await Encryption.aeadDecrypt(ContentEncryptionAlgorithm.XC20P, key, iv, ciphertext, tag);
32
- expect(decrypted).toEqual(plaintext);
33
- }), { numRuns });
34
- });
35
- });
36
- describe('AES-256-GCM — authenticated output differs from plaintext', () => {
37
- it('should produce authenticated output (ciphertext + tag) that differs from the plaintext', async () => {
38
- await fc.assert(fc.asyncProperty(aes256Key(), aesGcmIv(), fc.uint8Array({ minLength: 1, maxLength: 512 }), async (key, iv, plaintext) => {
39
- const { ciphertext, tag } = await Encryption.aeadEncrypt(ContentEncryptionAlgorithm.A256GCM, key, iv, plaintext);
40
- // The full AEAD output is ciphertext || tag. The 16-byte tag
41
- // guarantees the output is always longer than the input, so a
42
- // byte-level match is impossible — unlike comparing raw
43
- // ciphertext bytes alone, which can coincide for short inputs.
44
- const authenticatedOutput = new Uint8Array([...ciphertext, ...tag]);
45
- const areEqual = plaintext.length === authenticatedOutput.length &&
46
- plaintext.every((byte, i) => byte === authenticatedOutput[i]);
47
- expect(areEqual).toBe(false);
48
- }), { numRuns });
49
- });
50
- });
51
- describe('AES-256-GCM — wrong key fails decryption', () => {
52
- it('should fail to decrypt with a different key', async () => {
53
- await fc.assert(fc.asyncProperty(aes256Key(), aes256Key(), aesGcmIv(), fc.uint8Array({ minLength: 1, maxLength: 256 }), async (key1, key2, iv, plaintext) => {
54
- // Skip if keys are identical
55
- if (key1.every((byte, i) => byte === key2[i])) {
56
- return;
57
- }
58
- const { ciphertext, tag } = await Encryption.aeadEncrypt(ContentEncryptionAlgorithm.A256GCM, key1, iv, plaintext);
59
- try {
60
- await Encryption.aeadDecrypt(ContentEncryptionAlgorithm.A256GCM, key2, iv, ciphertext, tag);
61
- // If decryption somehow succeeds, the result should differ from plaintext
62
- // (astronomically unlikely with AEAD)
63
- }
64
- catch {
65
- // Expected: AEAD authentication should fail with wrong key
66
- }
67
- }), { numRuns });
68
- });
69
- });
70
- describe('XChaCha20-Poly1305 — wrong key fails decryption', () => {
71
- it('should fail to decrypt with a different key', async () => {
72
- await fc.assert(fc.asyncProperty(aes256Key(), aes256Key(), xchachaIv(), fc.uint8Array({ minLength: 1, maxLength: 256 }), async (key1, key2, iv, plaintext) => {
73
- // Skip if keys are identical
74
- if (key1.every((byte, i) => byte === key2[i])) {
75
- return;
76
- }
77
- const { ciphertext, tag } = await Encryption.aeadEncrypt(ContentEncryptionAlgorithm.XC20P, key1, iv, plaintext);
78
- try {
79
- await Encryption.aeadDecrypt(ContentEncryptionAlgorithm.XC20P, key2, iv, ciphertext, tag);
80
- }
81
- catch {
82
- // Expected: AEAD authentication should fail with wrong key
83
- }
84
- }), { numRuns });
85
- });
86
- });
87
- describe('AES-256-GCM — tampered ciphertext fails decryption', () => {
88
- it('should fail to decrypt when ciphertext is modified', async () => {
89
- await fc.assert(fc.asyncProperty(aes256Key(), aesGcmIv(), fc.uint8Array({ minLength: 1, maxLength: 256 }), fc.nat(), async (key, iv, plaintext, flipIndex) => {
90
- const { ciphertext, tag } = await Encryption.aeadEncrypt(ContentEncryptionAlgorithm.A256GCM, key, iv, plaintext);
91
- if (ciphertext.length === 0) {
92
- return; // skip empty ciphertext
93
- }
94
- // Flip a bit in the ciphertext
95
- const tampered = new Uint8Array(ciphertext);
96
- const idx = flipIndex % tampered.length;
97
- tampered[idx] ^= 0xFF;
98
- try {
99
- await Encryption.aeadDecrypt(ContentEncryptionAlgorithm.A256GCM, key, iv, tampered, tag);
100
- // If decryption somehow succeeds, data integrity has been compromised
101
- // (astronomically unlikely with AEAD)
102
- }
103
- catch {
104
- // Expected: AEAD authentication should fail on tampered ciphertext
105
- }
106
- }), { numRuns });
107
- });
108
- });
109
- describe('encrypt — deterministic output for same inputs', () => {
110
- it('should produce the same ciphertext and tag for the same key, IV, and plaintext', async () => {
111
- await fc.assert(fc.asyncProperty(aes256Key(), aesGcmIv(), fc.uint8Array({ minLength: 0, maxLength: 256 }), async (key, iv, plaintext) => {
112
- const result1 = await Encryption.aeadEncrypt(ContentEncryptionAlgorithm.A256GCM, key, iv, plaintext);
113
- const result2 = await Encryption.aeadEncrypt(ContentEncryptionAlgorithm.A256GCM, key, iv, plaintext);
114
- expect(result1.ciphertext).toEqual(result2.ciphertext);
115
- expect(result1.tag).toEqual(result2.tag);
116
- }), { numRuns });
117
- });
118
- });
119
- describe('aeadDecrypt — crash resistance with malformed inputs', () => {
120
- it('should throw (not crash) on wrong-length IVs for AES-GCM', async () => {
121
- await fc.assert(fc.asyncProperty(aes256Key(), fc.uint8Array({ minLength: 0, maxLength: 50 }).filter((iv) => iv.length !== 12), fc.uint8Array({ minLength: 1, maxLength: 64 }), fc.uint8Array({ minLength: 16, maxLength: 16 }), async (key, badIv, ciphertext, tag) => {
122
- try {
123
- await Encryption.aeadDecrypt(ContentEncryptionAlgorithm.A256GCM, key, badIv, ciphertext, tag);
124
- }
125
- catch {
126
- // Expected: wrong IV length should throw
127
- }
128
- }), { numRuns: Math.min(numRuns, 50) });
129
- });
16
+ it('should roundtrip arbitrary plaintext through A256CTR', async () => {
17
+ await fc.assert(fc.asyncProperty(aes256Key(), aesCtrIv(), fc.uint8Array({ minLength: 0, maxLength: 1024 }), async (key, iv, plaintext) => {
18
+ const ciphertext = await Encryption.encrypt(ContentEncryptionAlgorithm.A256CTR, key, iv, plaintext);
19
+ const decrypted = await Encryption.decrypt(ContentEncryptionAlgorithm.A256CTR, key, iv, ciphertext);
20
+ expect(decrypted).toEqual(plaintext);
21
+ }), { numRuns });
22
+ });
23
+ it('should wrap and unwrap arbitrary CEKs', async () => {
24
+ const recipientPrivateKey = await X25519.generateKey();
25
+ const recipientPublicKey = await X25519.getPublicKey({ key: recipientPrivateKey });
26
+ const keyId = await Encryption.getKeyId(recipientPublicKey);
27
+ await fc.assert(fc.asyncProperty(aes256Key(), async (cek) => {
28
+ const wrapped = await Encryption.wrapKey(recipientPublicKey, cek, { derivationScheme: KeyDerivationScheme.ProtocolPath, keyId, publicKey: recipientPublicKey });
29
+ const unwrapped = await Encryption.unwrapKey(recipientPrivateKey, {
30
+ algorithm: KeyAgreementAlgorithm.X25519HkdfSha256A256Kw,
31
+ derivationScheme: KeyDerivationScheme.ProtocolPath,
32
+ encryptedKey: Encoder.bytesToBase64Url(wrapped.encryptedKey),
33
+ ephemeralPublicKey: wrapped.ephemeralPublicKey,
34
+ keyId,
35
+ });
36
+ expect(ArrayUtility.byteArraysEqual(unwrapped, cek)).toBe(true);
37
+ }), { numRuns });
130
38
  });
131
39
  });
132
40
  //# sourceMappingURL=encryption.fuzz.spec.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"encryption.fuzz.spec.js","sourceRoot":"","sources":["../../../../tests/fuzz/encryption.fuzz.spec.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"encryption.fuzz.spec.js","sourceRoot":"","sources":["../../../../tests/fuzz/encryption.fuzz.spec.ts"],"names":[],"mappings":"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"}
@@ -4,7 +4,7 @@ import { DidKey, UniversalResolver } from '@enbox/dids';
4
4
  import { Message } from '../../src/core/message.js';
5
5
  import { TestDataGenerator } from '../utils/test-data-generator.js';
6
6
  import { TestStores } from '../test-stores.js';
7
- import { Dwn, DwnErrorCode, DwnInterfaceName, DwnMethodName, Encoder, Replication } from '../../src/index.js';
7
+ import { Dwn, DwnErrorCode, DwnInterfaceName, DwnMethodName, Encoder, EncryptionProtocol, PermissionsProtocol, Replication } from '../../src/index.js';
8
8
  function getFeedReader(messageStore) {
9
9
  const candidate = messageStore;
10
10
  if (typeof candidate.logRead === 'function' &&
@@ -123,11 +123,31 @@ export function testMessagesQueryHandler() {
123
123
  const record = await TestDataGenerator.generateRecordsWrite({ author: alice });
124
124
  const writeReply = await dwn.processMessage(alice.did, record.message, { dataStream: record.dataStream });
125
125
  expect(writeReply.status.code).toBe(202);
126
+ const protocol = record.message.descriptor.protocol;
127
+ const permissionRecord = await TestDataGenerator.generateRecordsWrite({
128
+ author: alice,
129
+ protocol: PermissionsProtocol.uri,
130
+ protocolPath: PermissionsProtocol.grantPath,
131
+ tags: { protocol },
132
+ });
133
+ await messageStore.put(alice.did, permissionRecord.message, await permissionRecord.recordsWrite.constructIndexes(true));
134
+ const encryptionRecord = await TestDataGenerator.generateRecordsWrite({
135
+ author: alice,
136
+ protocol: EncryptionProtocol.uri,
137
+ protocolPath: EncryptionProtocol.audienceEpochPath,
138
+ tags: {
139
+ contextId: '',
140
+ epoch: 1,
141
+ keyId: 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa',
142
+ protocol,
143
+ role: 'friend',
144
+ },
145
+ });
146
+ await messageStore.put(alice.did, encryptionRecord.message, await encryptionRecord.recordsWrite.constructIndexes(true));
126
147
  const globalQuery = await TestDataGenerator.generateMessagesQuery({ author: alice });
127
148
  const globalReply = await dwn.processMessage(alice.did, globalQuery.message);
128
149
  expect(globalReply.status.code).toBe(200);
129
150
  expect(globalReply.fingerprint).toBe(await feedReader.fingerprint(alice.did, [Replication.globalDomain]));
130
- const protocol = record.message.descriptor.protocol;
131
151
  const protocolQuery = await TestDataGenerator.generateMessagesQuery({
132
152
  author: alice,
133
153
  filters: [{ protocol }],
@@ -137,6 +157,40 @@ export function testMessagesQueryHandler() {
137
157
  expect(protocolReply.fingerprint).toBe(await feedReader.fingerprint(alice.did, [
138
158
  Replication.protocolDomain(protocol),
139
159
  Replication.permissionDomain(protocol),
160
+ Replication.encryptionDomain(protocol),
161
+ ]));
162
+ const protocolAndPermissionsQuery = await TestDataGenerator.generateMessagesQuery({
163
+ author: alice,
164
+ filters: [{ protocol }, { protocol: PermissionsProtocol.uri }],
165
+ });
166
+ const protocolAndPermissionsReply = await dwn.processMessage(alice.did, protocolAndPermissionsQuery.message);
167
+ expect(protocolAndPermissionsReply.status.code).toBe(200);
168
+ expect(protocolAndPermissionsReply.fingerprint).toBe(await feedReader.fingerprint(alice.did, [
169
+ Replication.protocolDomain(protocol),
170
+ Replication.protocolDomain(PermissionsProtocol.uri),
171
+ Replication.encryptionDomain(protocol),
172
+ ]));
173
+ const protocolAndEncryptionQuery = await TestDataGenerator.generateMessagesQuery({
174
+ author: alice,
175
+ filters: [{ protocol }, { protocol: EncryptionProtocol.uri }],
176
+ });
177
+ const protocolAndEncryptionReply = await dwn.processMessage(alice.did, protocolAndEncryptionQuery.message);
178
+ expect(protocolAndEncryptionReply.status.code).toBe(200);
179
+ expect(protocolAndEncryptionReply.fingerprint).toBe(await feedReader.fingerprint(alice.did, [
180
+ Replication.protocolDomain(protocol),
181
+ Replication.permissionDomain(protocol),
182
+ Replication.protocolDomain(EncryptionProtocol.uri),
183
+ ]));
184
+ const allProtocolScopesQuery = await TestDataGenerator.generateMessagesQuery({
185
+ author: alice,
186
+ filters: [{ protocol }, { protocol: PermissionsProtocol.uri }, { protocol: EncryptionProtocol.uri }],
187
+ });
188
+ const allProtocolScopesReply = await dwn.processMessage(alice.did, allProtocolScopesQuery.message);
189
+ expect(allProtocolScopesReply.status.code).toBe(200);
190
+ expect(allProtocolScopesReply.fingerprint).toBe(await feedReader.fingerprint(alice.did, [
191
+ Replication.protocolDomain(protocol),
192
+ Replication.protocolDomain(PermissionsProtocol.uri),
193
+ Replication.protocolDomain(EncryptionProtocol.uri),
140
194
  ]));
141
195
  const nonCanonicalQuery = await TestDataGenerator.generateMessagesQuery({
142
196
  author: alice,
@@ -165,7 +219,7 @@ export function testMessagesQueryHandler() {
165
219
  expect(reply.error?.code).toBe('ProgressGap');
166
220
  expect(reply.error?.reason).toBe('stream_mismatch');
167
221
  });
168
- it('allows delegated protocol-scoped queries and includes permission shadow records', async () => {
222
+ it('allows delegated protocol-scoped queries and includes tagged core protocol records', async () => {
169
223
  if (getFeedReader(messageStore) === undefined) {
170
224
  return;
171
225
  }
@@ -197,6 +251,19 @@ export function testMessagesQueryHandler() {
197
251
  });
198
252
  const writeReply = await dwn.processMessage(alice.did, record.message, { dataStream: record.dataStream });
199
253
  expect(writeReply.status.code).toBe(202);
254
+ const audienceEpoch = await TestDataGenerator.generateRecordsWrite({
255
+ author: alice,
256
+ protocol: EncryptionProtocol.uri,
257
+ protocolPath: EncryptionProtocol.audienceEpochPath,
258
+ tags: {
259
+ contextId: '',
260
+ epoch: 1,
261
+ keyId: 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa',
262
+ protocol: protocolDefinition.protocol,
263
+ role: 'friend',
264
+ },
265
+ });
266
+ await messageStore.put(alice.did, audienceEpoch.message, await audienceEpoch.recordsWrite.constructIndexes(true));
200
267
  const { message: query } = await TestDataGenerator.generateMessagesQuery({
201
268
  author: bob,
202
269
  filters: [{ protocol: protocolDefinition.protocol }],
@@ -207,6 +274,7 @@ export function testMessagesQueryHandler() {
207
274
  expect(reply.status.code).toBe(200);
208
275
  expect(reply.entries.map(entry => entry.messageCid).sort()).toEqual([
209
276
  await Message.getCid(protocolConfigure),
277
+ await Message.getCid(audienceEpoch.message),
210
278
  await Message.getCid(grant.message),
211
279
  await Message.getCid(record.message),
212
280
  ].sort());
@@ -1 +1 @@
1
- {"version":3,"file":"messages-query.spec.js","sourceRoot":"","sources":["../../../../tests/handlers/messages-query.spec.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"messages-query.spec.js","sourceRoot":"","sources":["../../../../tests/handlers/messages-query.spec.ts"],"names":[],"mappings":"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"}
@@ -717,7 +717,7 @@ export function testMessagesReadHandler() {
717
717
  expect(messagesReadReply.status.code).toBe(401);
718
718
  expect(messagesReadReply.status.detail).toContain(DwnErrorCode.MessagesReadVerifyScopeFailed);
719
719
  });
720
- it('authorizes Records messages with exact protocolPath Messages.Read grants', async () => {
720
+ it('authorizes Records messages with protocolPath subtree Messages.Read grants', async () => {
721
721
  const alice = await TestDataGenerator.generateDidKeyPersona();
722
722
  const bob = await TestDataGenerator.generateDidKeyPersona();
723
723
  const protocolDefinition = { ...freeForAll, protocol: 'http://messages-read-path-scope' };
@@ -789,7 +789,7 @@ export function testMessagesReadHandler() {
789
789
  messageCid: await Message.getCid(attachment.message),
790
790
  permissionGrantIds: [grantId],
791
791
  });
792
- expect((await dwn.processMessage(alice.did, attachmentRead.message)).status.code).toBe(401);
792
+ expect((await dwn.processMessage(alice.did, attachmentRead.message)).status.code).toBe(200);
793
793
  const otherProtocolRead = await TestDataGenerator.generateMessagesRead({
794
794
  author: bob,
795
795
  messageCid: await Message.getCid(otherProtocolPost.message),