@enbox/dwn-sdk-js 0.4.6 → 0.4.7

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 (371) hide show
  1. package/README.md +3 -1
  2. package/dist/browser.mjs +19 -78
  3. package/dist/browser.mjs.map +4 -4
  4. package/dist/esm/generated/precompiled-validators.js +1997 -1517
  5. package/dist/esm/generated/precompiled-validators.js.map +1 -1
  6. package/dist/esm/src/core/constants.js +50 -0
  7. package/dist/esm/src/core/constants.js.map +1 -1
  8. package/dist/esm/src/core/dwn-error.js +28 -11
  9. package/dist/esm/src/core/dwn-error.js.map +1 -1
  10. package/dist/esm/src/core/encryption-control.js +785 -0
  11. package/dist/esm/src/core/encryption-control.js.map +1 -0
  12. package/dist/esm/src/core/message.js +6 -0
  13. package/dist/esm/src/core/message.js.map +1 -1
  14. package/dist/esm/src/core/messages-grant-authorization.js +36 -5
  15. package/dist/esm/src/core/messages-grant-authorization.js.map +1 -1
  16. package/dist/esm/src/core/protocol-authorization-action.js +3 -12
  17. package/dist/esm/src/core/protocol-authorization-action.js.map +1 -1
  18. package/dist/esm/src/core/protocol-authorization-validation.js +31 -30
  19. package/dist/esm/src/core/protocol-authorization-validation.js.map +1 -1
  20. package/dist/esm/src/core/protocol-authorization.js +6 -0
  21. package/dist/esm/src/core/protocol-authorization.js.map +1 -1
  22. package/dist/esm/src/core/recording-validation-state-reader.js +3 -3
  23. package/dist/esm/src/core/recording-validation-state-reader.js.map +1 -1
  24. package/dist/esm/src/core/replication-apply.js +62 -108
  25. package/dist/esm/src/core/replication-apply.js.map +1 -1
  26. package/dist/esm/src/core/validation-state-reader.js +5 -6
  27. package/dist/esm/src/core/validation-state-reader.js.map +1 -1
  28. package/dist/esm/src/dwn.js +1 -2
  29. package/dist/esm/src/dwn.js.map +1 -1
  30. package/dist/esm/src/event-stream/event-emitter-wake-publisher.js +11 -11
  31. package/dist/esm/src/event-stream/event-emitter-wake-publisher.js.map +1 -1
  32. package/dist/esm/src/handlers/messages-query.js +6 -16
  33. package/dist/esm/src/handlers/messages-query.js.map +1 -1
  34. package/dist/esm/src/handlers/messages-read.js +4 -3
  35. package/dist/esm/src/handlers/messages-read.js.map +1 -1
  36. package/dist/esm/src/handlers/messages-subscribe.js +26 -30
  37. package/dist/esm/src/handlers/messages-subscribe.js.map +1 -1
  38. package/dist/esm/src/handlers/protocols-configure.js +6 -4
  39. package/dist/esm/src/handlers/protocols-configure.js.map +1 -1
  40. package/dist/esm/src/handlers/records-count.js +85 -10
  41. package/dist/esm/src/handlers/records-count.js.map +1 -1
  42. package/dist/esm/src/handlers/records-delete.js +11 -0
  43. package/dist/esm/src/handlers/records-delete.js.map +1 -1
  44. package/dist/esm/src/handlers/records-query.js +140 -18
  45. package/dist/esm/src/handlers/records-query.js.map +1 -1
  46. package/dist/esm/src/handlers/records-read.js +20 -4
  47. package/dist/esm/src/handlers/records-read.js.map +1 -1
  48. package/dist/esm/src/handlers/records-subscribe.js +127 -11
  49. package/dist/esm/src/handlers/records-subscribe.js.map +1 -1
  50. package/dist/esm/src/handlers/records-write.js +15 -0
  51. package/dist/esm/src/handlers/records-write.js.map +1 -1
  52. package/dist/esm/src/index.js +7 -10
  53. package/dist/esm/src/index.js.map +1 -1
  54. package/dist/esm/src/interfaces/protocols-configure.js +66 -9
  55. package/dist/esm/src/interfaces/protocols-configure.js.map +1 -1
  56. package/dist/esm/src/interfaces/records-write.js +43 -36
  57. package/dist/esm/src/interfaces/records-write.js.map +1 -1
  58. package/dist/esm/src/jose/algorithms/signing/ed25519.js +5 -5
  59. package/dist/esm/src/jose/algorithms/signing/ed25519.js.map +1 -1
  60. package/dist/esm/src/jose/jws/general/verifier.js +1 -1
  61. package/dist/esm/src/jose/jws/general/verifier.js.map +1 -1
  62. package/dist/esm/src/protocols/encryption.js +32 -274
  63. package/dist/esm/src/protocols/encryption.js.map +1 -1
  64. package/dist/esm/src/store/blockstore-level.js +14 -23
  65. package/dist/esm/src/store/blockstore-level.js.map +1 -1
  66. package/dist/esm/src/store/blockstore-mock.js +10 -27
  67. package/dist/esm/src/store/blockstore-mock.js.map +1 -1
  68. package/dist/esm/src/store/blockstore-utils.js +45 -0
  69. package/dist/esm/src/store/blockstore-utils.js.map +1 -0
  70. package/dist/esm/src/store/blockstore.js +2 -0
  71. package/dist/esm/src/store/blockstore.js.map +1 -0
  72. package/dist/esm/src/store/data-store-level.js +4 -12
  73. package/dist/esm/src/store/data-store-level.js.map +1 -1
  74. package/dist/esm/src/store/level.js +7 -0
  75. package/dist/esm/src/store/level.js.map +1 -0
  76. package/dist/esm/src/types/encryption-types.js +4 -1
  77. package/dist/esm/src/types/encryption-types.js.map +1 -1
  78. package/dist/esm/src/utils/data-stream.js +25 -0
  79. package/dist/esm/src/utils/data-stream.js.map +1 -1
  80. package/dist/esm/src/utils/encryption.js +107 -19
  81. package/dist/esm/src/utils/encryption.js.map +1 -1
  82. package/dist/esm/src/utils/grant-key-coverage.js +180 -0
  83. package/dist/esm/src/utils/grant-key-coverage.js.map +1 -0
  84. package/dist/esm/src/utils/hd-key.js +1 -2
  85. package/dist/esm/src/utils/hd-key.js.map +1 -1
  86. package/dist/esm/src/utils/jws.js +7 -1
  87. package/dist/esm/src/utils/jws.js.map +1 -1
  88. package/dist/esm/src/utils/memory-cache.js +29 -8
  89. package/dist/esm/src/utils/memory-cache.js.map +1 -1
  90. package/dist/esm/src/utils/protocols.js +27 -0
  91. package/dist/esm/src/utils/protocols.js.map +1 -1
  92. package/dist/esm/src/utils/record-limit-occupancy.js +23 -3
  93. package/dist/esm/src/utils/record-limit-occupancy.js.map +1 -1
  94. package/dist/esm/src/utils/records.js +29 -0
  95. package/dist/esm/src/utils/records.js.map +1 -1
  96. package/dist/esm/src/utils/secp256k1.js +12 -11
  97. package/dist/esm/src/utils/secp256k1.js.map +1 -1
  98. package/dist/esm/src/utils/secp256r1.js +12 -20
  99. package/dist/esm/src/utils/secp256r1.js.map +1 -1
  100. package/dist/esm/src/utils/time.js +103 -25
  101. package/dist/esm/src/utils/time.js.map +1 -1
  102. package/dist/esm/tests/core/constants.spec.js +35 -0
  103. package/dist/esm/tests/core/constants.spec.js.map +1 -0
  104. package/dist/esm/tests/core/encryption-control.spec.js +100 -0
  105. package/dist/esm/tests/core/encryption-control.spec.js.map +1 -0
  106. package/dist/esm/tests/core/message.spec.js +35 -0
  107. package/dist/esm/tests/core/message.spec.js.map +1 -1
  108. package/dist/esm/tests/core/protocol-authorization.spec.js +1 -1
  109. package/dist/esm/tests/core/protocol-authorization.spec.js.map +1 -1
  110. package/dist/esm/tests/core/replication-apply.spec.js +157 -74
  111. package/dist/esm/tests/core/replication-apply.spec.js.map +1 -1
  112. package/dist/esm/tests/core/replication-replay-property.spec.js +2 -1
  113. package/dist/esm/tests/core/replication-replay-property.spec.js.map +1 -1
  114. package/dist/esm/tests/core/validation-read-closure.spec.js +14 -28
  115. package/dist/esm/tests/core/validation-read-closure.spec.js.map +1 -1
  116. package/dist/esm/tests/core/validation-state-reader.spec.js +19 -23
  117. package/dist/esm/tests/core/validation-state-reader.spec.js.map +1 -1
  118. package/dist/esm/tests/dwn.spec.js +2 -1
  119. package/dist/esm/tests/dwn.spec.js.map +1 -1
  120. package/dist/esm/tests/event-emitter-wake-publisher.spec.js +51 -0
  121. package/dist/esm/tests/event-emitter-wake-publisher.spec.js.map +1 -0
  122. package/dist/esm/tests/features/protocol-composition.spec.js +1 -1
  123. package/dist/esm/tests/features/protocol-composition.spec.js.map +1 -1
  124. package/dist/esm/tests/features/records-record-limit.spec.js +1 -1
  125. package/dist/esm/tests/features/records-record-limit.spec.js.map +1 -1
  126. package/dist/esm/tests/fuzz/encryption.fuzz.spec.js +9 -1
  127. package/dist/esm/tests/fuzz/encryption.fuzz.spec.js.map +1 -1
  128. package/dist/esm/tests/fuzz/process-message.fuzz.spec.js +1 -1
  129. package/dist/esm/tests/fuzz/process-message.fuzz.spec.js.map +1 -1
  130. package/dist/esm/tests/fuzz/protocols-utils.fuzz.spec.js +29 -1
  131. package/dist/esm/tests/fuzz/protocols-utils.fuzz.spec.js.map +1 -1
  132. package/dist/esm/tests/fuzz/secp256k1.fuzz.spec.js +2 -2
  133. package/dist/esm/tests/fuzz/secp256k1.fuzz.spec.js.map +1 -1
  134. package/dist/esm/tests/fuzz/time.fuzz.spec.js +7 -1
  135. package/dist/esm/tests/fuzz/time.fuzz.spec.js.map +1 -1
  136. package/dist/esm/tests/handlers/messages-query.spec.js +123 -11
  137. package/dist/esm/tests/handlers/messages-query.spec.js.map +1 -1
  138. package/dist/esm/tests/handlers/messages-read.spec.js +95 -0
  139. package/dist/esm/tests/handlers/messages-read.spec.js.map +1 -1
  140. package/dist/esm/tests/handlers/messages-subscribe.spec.js +90 -0
  141. package/dist/esm/tests/handlers/messages-subscribe.spec.js.map +1 -1
  142. package/dist/esm/tests/handlers/protocols-configure.spec.js +66 -0
  143. package/dist/esm/tests/handlers/protocols-configure.spec.js.map +1 -1
  144. package/dist/esm/tests/handlers/records-count.spec.js +370 -0
  145. package/dist/esm/tests/handlers/records-count.spec.js.map +1 -1
  146. package/dist/esm/tests/handlers/records-delete.spec.js +70 -1
  147. package/dist/esm/tests/handlers/records-delete.spec.js.map +1 -1
  148. package/dist/esm/tests/handlers/records-query.spec.js +562 -1
  149. package/dist/esm/tests/handlers/records-query.spec.js.map +1 -1
  150. package/dist/esm/tests/handlers/records-read.spec.js +140 -2
  151. package/dist/esm/tests/handlers/records-read.spec.js.map +1 -1
  152. package/dist/esm/tests/handlers/records-subscribe.spec.js +241 -1
  153. package/dist/esm/tests/handlers/records-subscribe.spec.js.map +1 -1
  154. package/dist/esm/tests/handlers/records-write.spec.js +1187 -29
  155. package/dist/esm/tests/handlers/records-write.spec.js.map +1 -1
  156. package/dist/esm/tests/interfaces/protocols-configure.spec.js +290 -2
  157. package/dist/esm/tests/interfaces/protocols-configure.spec.js.map +1 -1
  158. package/dist/esm/tests/interfaces/records-write.spec.js +47 -5
  159. package/dist/esm/tests/interfaces/records-write.spec.js.map +1 -1
  160. package/dist/esm/tests/protocols/encryption.spec.js +116 -472
  161. package/dist/esm/tests/protocols/encryption.spec.js.map +1 -1
  162. package/dist/esm/tests/scenarios/end-to-end-tests.spec.js +13 -27
  163. package/dist/esm/tests/scenarios/end-to-end-tests.spec.js.map +1 -1
  164. package/dist/esm/tests/store/blockstore-level.spec.js +33 -10
  165. package/dist/esm/tests/store/blockstore-level.spec.js.map +1 -1
  166. package/dist/esm/tests/store/blockstore-mock.spec.js +31 -7
  167. package/dist/esm/tests/store/blockstore-mock.spec.js.map +1 -1
  168. package/dist/esm/tests/store/blockstore-utils.spec.js +115 -0
  169. package/dist/esm/tests/store/blockstore-utils.spec.js.map +1 -0
  170. package/dist/esm/tests/store/index-level.spec.js +3 -3
  171. package/dist/esm/tests/store/index-level.spec.js.map +1 -1
  172. package/dist/esm/tests/test-stores.js +2 -1
  173. package/dist/esm/tests/test-stores.js.map +1 -1
  174. package/dist/esm/tests/utils/cid.spec.js +15 -0
  175. package/dist/esm/tests/utils/cid.spec.js.map +1 -1
  176. package/dist/esm/tests/utils/data-stream.spec.js +30 -0
  177. package/dist/esm/tests/utils/data-stream.spec.js.map +1 -1
  178. package/dist/esm/tests/utils/encryption-control-test-utils.js +111 -0
  179. package/dist/esm/tests/utils/encryption-control-test-utils.js.map +1 -0
  180. package/dist/esm/tests/utils/encryption.spec.js +198 -5
  181. package/dist/esm/tests/utils/encryption.spec.js.map +1 -1
  182. package/dist/esm/tests/utils/grant-key-coverage.spec.js +262 -0
  183. package/dist/esm/tests/utils/grant-key-coverage.spec.js.map +1 -0
  184. package/dist/esm/tests/utils/memory-cache.spec.js +12 -0
  185. package/dist/esm/tests/utils/memory-cache.spec.js.map +1 -1
  186. package/dist/esm/tests/utils/secp256r1.spec.js +2 -2
  187. package/dist/esm/tests/utils/secp256r1.spec.js.map +1 -1
  188. package/dist/esm/tests/utils/test-data-generator.js +2 -1
  189. package/dist/esm/tests/utils/test-data-generator.js.map +1 -1
  190. package/dist/esm/tests/utils/test-validation-state-reader.js +1 -1
  191. package/dist/esm/tests/utils/test-validation-state-reader.js.map +1 -1
  192. package/dist/esm/tests/utils/time.spec.js +26 -0
  193. package/dist/esm/tests/utils/time.spec.js.map +1 -1
  194. package/dist/esm/tests/validation/json-schemas/encryption/audience.spec.js +45 -0
  195. package/dist/esm/tests/validation/json-schemas/encryption/audience.spec.js.map +1 -0
  196. package/dist/esm/tests/validation/json-schemas/encryption/delivery.spec.js +47 -0
  197. package/dist/esm/tests/validation/json-schemas/encryption/delivery.spec.js.map +1 -0
  198. package/dist/esm/tests/validation/json-schemas/protocols/protocols-configure.spec.js +152 -0
  199. package/dist/esm/tests/validation/json-schemas/protocols/protocols-configure.spec.js.map +1 -1
  200. package/dist/esm/tests/validation/json-schemas/records/records-write.spec.js +46 -1
  201. package/dist/esm/tests/validation/json-schemas/records/records-write.spec.js.map +1 -1
  202. package/dist/types/generated/precompiled-validators.d.ts +4 -4
  203. package/dist/types/generated/precompiled-validators.d.ts.map +1 -1
  204. package/dist/types/src/core/constants.d.ts +39 -0
  205. package/dist/types/src/core/constants.d.ts.map +1 -1
  206. package/dist/types/src/core/dwn-error.d.ts +28 -11
  207. package/dist/types/src/core/dwn-error.d.ts.map +1 -1
  208. package/dist/types/src/core/encryption-control.d.ts +128 -0
  209. package/dist/types/src/core/encryption-control.d.ts.map +1 -0
  210. package/dist/types/src/core/message.d.ts +4 -0
  211. package/dist/types/src/core/message.d.ts.map +1 -1
  212. package/dist/types/src/core/messages-grant-authorization.d.ts +11 -0
  213. package/dist/types/src/core/messages-grant-authorization.d.ts.map +1 -1
  214. package/dist/types/src/core/protocol-authorization-action.d.ts.map +1 -1
  215. package/dist/types/src/core/protocol-authorization-validation.d.ts.map +1 -1
  216. package/dist/types/src/core/protocol-authorization.d.ts.map +1 -1
  217. package/dist/types/src/core/recording-validation-state-reader.d.ts +2 -3
  218. package/dist/types/src/core/recording-validation-state-reader.d.ts.map +1 -1
  219. package/dist/types/src/core/replication-apply.d.ts +10 -1
  220. package/dist/types/src/core/replication-apply.d.ts.map +1 -1
  221. package/dist/types/src/core/validation-state-reader.d.ts +2 -3
  222. package/dist/types/src/core/validation-state-reader.d.ts.map +1 -1
  223. package/dist/types/src/dwn.d.ts.map +1 -1
  224. package/dist/types/src/event-stream/event-emitter-wake-publisher.d.ts +1 -1
  225. package/dist/types/src/event-stream/event-emitter-wake-publisher.d.ts.map +1 -1
  226. package/dist/types/src/handlers/messages-query.d.ts.map +1 -1
  227. package/dist/types/src/handlers/messages-read.d.ts.map +1 -1
  228. package/dist/types/src/handlers/messages-subscribe.d.ts.map +1 -1
  229. package/dist/types/src/handlers/protocols-configure.d.ts +1 -0
  230. package/dist/types/src/handlers/protocols-configure.d.ts.map +1 -1
  231. package/dist/types/src/handlers/records-count.d.ts +2 -0
  232. package/dist/types/src/handlers/records-count.d.ts.map +1 -1
  233. package/dist/types/src/handlers/records-delete.d.ts.map +1 -1
  234. package/dist/types/src/handlers/records-query.d.ts +3 -0
  235. package/dist/types/src/handlers/records-query.d.ts.map +1 -1
  236. package/dist/types/src/handlers/records-read.d.ts.map +1 -1
  237. package/dist/types/src/handlers/records-subscribe.d.ts +2 -0
  238. package/dist/types/src/handlers/records-subscribe.d.ts.map +1 -1
  239. package/dist/types/src/handlers/records-write.d.ts.map +1 -1
  240. package/dist/types/src/index.d.ts +10 -17
  241. package/dist/types/src/index.d.ts.map +1 -1
  242. package/dist/types/src/interfaces/protocols-configure.d.ts +13 -1
  243. package/dist/types/src/interfaces/protocols-configure.d.ts.map +1 -1
  244. package/dist/types/src/interfaces/records-write.d.ts +5 -1
  245. package/dist/types/src/interfaces/records-write.d.ts.map +1 -1
  246. package/dist/types/src/jose/algorithms/signing/ed25519.d.ts.map +1 -1
  247. package/dist/types/src/protocols/encryption.d.ts +2 -19
  248. package/dist/types/src/protocols/encryption.d.ts.map +1 -1
  249. package/dist/types/src/store/blockstore-level.d.ts +11 -11
  250. package/dist/types/src/store/blockstore-level.d.ts.map +1 -1
  251. package/dist/types/src/store/blockstore-mock.d.ts +12 -12
  252. package/dist/types/src/store/blockstore-mock.d.ts.map +1 -1
  253. package/dist/types/src/store/blockstore-utils.d.ts +23 -0
  254. package/dist/types/src/store/blockstore-utils.d.ts.map +1 -0
  255. package/dist/types/src/store/blockstore.d.ts +3 -0
  256. package/dist/types/src/store/blockstore.d.ts.map +1 -0
  257. package/dist/types/src/store/data-store-level.d.ts.map +1 -1
  258. package/dist/types/src/store/level.d.ts +13 -0
  259. package/dist/types/src/store/level.d.ts.map +1 -0
  260. package/dist/types/src/types/cache.d.ts +2 -2
  261. package/dist/types/src/types/cache.d.ts.map +1 -1
  262. package/dist/types/src/types/encryption-types.d.ts +31 -2
  263. package/dist/types/src/types/encryption-types.d.ts.map +1 -1
  264. package/dist/types/src/types/validation-state-reader.d.ts +3 -5
  265. package/dist/types/src/types/validation-state-reader.d.ts.map +1 -1
  266. package/dist/types/src/utils/data-stream.d.ts +5 -0
  267. package/dist/types/src/utils/data-stream.d.ts.map +1 -1
  268. package/dist/types/src/utils/encryption.d.ts +53 -24
  269. package/dist/types/src/utils/encryption.d.ts.map +1 -1
  270. package/dist/types/src/utils/grant-key-coverage.d.ts +36 -0
  271. package/dist/types/src/utils/grant-key-coverage.d.ts.map +1 -0
  272. package/dist/types/src/utils/hd-key.d.ts.map +1 -1
  273. package/dist/types/src/utils/jws.d.ts.map +1 -1
  274. package/dist/types/src/utils/memory-cache.d.ts +4 -2
  275. package/dist/types/src/utils/memory-cache.d.ts.map +1 -1
  276. package/dist/types/src/utils/protocols.d.ts +11 -0
  277. package/dist/types/src/utils/protocols.d.ts.map +1 -1
  278. package/dist/types/src/utils/record-limit-occupancy.d.ts +7 -0
  279. package/dist/types/src/utils/record-limit-occupancy.d.ts.map +1 -1
  280. package/dist/types/src/utils/records.d.ts +2 -0
  281. package/dist/types/src/utils/records.d.ts.map +1 -1
  282. package/dist/types/src/utils/secp256k1.d.ts.map +1 -1
  283. package/dist/types/src/utils/secp256r1.d.ts.map +1 -1
  284. package/dist/types/src/utils/time.d.ts +21 -13
  285. package/dist/types/src/utils/time.d.ts.map +1 -1
  286. package/dist/types/tests/core/constants.spec.d.ts +2 -0
  287. package/dist/types/tests/core/constants.spec.d.ts.map +1 -0
  288. package/dist/types/tests/core/encryption-control.spec.d.ts +2 -0
  289. package/dist/types/tests/core/encryption-control.spec.d.ts.map +1 -0
  290. package/dist/types/tests/dwn.spec.d.ts.map +1 -1
  291. package/dist/types/tests/event-emitter-wake-publisher.spec.d.ts +2 -0
  292. package/dist/types/tests/event-emitter-wake-publisher.spec.d.ts.map +1 -0
  293. package/dist/types/tests/handlers/messages-query.spec.d.ts.map +1 -1
  294. package/dist/types/tests/handlers/messages-read.spec.d.ts.map +1 -1
  295. package/dist/types/tests/handlers/messages-subscribe.spec.d.ts.map +1 -1
  296. package/dist/types/tests/handlers/protocols-configure.spec.d.ts.map +1 -1
  297. package/dist/types/tests/handlers/records-count.spec.d.ts.map +1 -1
  298. package/dist/types/tests/handlers/records-delete.spec.d.ts.map +1 -1
  299. package/dist/types/tests/handlers/records-query.spec.d.ts.map +1 -1
  300. package/dist/types/tests/handlers/records-read.spec.d.ts.map +1 -1
  301. package/dist/types/tests/handlers/records-subscribe.spec.d.ts.map +1 -1
  302. package/dist/types/tests/handlers/records-write.spec.d.ts.map +1 -1
  303. package/dist/types/tests/scenarios/end-to-end-tests.spec.d.ts.map +1 -1
  304. package/dist/types/tests/store/blockstore-utils.spec.d.ts +2 -0
  305. package/dist/types/tests/store/blockstore-utils.spec.d.ts.map +1 -0
  306. package/dist/types/tests/test-stores.d.ts.map +1 -1
  307. package/dist/types/tests/utils/encryption-control-test-utils.d.ts +46 -0
  308. package/dist/types/tests/utils/encryption-control-test-utils.d.ts.map +1 -0
  309. package/dist/types/tests/utils/grant-key-coverage.spec.d.ts +2 -0
  310. package/dist/types/tests/utils/grant-key-coverage.spec.d.ts.map +1 -0
  311. package/dist/types/tests/utils/test-data-generator.d.ts.map +1 -1
  312. package/dist/types/tests/validation/json-schemas/encryption/audience.spec.d.ts +2 -0
  313. package/dist/types/tests/validation/json-schemas/encryption/audience.spec.d.ts.map +1 -0
  314. package/dist/types/tests/validation/json-schemas/encryption/delivery.spec.d.ts +2 -0
  315. package/dist/types/tests/validation/json-schemas/encryption/delivery.spec.d.ts.map +1 -0
  316. package/package.json +47 -28
  317. package/src/core/constants.ts +61 -0
  318. package/src/core/dwn-error.ts +28 -11
  319. package/src/core/encryption-control.ts +1249 -0
  320. package/src/core/message.ts +7 -0
  321. package/src/core/messages-grant-authorization.ts +60 -9
  322. package/src/core/protocol-authorization-action.ts +3 -13
  323. package/src/core/protocol-authorization-validation.ts +66 -46
  324. package/src/core/protocol-authorization.ts +7 -0
  325. package/src/core/recording-validation-state-reader.ts +4 -5
  326. package/src/core/replication-apply.ts +77 -133
  327. package/src/core/validation-state-reader.ts +6 -8
  328. package/src/dwn.ts +1 -2
  329. package/src/event-stream/event-emitter-wake-publisher.ts +10 -14
  330. package/src/handlers/messages-query.ts +6 -22
  331. package/src/handlers/messages-read.ts +4 -3
  332. package/src/handlers/messages-subscribe.ts +34 -30
  333. package/src/handlers/protocols-configure.ts +7 -4
  334. package/src/handlers/records-count.ts +111 -10
  335. package/src/handlers/records-delete.ts +15 -0
  336. package/src/handlers/records-query.ts +176 -20
  337. package/src/handlers/records-read.ts +19 -6
  338. package/src/handlers/records-subscribe.ts +158 -8
  339. package/src/handlers/records-write.ts +19 -0
  340. package/src/index.ts +48 -21
  341. package/src/interfaces/protocols-configure.ts +102 -11
  342. package/src/interfaces/records-write.ts +49 -43
  343. package/src/jose/algorithms/signing/ed25519.ts +7 -6
  344. package/src/jose/jws/general/verifier.ts +3 -3
  345. package/src/protocols/encryption.ts +50 -420
  346. package/src/store/blockstore-level.ts +33 -37
  347. package/src/store/blockstore-mock.ts +24 -38
  348. package/src/store/blockstore-utils.ts +85 -0
  349. package/src/store/blockstore.ts +8 -0
  350. package/src/store/data-store-level.ts +5 -12
  351. package/src/store/level.ts +19 -0
  352. package/src/types/cache.ts +3 -3
  353. package/src/types/encryption-types.ts +39 -2
  354. package/src/types/validation-state-reader.ts +3 -5
  355. package/src/utils/data-stream.ts +29 -1
  356. package/src/utils/encryption.ts +190 -60
  357. package/src/utils/grant-key-coverage.ts +303 -0
  358. package/src/utils/hd-key.ts +1 -2
  359. package/src/utils/jws.ts +8 -2
  360. package/src/utils/memory-cache.ts +42 -11
  361. package/src/utils/protocols.ts +32 -0
  362. package/src/utils/record-limit-occupancy.ts +34 -5
  363. package/src/utils/records.ts +36 -2
  364. package/src/utils/secp256k1.ts +12 -12
  365. package/src/utils/secp256r1.ts +12 -22
  366. package/src/utils/time.ts +145 -27
  367. package/dist/esm/tests/validation/json-schemas/encryption/audience-key.spec.js +0 -40
  368. package/dist/esm/tests/validation/json-schemas/encryption/audience-key.spec.js.map +0 -1
  369. package/dist/types/tests/validation/json-schemas/encryption/audience-key.spec.d.ts +0 -2
  370. package/dist/types/tests/validation/json-schemas/encryption/audience-key.spec.d.ts.map +0 -1
  371. package/src/types/mitt.d.ts +0 -28
@@ -1 +1 @@
1
- {"version":3,"file":"blockstore-mock.js","sourceRoot":"","sources":["../../../../src/store/blockstore-mock.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,cAAc,CAAC;AAInC;;;;;GAKG;AACH,MAAM,OAAO,cAAc;IAEzB,KAAK,CAAC,IAAI;IACV,CAAC;IAED,KAAK,CAAC,KAAK;IACX,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,GAAQ,EAAE,IAAgB,EAAE,QAAuB;QAC3D,OAAO,GAAG,CAAC;IACb,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,IAAS,EAAE,QAAuB;QAC1C,OAAO,IAAI,UAAU,EAAE,CAAC;IAC1B,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,IAAS,EAAE,QAAuB;QAC1C,OAAO,KAAK,CAAC;IACf,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,IAAS,EAAE,QAAuB;IAC/C,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,QAAuB;QACnC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK,CAAC,CAAE,OAAO,CAAC,MAA2B,EAAE,OAAsB;QACjE,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YACjC,MAAM,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;YAEhD,MAAM,KAAK,CAAC,GAAG,CAAC;QAClB,CAAC;IACH,CAAC;IAED,KAAK,CAAC,CAAE,OAAO,CAAC,MAA0B,EAAE,OAAsB;QAChE,IAAI,KAAK,EAAE,MAAM,GAAG,IAAI,MAAM,EAAE,CAAC;YAC/B,MAAM;gBACJ,GAAG,EAAK,GAAG;gBACX,KAAK,EAAG,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC;aACrC,CAAC;QACJ,CAAC;IACH,CAAC;IAED,KAAK,CAAC,CAAE,MAAM,CAAC,OAAsB;QACnC,4GAA4G;QAC5G,MAAM,EAAE,GAA6C,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC;YACpE,IAAI,EAAU,IAAI;YAClB,WAAW,EAAG,QAAQ;SACvB,EAAE,OAAO,CAAC,CAAC;QAEZ,IAAI,KAAK,EAAE,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC;YACpC,MAAM,EAAE,GAAG,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;QAC/C,CAAC;IACH,CAAC;IAED,KAAK,CAAC,CAAE,UAAU,CAAC,MAA0B,EAAE,OAAsB;QACnE,IAAI,KAAK,EAAE,MAAM,GAAG,IAAI,MAAM,EAAE,CAAC;YAC/B,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;YAEhC,MAAM,GAAG,CAAC;QACZ,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,KAAK;IACX,CAAC;CACF"}
1
+ {"version":3,"file":"blockstore-mock.js","sourceRoot":"","sources":["../../../../src/store/blockstore-mock.ts"],"names":[],"mappings":"AAIA,OAAO,EACL,yBAAyB,EACzB,sBAAsB,EACtB,sBAAsB,GACvB,MAAM,uBAAuB,CAAC;AAE/B;;;;;GAKG;AACH,MAAM,OAAO,cAAc;IAEzB,KAAK,CAAC,IAAI;IACV,CAAC;IAED,KAAK,CAAC,KAAK;IACX,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,GAAQ,EAAE,IAAqB,EAAE,QAAiC;QAC1E,OAAO,GAAG,CAAC;IACb,CAAC;IAED,KAAK,CAAC,CAAE,GAAG,CAAC,IAAS,EAAE,QAAiC;QACtD,MAAM,IAAI,UAAU,EAAE,CAAC;IACzB,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,IAAS,EAAE,QAAiC;QACpD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,IAAS,EAAE,QAAiC;QACvD,OAAO;IACT,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,QAAiC;QAC7C,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK,CAAC,CAAE,OAAO,CAAC,MAAmC,EAAE,OAAgC;QACnF,KAAM,CAAC,CAAC,sBAAsB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;IACxD,CAAC;IAED,KAAK,CAAC,CAAE,OAAO,CAAC,MAA6B,EAAE,OAAgC;QAC7E,KAAM,CAAC,CAAC,sBAAsB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;IACxD,CAAC;IAED,KAAK,CAAC,CAAE,MAAM,CAAC,QAAiC;QAC9C,KAAM,CAAC,CAAC,EAAE,CAAC;IACb,CAAC;IAED,KAAK,CAAC,CAAE,UAAU,CAAC,MAA6B,EAAE,OAAgC;QAChF,KAAM,CAAC,CAAC,yBAAyB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;IAC3D,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,KAAK;IACX,CAAC;CACF"}
@@ -0,0 +1,45 @@
1
+ export async function collectBlockstoreBytes(input) {
2
+ if (input instanceof Uint8Array) {
3
+ return input;
4
+ }
5
+ const chunks = [];
6
+ let byteLength = 0;
7
+ for await (const chunk of input) {
8
+ chunks.push(chunk);
9
+ byteLength += chunk.byteLength;
10
+ }
11
+ if (chunks.length === 1) {
12
+ return chunks[0];
13
+ }
14
+ const bytes = new Uint8Array(byteLength);
15
+ let offset = 0;
16
+ for (const chunk of chunks) {
17
+ bytes.set(chunk, offset);
18
+ offset += chunk.byteLength;
19
+ }
20
+ return bytes;
21
+ }
22
+ export async function* yieldBlockstoreBytes(bytes) {
23
+ yield bytes;
24
+ }
25
+ export async function* putManyBlockstoreItems(blockstore, source, options) {
26
+ for await (const entry of source) {
27
+ await blockstore.put(entry.cid, entry.bytes, options);
28
+ yield entry.cid;
29
+ }
30
+ }
31
+ export async function* getManyBlockstoreItems(blockstore, source, options) {
32
+ for await (const key of source) {
33
+ yield {
34
+ cid: key,
35
+ bytes: blockstore.get(key, options),
36
+ };
37
+ }
38
+ }
39
+ export async function* deleteManyBlockstoreItems(blockstore, source, options) {
40
+ for await (const key of source) {
41
+ await blockstore.delete(key, options);
42
+ yield key;
43
+ }
44
+ }
45
+ //# sourceMappingURL=blockstore-utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"blockstore-utils.js","sourceRoot":"","sources":["../../../../src/store/blockstore-utils.ts"],"names":[],"mappings":"AAmBA,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAAC,KAAsB;IACjE,IAAI,KAAK,YAAY,UAAU,EAAE,CAAC;QAChC,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,MAAM,GAAiB,EAAE,CAAC;IAChC,IAAI,UAAU,GAAG,CAAC,CAAC;IACnB,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,KAAK,EAAE,CAAC;QAChC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACnB,UAAU,IAAI,KAAK,CAAC,UAAU,CAAC;IACjC,CAAC;IAED,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxB,OAAO,MAAM,CAAC,CAAC,CAAC,CAAC;IACnB,CAAC;IAED,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,UAAU,CAAC,CAAC;IACzC,IAAI,MAAM,GAAG,CAAC,CAAC;IACf,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QACzB,MAAM,IAAI,KAAK,CAAC,UAAU,CAAC;IAC7B,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,CAAC,KAAK,SAAS,CAAC,CAAC,oBAAoB,CAAC,KAAiB;IAC3D,MAAM,KAAK,CAAC;AACd,CAAC;AAED,MAAM,CAAC,KAAK,SAAS,CAAC,CAAC,sBAAsB,CAC3C,UAAiC,EACjC,MAAmC,EACnC,OAAgC;IAEhC,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QACjC,MAAM,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QAEtD,MAAM,KAAK,CAAC,GAAG,CAAC;IAClB,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,SAAS,CAAC,CAAC,sBAAsB,CAC3C,UAAiC,EACjC,MAA6B,EAC7B,OAAgC;IAEhC,IAAI,KAAK,EAAE,MAAM,GAAG,IAAI,MAAM,EAAE,CAAC;QAC/B,MAAM;YACJ,GAAG,EAAK,GAAG;YACX,KAAK,EAAG,UAAU,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC;SACrC,CAAC;IACJ,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,SAAS,CAAC,CAAC,yBAAyB,CAC9C,UAAoC,EACpC,MAA6B,EAC7B,OAAgC;IAEhC,IAAI,KAAK,EAAE,MAAM,GAAG,IAAI,MAAM,EAAE,CAAC;QAC/B,MAAM,UAAU,CAAC,MAAM,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;QAEtC,MAAM,GAAG,CAAC;IACZ,CAAC;AACH,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { collectBlockstoreBytes, deleteManyBlockstoreItems, getManyBlockstoreItems, putManyBlockstoreItems, yieldBlockstoreBytes, } from './blockstore-utils.js';
2
+ //# sourceMappingURL=blockstore.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"blockstore.js","sourceRoot":"","sources":["../../../../src/store/blockstore.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,sBAAsB,EACtB,yBAAyB,EACzB,sBAAsB,EACtB,sBAAsB,EACtB,oBAAoB,GACrB,MAAM,uBAAuB,CAAC"}
@@ -94,18 +94,10 @@ export class DataStoreLevel {
94
94
  }
95
95
  // Data is chunked into DAG-PB UnixFS blocks. Re-inflate the chunks.
96
96
  const dataDagRoot = await exporter(dataCid, blocksPartition);
97
- const contentIterator = dataDagRoot.content();
98
- const dataStream = new ReadableStream({
99
- async pull(controller) {
100
- const result = await contentIterator.next();
101
- if (result.done) {
102
- controller.close();
103
- }
104
- else {
105
- controller.enqueue(result.value);
106
- }
107
- }
108
- });
97
+ if (dataDagRoot.type !== 'file' && dataDagRoot.type !== 'raw' && dataDagRoot.type !== 'identity') {
98
+ throw new Error(`DataStoreLevel: Expected UnixFS file content for '${dataCid}', got '${dataDagRoot.type}'.`);
99
+ }
100
+ const dataStream = DataStream.fromAsyncIterable(dataDagRoot.content());
109
101
  return { dataSize, dataStream };
110
102
  }
111
103
  async delete(tenant, recordId, dataCid) {
@@ -1 +1 @@
1
- {"version":3,"file":"data-store-level.js","sourceRoot":"","sources":["../../../../src/store/data-store-level.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"data-store-level.js","sourceRoot":"","sources":["../../../../src/store/data-store-level.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ export { BlockstoreLevel } from './blockstore-level.js';
2
+ export { DataStoreLevel } from './data-store-level.js';
3
+ export { IndexLevel } from './index-level.js';
4
+ export { createLevelDatabase, LevelWrapper } from './level-wrapper.js';
5
+ export { MessageStoreLevel } from './message-store-level.js';
6
+ export { ResumableTaskStoreLevel } from './resumable-task-store-level.js';
7
+ //# sourceMappingURL=level.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"level.js","sourceRoot":"","sources":["../../../../src/store/level.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAExD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAEvD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C,OAAO,EAAE,mBAAmB,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AASvE,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAE7D,OAAO,EAAE,uBAAuB,EAAE,MAAM,iCAAiC,CAAC"}
@@ -1,2 +1,5 @@
1
- export {};
1
+ export var EncryptionControlDeliveryRecipientAuthority;
2
+ (function (EncryptionControlDeliveryRecipientAuthority) {
3
+ EncryptionControlDeliveryRecipientAuthority["RoleHolder"] = "roleHolder";
4
+ })(EncryptionControlDeliveryRecipientAuthority || (EncryptionControlDeliveryRecipientAuthority = {}));
2
5
  //# sourceMappingURL=encryption-types.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"encryption-types.js","sourceRoot":"","sources":["../../../../src/types/encryption-types.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"encryption-types.js","sourceRoot":"","sources":["../../../../src/types/encryption-types.ts"],"names":[],"mappings":"AAcA,MAAM,CAAN,IAAY,2CAEX;AAFD,WAAY,2CAA2C;IACrD,wEAAyB,CAAA;AAC3B,CAAC,EAFW,2CAA2C,KAA3C,2CAA2C,QAEtD"}
@@ -68,6 +68,26 @@ export class DataStream {
68
68
  }
69
69
  });
70
70
  }
71
+ /**
72
+ * Adapts an iterable or async iterable of byte chunks into a Web ReadableStream.
73
+ */
74
+ static fromAsyncIterable(iterable) {
75
+ const iterator = DataStream.toAsyncGenerator(iterable);
76
+ return new ReadableStream({
77
+ async pull(controller) {
78
+ const result = await iterator.next();
79
+ if (result.done) {
80
+ controller.close();
81
+ }
82
+ else {
83
+ controller.enqueue(result.value);
84
+ }
85
+ },
86
+ async cancel() {
87
+ await iterator.return(undefined);
88
+ }
89
+ });
90
+ }
71
91
  /**
72
92
  * Creates a readable stream from the object given.
73
93
  */
@@ -98,6 +118,11 @@ export class DataStream {
98
118
  reader.releaseLock();
99
119
  }
100
120
  }
121
+ static async *toAsyncGenerator(iterable) {
122
+ for await (const item of iterable) {
123
+ yield item;
124
+ }
125
+ }
101
126
  /**
102
127
  * Duplicates the given data stream into the number of streams specified so that multiple handlers can consume the same data stream.
103
128
  * Uses the native `ReadableStream.tee()` method for 2 copies, or a custom fan-out for N copies.
@@ -1 +1 @@
1
- {"version":3,"file":"data-stream.js","sourceRoot":"","sources":["../../../../src/utils/data-stream.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"data-stream.js","sourceRoot":"","sources":["../../../../src/utils/data-stream.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,3 @@
1
- import { concatBytes } from '@noble/ciphers/utils';
2
1
  import { AesCtr, AesKw, computeJwkThumbprint, Hkdf, X25519 } from '@enbox/crypto';
3
2
  import { Encoder } from './encoder.js';
4
3
  import { KeyDerivationScheme } from './hd-key.js';
@@ -12,10 +11,21 @@ export var KeyAgreementAlgorithm;
12
11
  KeyAgreementAlgorithm["X25519HkdfSha256A256Kw"] = "X25519-HKDF-SHA256+A256KW";
13
12
  })(KeyAgreementAlgorithm || (KeyAgreementAlgorithm = {}));
14
13
  export const ROLE_AUDIENCE_DERIVATION_SCHEME = 'roleAudience';
14
+ export const SEAL_DERIVATION_SCHEME = 'seal';
15
15
  const AES_256_KEY_LENGTH_BYTES = 32;
16
16
  const AES_CTR_COUNTER_LENGTH_BYTES = 16;
17
17
  const AES_CTR_COUNTER_LENGTH_BITS = 128;
18
18
  const KEK_INFO_PREFIX = KeyAgreementAlgorithm.X25519HkdfSha256A256Kw;
19
+ function concatBytes(...arrays) {
20
+ const byteLength = arrays.reduce((total, array) => total + array.byteLength, 0);
21
+ const result = new Uint8Array(byteLength);
22
+ let offset = 0;
23
+ for (const array of arrays) {
24
+ result.set(array, offset);
25
+ offset += array.byteLength;
26
+ }
27
+ return result;
28
+ }
19
29
  export class Encryption {
20
30
  static async encrypt(algorithm, keyBytes, initializationVector, plaintext) {
21
31
  Encryption.validateContentEncryptionParameters(algorithm, keyBytes, initializationVector);
@@ -45,28 +55,79 @@ export class Encryption {
45
55
  const plaintext = await Encryption.decrypt(algorithm, keyBytes, initializationVector, ciphertext);
46
56
  return Encryption.toStream(plaintext);
47
57
  }
48
- static async wrapKey(recipientPublicKey, cek, keyInput, ephemeralPrivateKey) {
49
- return Encryption.wrapX25519Key(recipientPublicKey, cek, keyInput, ephemeralPrivateKey);
58
+ static async wrapKey(input) {
59
+ if (Encryption.isX25519KeyAgreementAlgorithm(input.keyInput.algorithm)) {
60
+ return Encryption.wrapX25519Key(input);
61
+ }
62
+ throw new Error(Encryption.unsupportedKeyAgreementAlgorithmMessage(input.keyInput.algorithm));
63
+ }
64
+ static async wrapSeal(input) {
65
+ if (!Encryption.isX25519KeyAgreementAlgorithm(input.keyInput.algorithm)) {
66
+ throw new Error(Encryption.unsupportedKeyAgreementAlgorithmMessage(input.keyInput.algorithm));
67
+ }
68
+ Encryption.validateContentEncryptionKey(input.privateKeyBytes);
69
+ const privateKey = input.ephemeralPrivateKey ?? await X25519.generateKey();
70
+ const publicKey = await X25519.getPublicKey({ key: privateKey });
71
+ const sharedSecret = await X25519.sharedSecret({
72
+ privateKeyA: privateKey,
73
+ publicKeyB: input.keyInput.publicKey,
74
+ });
75
+ const kek = await Encryption.deriveKek(sharedSecret, input.keyInput);
76
+ const unwrappedKey = await AesKw.bytesToPrivateKey({ privateKeyBytes: input.privateKeyBytes });
77
+ const encryptedKey = await AesKw.wrapKey({
78
+ encryptionKey: Encryption.toA256KwJwk(kek),
79
+ unwrappedKey,
80
+ });
81
+ return {
82
+ algorithm: input.keyInput.algorithm,
83
+ derivationScheme: SEAL_DERIVATION_SCHEME,
84
+ encryptedKey: Encoder.bytesToBase64Url(encryptedKey),
85
+ ephemeralPublicKey: publicKey,
86
+ keyId: input.keyInput.keyId,
87
+ };
50
88
  }
51
- static async wrapX25519Key(recipientPublicKey, cek, keyInput, ephemeralPrivateKey) {
52
- Encryption.validateContentEncryptionKey(cek);
53
- const privateKey = ephemeralPrivateKey ?? await X25519.generateKey();
89
+ static async wrapX25519Key(input) {
90
+ Encryption.validateContentEncryptionKey(input.cek);
91
+ const privateKey = input.ephemeralPrivateKey ?? await X25519.generateKey();
54
92
  const publicKey = await X25519.getPublicKey({ key: privateKey });
55
93
  const sharedSecret = await X25519.sharedSecret({
56
94
  privateKeyA: privateKey,
57
- publicKeyB: recipientPublicKey,
95
+ publicKeyB: input.keyInput.publicKey,
58
96
  });
59
- const kek = await Encryption.deriveKek(sharedSecret, keyInput);
60
- const cekJwk = Encryption.toA256CtrJwk(cek);
97
+ const kek = await Encryption.deriveKek(sharedSecret, input.keyInput);
98
+ const cekJwk = Encryption.toA256CtrJwk(input.cek);
61
99
  const kekJwk = { alg: 'A256KW', k: Encoder.bytesToBase64Url(kek), kty: 'oct' };
62
100
  const encryptedKey = await AesKw.wrapKey({ encryptionKey: kekJwk, unwrappedKey: cekJwk });
63
101
  return { encryptedKey, ephemeralPublicKey: publicKey };
64
102
  }
65
103
  static async unwrapKey(recipientPrivateKey, keyEncryption) {
66
- if (keyEncryption.algorithm === KeyAgreementAlgorithm.X25519HkdfSha256A256Kw) {
104
+ if (Encryption.isX25519KeyAgreementAlgorithm(keyEncryption.algorithm)) {
67
105
  return Encryption.unwrapX25519Key(recipientPrivateKey, keyEncryption);
68
106
  }
69
- throw new Error(`Unsupported key agreement algorithm: ${keyEncryption.algorithm}`);
107
+ throw new Error(Encryption.unsupportedKeyAgreementAlgorithmMessage(keyEncryption.algorithm));
108
+ }
109
+ static async unwrapSeal(input) {
110
+ if (!Encryption.isX25519KeyAgreementAlgorithm(input.seal.algorithm)) {
111
+ throw new Error(Encryption.unsupportedKeyAgreementAlgorithmMessage(input.seal.algorithm));
112
+ }
113
+ const keyEncryption = {
114
+ ...input.seal,
115
+ audienceKeyId: input.audienceKeyId,
116
+ contextId: input.contextId,
117
+ protocol: input.protocol,
118
+ rolePath: input.rolePath,
119
+ };
120
+ const sharedSecret = await X25519.sharedSecret({
121
+ privateKeyA: input.recipientPrivateKey,
122
+ publicKeyB: input.seal.ephemeralPublicKey,
123
+ });
124
+ const kek = await Encryption.deriveKek(sharedSecret, keyEncryption);
125
+ const unwrappedKey = await AesKw.unwrapKey({
126
+ decryptionKey: Encryption.toA256KwJwk(kek),
127
+ wrappedKeyAlgorithm: 'A256KW',
128
+ wrappedKeyBytes: Encoder.base64UrlToBytes(input.seal.encryptedKey),
129
+ });
130
+ return AesKw.privateKeyToBytes({ privateKey: unwrappedKey });
70
131
  }
71
132
  static async unwrapX25519Key(recipientPrivateKey, keyEncryption) {
72
133
  const sharedSecret = await X25519.sharedSecret({
@@ -108,9 +169,12 @@ export class Encryption {
108
169
  }
109
170
  }
110
171
  static async buildKeyEncryptionEntry(cek, keyInput) {
111
- const { encryptedKey, ephemeralPublicKey } = await Encryption.wrapKey(keyInput.publicKey, cek, keyInput);
172
+ const { encryptedKey, ephemeralPublicKey } = await Encryption.wrapKey({
173
+ cek,
174
+ keyInput,
175
+ });
112
176
  const common = {
113
- algorithm: KeyAgreementAlgorithm.X25519HkdfSha256A256Kw,
177
+ algorithm: keyInput.algorithm,
114
178
  encryptedKey: Encoder.bytesToBase64Url(encryptedKey),
115
179
  ephemeralPublicKey,
116
180
  keyId: keyInput.keyId,
@@ -124,17 +188,16 @@ export class Encryption {
124
188
  return {
125
189
  ...common,
126
190
  derivationScheme: ROLE_AUDIENCE_DERIVATION_SCHEME,
127
- epoch: keyInput.epoch,
128
191
  protocol: keyInput.protocol,
129
- role: keyInput.role,
192
+ rolePath: keyInput.rolePath,
130
193
  };
131
194
  }
132
195
  static validateKeyEncryptionEntry(entry) {
133
- if (entry.algorithm === KeyAgreementAlgorithm.X25519HkdfSha256A256Kw) {
196
+ if (Encryption.isX25519KeyAgreementAlgorithm(entry.algorithm)) {
134
197
  Encryption.validateX25519KeyEncryptionEntry(entry);
135
198
  return;
136
199
  }
137
- throw new DwnError(DwnErrorCode.RecordsWriteValidateIntegrityEncryptionEphemeralPublicKeyInvalid, `Unsupported key agreement algorithm: ${entry.algorithm}`);
200
+ throw new DwnError(DwnErrorCode.RecordsWriteValidateIntegrityEncryptionEphemeralPublicKeyInvalid, Encryption.unsupportedKeyAgreementAlgorithmMessage(entry.algorithm));
138
201
  }
139
202
  static validateX25519KeyEncryptionEntry(entry) {
140
203
  if (entry.ephemeralPublicKey.kty !== 'OKP' || entry.ephemeralPublicKey.crv !== 'X25519') {
@@ -153,10 +216,26 @@ export class Encryption {
153
216
  });
154
217
  }
155
218
  static getKekInfo(keyEncryption) {
219
+ if (keyEncryption.derivationScheme === SEAL_DERIVATION_SCHEME) {
220
+ return JSON.stringify([
221
+ KEK_INFO_PREFIX,
222
+ SEAL_DERIVATION_SCHEME,
223
+ keyEncryption.protocol,
224
+ keyEncryption.rolePath,
225
+ keyEncryption.contextId,
226
+ keyEncryption.audienceKeyId,
227
+ ]);
228
+ }
156
229
  if (keyEncryption.derivationScheme === ROLE_AUDIENCE_DERIVATION_SCHEME) {
157
- return `${KEK_INFO_PREFIX}|roleAudience|${keyEncryption.protocol}|${keyEncryption.role}|${keyEncryption.epoch}|${keyEncryption.keyId}`;
230
+ return JSON.stringify([
231
+ KEK_INFO_PREFIX,
232
+ ROLE_AUDIENCE_DERIVATION_SCHEME,
233
+ keyEncryption.protocol,
234
+ keyEncryption.rolePath,
235
+ keyEncryption.keyId,
236
+ ]);
158
237
  }
159
- return `${KEK_INFO_PREFIX}|protocolPath|${keyEncryption.keyId}`;
238
+ return JSON.stringify([KEK_INFO_PREFIX, KeyDerivationScheme.ProtocolPath, keyEncryption.keyId]);
160
239
  }
161
240
  static validateContentEncryptionParameters(algorithm, keyBytes, initializationVector) {
162
241
  if (algorithm !== ContentEncryptionAlgorithm.A256CTR) {
@@ -177,9 +256,18 @@ export class Encryption {
177
256
  throw new Error('X25519 shared secret MUST NOT be all zeros.');
178
257
  }
179
258
  }
259
+ static isX25519KeyAgreementAlgorithm(algorithm) {
260
+ return algorithm === KeyAgreementAlgorithm.X25519HkdfSha256A256Kw;
261
+ }
262
+ static unsupportedKeyAgreementAlgorithmMessage(algorithm) {
263
+ return `Unsupported key agreement algorithm: ${String(algorithm)}`;
264
+ }
180
265
  static toA256CtrJwk(keyBytes) {
181
266
  return { alg: ContentEncryptionAlgorithm.A256CTR, k: Encoder.bytesToBase64Url(keyBytes), kty: 'oct' };
182
267
  }
268
+ static toA256KwJwk(keyBytes) {
269
+ return { alg: 'A256KW', k: Encoder.bytesToBase64Url(keyBytes), kty: 'oct' };
270
+ }
183
271
  static async readStream(stream) {
184
272
  const reader = stream.getReader();
185
273
  const chunks = [];
@@ -1 +1 @@
1
- {"version":3,"file":"encryption.js","sourceRoot":"","sources":["../../../../src/utils/encryption.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"encryption.js","sourceRoot":"","sources":["../../../../src/utils/encryption.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,180 @@
1
+ import { KeyDerivationScheme } from './hd-key.js';
2
+ import { ProtocolAction } from '../types/protocols-types.js';
3
+ import { DwnInterfaceName, DwnMethodName } from '../enums/dwn-interface-method.js';
4
+ import { getRuleSetAtPath, parseCrossProtocolRef } from './protocols.js';
5
+ const grantKeyRecordsMethods = new Set([
6
+ DwnMethodName.Read,
7
+ DwnMethodName.Write,
8
+ ]);
9
+ const grantKeyDeliveryScopeBuilders = {
10
+ [DwnMethodName.Read]: getReadGrantKeyDeliveryScopes,
11
+ [DwnMethodName.Write]: getWriteGrantKeyDeliveryScopes,
12
+ };
13
+ const grantKeyCoveragePredicates = {
14
+ [DwnMethodName.Read]: readGrantKeyScopeCoversDeliveredScope,
15
+ [DwnMethodName.Write]: writeGrantKeyScopeCoversDeliveredScope,
16
+ };
17
+ export function isGrantKeyRecordsScope(scope) {
18
+ const maybeProtocol = scope.protocol;
19
+ return [
20
+ scope.interface === DwnInterfaceName.Records,
21
+ grantKeyRecordsMethods.has(scope.method),
22
+ typeof maybeProtocol === 'string',
23
+ ].every(Boolean);
24
+ }
25
+ export function isGrantKeyEligibleRecordsScope(scope) {
26
+ return isGrantKeyRecordsScope(scope) &&
27
+ !('contextId' in scope && scope.contextId !== undefined);
28
+ }
29
+ export function getGrantKeyDeliveryScopes(grantScope, protocolDefinition) {
30
+ return uniqueGrantKeyScopes(grantKeyDeliveryScopeBuilders[grantScope.method](grantScope, protocolDefinition));
31
+ }
32
+ export function grantKeyScopeCoversDeliveredScope(input) {
33
+ const { grantScope, deliveredScope, protocolDefinition } = input;
34
+ if (grantScope.protocol !== deliveredScope.protocol) {
35
+ return false;
36
+ }
37
+ return grantKeyCoveragePredicates[grantScope.method]({ grantScope, deliveredScope, protocolDefinition });
38
+ }
39
+ function getReadGrantKeyDeliveryScopes(grantScope, protocolDefinition) {
40
+ if (grantScope.protocolPath === undefined) {
41
+ return [createProtocolGrantKeyScope(grantScope.protocol)];
42
+ }
43
+ const scopes = [
44
+ createProtocolPathGrantKeyScope(grantScope.protocol, grantScope.protocolPath),
45
+ ];
46
+ if (protocolDefinition === undefined) {
47
+ return scopes;
48
+ }
49
+ for (const rolePath of getGrantKeyReadRolePathsForScope(protocolDefinition, grantScope.protocolPath)) {
50
+ scopes.push(createProtocolPathGrantKeyScope(grantScope.protocol, rolePath));
51
+ }
52
+ return scopes;
53
+ }
54
+ function getWriteGrantKeyDeliveryScopes(grantScope, protocolDefinition) {
55
+ if (protocolDefinition === undefined) {
56
+ throw new Error('getGrantKeyDeliveryScopes: write grants require a protocol definition.');
57
+ }
58
+ return getGrantKeyRolePathsCoveredByScope(protocolDefinition, grantScope.protocolPath)
59
+ .map((rolePath) => createProtocolPathGrantKeyScope(grantScope.protocol, rolePath));
60
+ }
61
+ function createProtocolGrantKeyScope(protocol) {
62
+ return {
63
+ scheme: KeyDerivationScheme.ProtocolPath,
64
+ protocol,
65
+ };
66
+ }
67
+ function createProtocolPathGrantKeyScope(protocol, protocolPath) {
68
+ return {
69
+ scheme: KeyDerivationScheme.ProtocolPath,
70
+ protocol,
71
+ protocolPath,
72
+ };
73
+ }
74
+ function readGrantKeyScopeCoversDeliveredScope(input) {
75
+ const { grantScope, deliveredScope, protocolDefinition } = input;
76
+ const grantProtocolPath = grantScope.protocolPath;
77
+ if (grantProtocolPath === undefined) {
78
+ return true;
79
+ }
80
+ const deliveredProtocolPath = deliveredScope.protocolPath;
81
+ if (deliveredProtocolPath === undefined) {
82
+ return false;
83
+ }
84
+ if (isBoundaryAwareSubtree(grantProtocolPath, deliveredProtocolPath)) {
85
+ return true;
86
+ }
87
+ if (protocolDefinition === undefined) {
88
+ return false;
89
+ }
90
+ return grantKeyReadScopeReferencesRolePath(protocolDefinition, grantProtocolPath, deliveredProtocolPath);
91
+ }
92
+ function writeGrantKeyScopeCoversDeliveredScope(input) {
93
+ const { grantScope, deliveredScope, protocolDefinition } = input;
94
+ const deliveredProtocolPath = deliveredScope.protocolPath;
95
+ if (deliveredProtocolPath === undefined) {
96
+ return false;
97
+ }
98
+ if (protocolDefinition === undefined) {
99
+ return false;
100
+ }
101
+ if (!isGrantKeyLocalRolePath(protocolDefinition, deliveredProtocolPath)) {
102
+ return false;
103
+ }
104
+ const grantProtocolPath = grantScope.protocolPath;
105
+ if (grantProtocolPath === undefined) {
106
+ return true;
107
+ }
108
+ return isBoundaryAwareSubtree(grantProtocolPath, deliveredProtocolPath);
109
+ }
110
+ function getGrantKeyReadRolePathsForScope(protocolDefinition, scopeProtocolPath) {
111
+ const scopedRuleSet = getRuleSetAtPath(scopeProtocolPath, protocolDefinition.structure);
112
+ if (scopedRuleSet === undefined) {
113
+ return [];
114
+ }
115
+ return [...collectReadRolePaths(protocolDefinition, scopedRuleSet)];
116
+ }
117
+ function grantKeyReadScopeReferencesRolePath(protocolDefinition, scopeProtocolPath, rolePath) {
118
+ if (!isGrantKeyLocalRolePath(protocolDefinition, rolePath)) {
119
+ return false;
120
+ }
121
+ return getGrantKeyReadRolePathsForScope(protocolDefinition, scopeProtocolPath).includes(rolePath);
122
+ }
123
+ function collectReadRolePaths(protocolDefinition, ruleSet) {
124
+ const rolePaths = new Set();
125
+ for (const actionRule of ruleSet.$actions ?? []) {
126
+ if (!actionRule.can.includes(ProtocolAction.Read) || actionRule.role === undefined || parseCrossProtocolRef(actionRule.role) !== undefined) {
127
+ continue;
128
+ }
129
+ if (isGrantKeyLocalRolePath(protocolDefinition, actionRule.role)) {
130
+ rolePaths.add(actionRule.role);
131
+ }
132
+ }
133
+ for (const [key, value] of Object.entries(ruleSet)) {
134
+ if (key.startsWith('$')) {
135
+ continue;
136
+ }
137
+ for (const rolePath of collectReadRolePaths(protocolDefinition, value)) {
138
+ rolePaths.add(rolePath);
139
+ }
140
+ }
141
+ return rolePaths;
142
+ }
143
+ function getGrantKeyRolePathsCoveredByScope(protocolDefinition, scopeProtocolPath) {
144
+ return collectRolePaths(protocolDefinition, protocolDefinition.structure)
145
+ .filter((rolePath) => scopeProtocolPath === undefined || isBoundaryAwareSubtree(scopeProtocolPath, rolePath));
146
+ }
147
+ function collectRolePaths(protocolDefinition, ruleSet, parentPath = []) {
148
+ const rolePaths = [];
149
+ for (const [key, value] of Object.entries(ruleSet)) {
150
+ if (key.startsWith('$')) {
151
+ continue;
152
+ }
153
+ const path = [...parentPath, key];
154
+ const protocolPath = path.join('/');
155
+ const childRuleSet = value;
156
+ if (isGrantKeyLocalRolePath(protocolDefinition, protocolPath)) {
157
+ rolePaths.push(protocolPath);
158
+ }
159
+ rolePaths.push(...collectRolePaths(protocolDefinition, childRuleSet, path));
160
+ }
161
+ return rolePaths;
162
+ }
163
+ function isGrantKeyLocalRolePath(protocolDefinition, protocolPath) {
164
+ const ruleSet = getRuleSetAtPath(protocolPath, protocolDefinition.structure);
165
+ return ruleSet?.$role === true && ruleSet.$keyAgreement !== undefined;
166
+ }
167
+ function isBoundaryAwareSubtree(scopePath, candidatePath) {
168
+ return `${candidatePath}/`.startsWith(`${scopePath}/`);
169
+ }
170
+ function getGrantKeyScopeCacheKey(scope) {
171
+ return JSON.stringify([scope.protocol, scope.protocolPath]);
172
+ }
173
+ function uniqueGrantKeyScopes(scopes) {
174
+ const deliveredScopes = new Map();
175
+ for (const scope of scopes) {
176
+ deliveredScopes.set(getGrantKeyScopeCacheKey(scope), scope);
177
+ }
178
+ return [...deliveredScopes.values()];
179
+ }
180
+ //# sourceMappingURL=grant-key-coverage.js.map