ox 1.1.2 → 1.3.0

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 (296) hide show
  1. package/CHANGELOG.md +61 -0
  2. package/dist/core/AbiFunction.d.ts +1 -1
  3. package/dist/core/AbiFunction.d.ts.map +1 -1
  4. package/dist/core/AbiFunction.js +6 -2
  5. package/dist/core/AbiFunction.js.map +1 -1
  6. package/dist/core/AbiParameters.d.ts +1 -1
  7. package/dist/core/AbiParameters.d.ts.map +1 -1
  8. package/dist/core/AbiParameters.js +1 -13
  9. package/dist/core/AbiParameters.js.map +1 -1
  10. package/dist/core/AesGcm.d.ts +36 -1
  11. package/dist/core/AesGcm.d.ts.map +1 -1
  12. package/dist/core/AesGcm.js +44 -0
  13. package/dist/core/AesGcm.js.map +1 -1
  14. package/dist/core/Ed25519.d.ts +46 -1
  15. package/dist/core/Ed25519.d.ts.map +1 -1
  16. package/dist/core/Ed25519.js +43 -0
  17. package/dist/core/Ed25519.js.map +1 -1
  18. package/dist/core/Engine.d.ts +1 -1
  19. package/dist/core/Engine.d.ts.map +1 -1
  20. package/dist/core/Engine.js.map +1 -1
  21. package/dist/core/Hash.d.ts +200 -1
  22. package/dist/core/Hash.d.ts.map +1 -1
  23. package/dist/core/Hash.js +207 -0
  24. package/dist/core/Hash.js.map +1 -1
  25. package/dist/core/Hex.d.ts.map +1 -1
  26. package/dist/core/Hex.js +1 -4
  27. package/dist/core/Hex.js.map +1 -1
  28. package/dist/core/Rlp.d.ts +32 -0
  29. package/dist/core/Rlp.d.ts.map +1 -1
  30. package/dist/core/Rlp.js +146 -0
  31. package/dist/core/Rlp.js.map +1 -1
  32. package/dist/core/Secp256k1.d.ts +46 -1
  33. package/dist/core/Secp256k1.d.ts.map +1 -1
  34. package/dist/core/Secp256k1.js +48 -0
  35. package/dist/core/Secp256k1.js.map +1 -1
  36. package/dist/core/WebAuthn.d.ts +224 -0
  37. package/dist/core/WebAuthn.d.ts.map +1 -0
  38. package/dist/core/WebAuthn.js +343 -0
  39. package/dist/core/WebAuthn.js.map +1 -0
  40. package/dist/core/WebAuthnP256.d.ts +46 -50
  41. package/dist/core/WebAuthnP256.d.ts.map +1 -1
  42. package/dist/core/WebAuthnP256.js +44 -50
  43. package/dist/core/WebAuthnP256.js.map +1 -1
  44. package/dist/core/internal/abiParameters.d.ts +7 -87
  45. package/dist/core/internal/abiParameters.d.ts.map +1 -1
  46. package/dist/core/internal/abiParameters.js +339 -194
  47. package/dist/core/internal/abiParameters.js.map +1 -1
  48. package/dist/core/internal/engine.d.ts +35 -2
  49. package/dist/core/internal/engine.d.ts.map +1 -1
  50. package/dist/core/internal/engine.js +12 -1
  51. package/dist/core/internal/engine.js.map +1 -1
  52. package/dist/core/internal/hash.d.ts +10 -0
  53. package/dist/core/internal/hash.d.ts.map +1 -1
  54. package/dist/core/internal/hash.js +26 -1
  55. package/dist/core/internal/hash.js.map +1 -1
  56. package/dist/index.d.ts +23 -14
  57. package/dist/index.d.ts.map +1 -1
  58. package/dist/index.js +23 -14
  59. package/dist/index.js.map +1 -1
  60. package/dist/node/Engine.d.ts +1 -1
  61. package/dist/node/Engine.d.ts.map +1 -1
  62. package/dist/node/Engine.js.map +1 -1
  63. package/dist/node/Hash.d.ts +6 -4
  64. package/dist/node/Hash.d.ts.map +1 -1
  65. package/dist/node/Hash.js +35 -3
  66. package/dist/node/Hash.js.map +1 -1
  67. package/dist/tempo/AuthorizationTempo.d.ts +6 -6
  68. package/dist/tempo/AuthorizationTempo.js +6 -6
  69. package/dist/tempo/KeyAuthorization.d.ts +3 -8
  70. package/dist/tempo/KeyAuthorization.d.ts.map +1 -1
  71. package/dist/tempo/KeyAuthorization.js +3 -8
  72. package/dist/tempo/KeyAuthorization.js.map +1 -1
  73. package/dist/tempo/SignatureEnvelope.d.ts +8 -8
  74. package/dist/tempo/SignatureEnvelope.js +8 -8
  75. package/dist/trusted-setups/Paths.d.ts +1 -0
  76. package/dist/trusted-setups/Paths.d.ts.map +1 -1
  77. package/dist/trusted-setups/Paths.js +1 -0
  78. package/dist/trusted-setups/Paths.js.map +1 -1
  79. package/dist/trusted-setups/Setups.d.ts +35 -0
  80. package/dist/trusted-setups/Setups.d.ts.map +1 -0
  81. package/dist/trusted-setups/Setups.js +29 -0
  82. package/dist/trusted-setups/Setups.js.map +1 -0
  83. package/dist/trusted-setups/index.d.ts +20 -0
  84. package/dist/trusted-setups/index.d.ts.map +1 -1
  85. package/dist/trusted-setups/index.js +20 -0
  86. package/dist/trusted-setups/index.js.map +1 -1
  87. package/dist/trusted-setups/internal/paths.d.ts.map +1 -1
  88. package/dist/trusted-setups/internal/paths.js +1 -1
  89. package/dist/trusted-setups/internal/paths.js.map +1 -1
  90. package/dist/trusted-setups/internal/setups/mainnet.d.ts +7 -0
  91. package/dist/trusted-setups/internal/setups/mainnet.d.ts.map +1 -0
  92. package/dist/trusted-setups/internal/setups/mainnet.js +11 -0
  93. package/dist/trusted-setups/internal/setups/mainnet.js.map +1 -0
  94. package/dist/wasm/Engine.d.ts +4 -3
  95. package/dist/wasm/Engine.d.ts.map +1 -1
  96. package/dist/wasm/Engine.js +5 -5
  97. package/dist/wasm/Engine.js.map +1 -1
  98. package/dist/wasm/Hash.d.ts +1 -1
  99. package/dist/wasm/Hash.d.ts.map +1 -1
  100. package/dist/wasm/Hash.js +5 -0
  101. package/dist/wasm/Hash.js.map +1 -1
  102. package/dist/wasm/Keystore.d.ts +23 -9
  103. package/dist/wasm/Keystore.d.ts.map +1 -1
  104. package/dist/wasm/Keystore.js +30 -13
  105. package/dist/wasm/Keystore.js.map +1 -1
  106. package/dist/wasm/Kzg.d.ts +112 -0
  107. package/dist/wasm/Kzg.d.ts.map +1 -0
  108. package/dist/wasm/Kzg.js +333 -0
  109. package/dist/wasm/Kzg.js.map +1 -0
  110. package/dist/wasm/Secp256k1.d.ts +55 -0
  111. package/dist/wasm/Secp256k1.d.ts.map +1 -0
  112. package/dist/wasm/Secp256k1.js +181 -0
  113. package/dist/wasm/Secp256k1.js.map +1 -0
  114. package/dist/wasm/index.d.ts +44 -1
  115. package/dist/wasm/index.d.ts.map +1 -1
  116. package/dist/wasm/index.js +44 -1
  117. package/dist/wasm/index.js.map +1 -1
  118. package/dist/wasm/internal/blake3.d.ts +10 -1
  119. package/dist/wasm/internal/blake3.d.ts.map +1 -1
  120. package/dist/wasm/internal/blake3.js +12 -1
  121. package/dist/wasm/internal/blake3.js.map +1 -1
  122. package/dist/wasm/internal/blake3.wasm.d.ts +3 -1
  123. package/dist/wasm/internal/blake3.wasm.d.ts.map +1 -1
  124. package/dist/wasm/internal/blake3.wasm.js +3 -1
  125. package/dist/wasm/internal/blake3.wasm.js.map +1 -1
  126. package/dist/wasm/internal/hash.d.ts +9 -0
  127. package/dist/wasm/internal/hash.d.ts.map +1 -1
  128. package/dist/wasm/internal/hash.js +13 -1
  129. package/dist/wasm/internal/hash.js.map +1 -1
  130. package/dist/wasm/internal/hashState.d.ts +25 -0
  131. package/dist/wasm/internal/hashState.d.ts.map +1 -0
  132. package/dist/wasm/internal/hashState.js +105 -0
  133. package/dist/wasm/internal/hashState.js.map +1 -0
  134. package/dist/wasm/internal/hashes.d.ts +12 -1
  135. package/dist/wasm/internal/hashes.d.ts.map +1 -1
  136. package/dist/wasm/internal/hashes.js +18 -1
  137. package/dist/wasm/internal/hashes.js.map +1 -1
  138. package/dist/wasm/internal/hashes.wasm.d.ts +11 -3
  139. package/dist/wasm/internal/hashes.wasm.d.ts.map +1 -1
  140. package/dist/wasm/internal/hashes.wasm.js +11 -3
  141. package/dist/wasm/internal/hashes.wasm.js.map +1 -1
  142. package/dist/wasm/internal/instantiate.d.ts +12 -0
  143. package/dist/wasm/internal/instantiate.d.ts.map +1 -1
  144. package/dist/wasm/internal/instantiate.js +23 -7
  145. package/dist/wasm/internal/instantiate.js.map +1 -1
  146. package/dist/wasm/internal/keystore.d.ts +10 -0
  147. package/dist/wasm/internal/keystore.d.ts.map +1 -0
  148. package/dist/wasm/internal/keystore.js +10 -0
  149. package/dist/wasm/internal/keystore.js.map +1 -0
  150. package/dist/wasm/internal/kzg.d.ts +17 -0
  151. package/dist/wasm/internal/kzg.d.ts.map +1 -0
  152. package/dist/wasm/internal/kzg.js +8 -0
  153. package/dist/wasm/internal/kzg.js.map +1 -0
  154. package/dist/wasm/internal/kzg.wasm.d.ts +3 -0
  155. package/dist/wasm/internal/kzg.wasm.d.ts.map +1 -0
  156. package/dist/wasm/internal/kzg.wasm.js +10 -0
  157. package/dist/wasm/internal/kzg.wasm.js.map +1 -0
  158. package/dist/wasm/internal/scrypt.d.ts +16 -0
  159. package/dist/wasm/internal/scrypt.d.ts.map +1 -0
  160. package/dist/wasm/internal/scrypt.js +78 -0
  161. package/dist/wasm/internal/scrypt.js.map +1 -0
  162. package/dist/wasm/internal/scrypt.wasm.d.ts +7 -0
  163. package/dist/wasm/internal/scrypt.wasm.d.ts.map +1 -0
  164. package/dist/wasm/internal/scrypt.wasm.js +14 -0
  165. package/dist/wasm/internal/scrypt.wasm.js.map +1 -0
  166. package/dist/wasm/internal/secp256k1.d.ts +16 -0
  167. package/dist/wasm/internal/secp256k1.d.ts.map +1 -0
  168. package/dist/wasm/internal/secp256k1.js +20 -0
  169. package/dist/wasm/internal/secp256k1.js.map +1 -0
  170. package/dist/wasm/internal/secp256k1.wasm.d.ts +3 -0
  171. package/dist/wasm/internal/secp256k1.wasm.d.ts.map +1 -0
  172. package/dist/wasm/internal/secp256k1.wasm.js +10 -0
  173. package/dist/wasm/internal/secp256k1.wasm.js.map +1 -0
  174. package/dist/webauthn/Authentication.d.ts +2 -0
  175. package/dist/webauthn/Authentication.d.ts.map +1 -1
  176. package/dist/webauthn/Authentication.js +2 -1
  177. package/dist/webauthn/Authentication.js.map +1 -1
  178. package/dist/webauthn/Registration.d.ts.map +1 -1
  179. package/dist/webauthn/Registration.js +2 -1
  180. package/dist/webauthn/Registration.js.map +1 -1
  181. package/dist/webauthn/Types.d.ts +27 -6
  182. package/dist/webauthn/Types.d.ts.map +1 -1
  183. package/dist/webauthn/internal/utils.d.ts.map +1 -1
  184. package/dist/webauthn/internal/utils.js +35 -9
  185. package/dist/webauthn/internal/utils.js.map +1 -1
  186. package/dist/zod/TypedData.d.ts +2 -2
  187. package/package.json +27 -2
  188. package/src/benchmarks/Ox.bench.ts +6 -0
  189. package/src/benchmarks/OxNode.bench.ts +8 -0
  190. package/src/benchmarks/OxV0.bench.ts +4 -0
  191. package/src/benchmarks/OxWasm.bench.ts +22 -0
  192. package/src/core/AbiFunction.ts +5 -5
  193. package/src/core/AbiParameters.ts +8 -20
  194. package/src/core/AesGcm.ts +86 -1
  195. package/src/core/Ed25519.ts +87 -1
  196. package/src/core/Engine.ts +1 -0
  197. package/src/core/Hash.ts +321 -1
  198. package/src/core/Hex.ts +1 -4
  199. package/src/core/Rlp.ts +172 -5
  200. package/src/core/Secp256k1.ts +92 -1
  201. package/src/core/WebAuthn.ts +579 -0
  202. package/src/core/WebAuthnP256.ts +47 -50
  203. package/src/core/_test/AbiFunction.test.ts +9 -0
  204. package/src/core/_test/AbiParameters.differential.fuzz.ts +156 -0
  205. package/src/core/_test/AbiParameters.encode.test.ts +22 -0
  206. package/src/core/_test/AbiParameters.fuzz.ts +4 -0
  207. package/src/core/_test/AesGcm.test.ts +76 -0
  208. package/src/core/_test/Block.test.ts +9 -2
  209. package/src/core/_test/Ed25519.test-d.ts +13 -1
  210. package/src/core/_test/Ed25519.test.ts +120 -1
  211. package/src/core/_test/Engine.test-d.ts +9 -0
  212. package/src/core/_test/Engine.test.ts +1 -1
  213. package/src/core/_test/Hash.test-d.ts +41 -0
  214. package/src/core/_test/Hash.test.ts +278 -1
  215. package/src/core/_test/Hash.vectors.test.ts +1 -2
  216. package/src/core/_test/Hex.test.ts +2 -0
  217. package/src/core/_test/Rlp.test-d.ts +18 -0
  218. package/src/core/_test/Rlp.test.ts +109 -0
  219. package/src/core/_test/Secp256k1.test-d.ts +14 -0
  220. package/src/core/_test/Secp256k1.test.ts +91 -1
  221. package/src/core/_test/Transaction.test.ts +11 -2
  222. package/src/core/_test/WebAuthn.test-d.ts +142 -0
  223. package/src/core/_test/WebAuthn.test.ts +766 -0
  224. package/src/core/_test/index.test.ts +1 -0
  225. package/src/core/internal/abiParameters.ts +466 -326
  226. package/src/core/internal/engine.ts +47 -2
  227. package/src/core/internal/hash.ts +53 -1
  228. package/src/index.ts +24 -14
  229. package/src/node/Engine.ts +1 -0
  230. package/src/node/Hash.ts +43 -6
  231. package/src/node/_test/Engine.test-d.ts +1 -0
  232. package/src/node/_test/Engine.test.ts +2 -0
  233. package/src/node/_test/Hash.test-d.ts +11 -0
  234. package/src/node/_test/Hash.test.ts +46 -0
  235. package/src/tempo/AuthorizationTempo.ts +6 -6
  236. package/src/tempo/KeyAuthorization.ts +3 -8
  237. package/src/tempo/SignatureEnvelope.ts +8 -8
  238. package/src/trusted-setups/Paths.ts +1 -0
  239. package/src/trusted-setups/README.md +39 -0
  240. package/src/trusted-setups/Setups.ts +46 -0
  241. package/src/trusted-setups/_test/Paths.test.ts +16 -0
  242. package/src/trusted-setups/_test/Setups.test-d.ts +7 -0
  243. package/src/trusted-setups/_test/Setups.test.ts +43 -0
  244. package/src/trusted-setups/_test/index.test.ts +1 -0
  245. package/src/trusted-setups/index.ts +21 -0
  246. package/src/trusted-setups/internal/paths.ts +4 -1
  247. package/src/trusted-setups/internal/setups/mainnet.source.json +7 -0
  248. package/src/trusted-setups/internal/setups/mainnet.ts +16 -0
  249. package/src/version.ts +1 -1
  250. package/src/wasm/Engine.ts +9 -6
  251. package/src/wasm/Hash.ts +10 -0
  252. package/src/wasm/Keystore.bench.ts +26 -0
  253. package/src/wasm/Keystore.ts +32 -14
  254. package/src/wasm/Kzg.bench.ts +63 -0
  255. package/src/wasm/Kzg.ts +518 -0
  256. package/src/wasm/Secp256k1.bench.ts +79 -0
  257. package/src/wasm/Secp256k1.ts +248 -0
  258. package/src/wasm/_test/Engine.test-d.ts +2 -0
  259. package/src/wasm/_test/Engine.test.ts +5 -0
  260. package/src/wasm/_test/Hash.browser.test.ts +31 -0
  261. package/src/wasm/_test/Hash.test-d.ts +17 -0
  262. package/src/wasm/_test/Hash.test.ts +252 -3
  263. package/src/wasm/_test/Keystore.browser.test.ts +31 -0
  264. package/src/wasm/_test/Keystore.fuzz.ts +50 -0
  265. package/src/wasm/_test/Keystore.test-d.ts +10 -1
  266. package/src/wasm/_test/Keystore.test.ts +289 -4
  267. package/src/wasm/_test/Kzg.test-d.ts +19 -0
  268. package/src/wasm/_test/Kzg.test.ts +220 -0
  269. package/src/wasm/_test/Runtime.test.ts +9 -0
  270. package/src/wasm/_test/Secp256k1.test-d.ts +35 -0
  271. package/src/wasm/_test/Secp256k1.test.ts +354 -0
  272. package/src/wasm/index.ts +46 -1
  273. package/src/wasm/internal/blake3.ts +23 -2
  274. package/src/wasm/internal/blake3.wasm.ts +4 -1
  275. package/src/wasm/internal/hash.ts +27 -1
  276. package/src/wasm/internal/hashState.ts +154 -0
  277. package/src/wasm/internal/hashes.ts +56 -15
  278. package/src/wasm/internal/hashes.wasm.ts +15 -3
  279. package/src/wasm/internal/instantiate.ts +29 -9
  280. package/src/wasm/internal/keystore.ts +19 -0
  281. package/src/wasm/internal/kzg.ts +50 -0
  282. package/src/wasm/internal/kzg.wasm.ts +11 -0
  283. package/src/wasm/internal/scrypt.ts +131 -0
  284. package/src/wasm/internal/scrypt.wasm.ts +17 -0
  285. package/src/wasm/internal/secp256k1.ts +62 -0
  286. package/src/wasm/internal/secp256k1.wasm.ts +11 -0
  287. package/src/webauthn/Authentication.ts +4 -0
  288. package/src/webauthn/Registration.ts +2 -0
  289. package/src/webauthn/Types.ts +32 -2
  290. package/src/webauthn/_test/Authentication.test.ts +123 -1
  291. package/src/webauthn/_test/Registration.test.ts +26 -6
  292. package/src/webauthn/_test/WebAuthn.browser.test.ts +28 -0
  293. package/src/webauthn/internal/utils.ts +41 -8
  294. package/wasm/vendor/c-kzg-4844/LICENSE +201 -0
  295. package/wasm/vendor/c-kzg-4844/blst/LICENSE +201 -0
  296. package/src/trusted-setups/internal/setups/mainnet.txt +0 -4163
@@ -1,4 +1,5 @@
1
- import { wasmBase64 } from './blake3.wasm.js'
1
+ import { blake3StateSize, wasmBase64 } from './blake3.wasm.js'
2
+ import * as hashState from './hashState.js'
2
3
  import * as internal from './instantiate.js'
3
4
 
4
5
  const digestSize = 32
@@ -10,8 +11,16 @@ export type Exports = {
10
11
  zero(ptr: number, length: number): void
11
12
  }
12
13
 
14
+ /** Exports supplied for incremental BLAKE3 states. @internal */
15
+ export type StateExports = {
16
+ blake3_finalize(state: number, out: number): void
17
+ blake3_init(state: number): void
18
+ blake3_update(state: number, input: number, inputLength: number): void
19
+ zero(ptr: number, length: number): void
20
+ }
21
+
13
22
  const instantiate = /*#__PURE__*/ internal.memoize(() =>
14
- internal.instantiate<Exports>(wasmBase64),
23
+ internal.instantiate<Exports & StateExports>(wasmBase64),
15
24
  )
16
25
 
17
26
  /** Returns the one memoized BLAKE3 instance shared by its providers. */
@@ -43,3 +52,15 @@ export function hash(
43
52
  module.exports.zero(inputPtr, size)
44
53
  }
45
54
  }
55
+
56
+ /** Creates an incremental BLAKE3 state. @internal */
57
+ export function create(module: internal.Module<Exports & StateExports>) {
58
+ return hashState.create(module, {
59
+ digestSize,
60
+ finalize: (exports, state, out) => exports.blake3_finalize(state, out),
61
+ init: (exports, state) => exports.blake3_init(state),
62
+ stateSize: blake3StateSize,
63
+ update: (exports, state, input, inputLength) =>
64
+ exports.blake3_update(state, input, inputLength),
65
+ })
66
+ }
@@ -8,4 +8,7 @@
8
8
 
9
9
  /** Base64-encoded WASM binary. */
10
10
  export const wasmBase64 =
11
- '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QcAAOgDoESADIA9BBHIiDzoA6REgA0IANwOgESADIAQtADM6ANsRIAMgBCgANDYC3BEgAyAEKQA4NwPgESADIAMtAIAROgDgECADIAMtAIEROgDhECADIAMtAIIROgDiECADIAMtAIMROgDjECADIAMtAIQROgDkECADIAMtAIUROgDlECADIAMtAIYROgDmECADIAMtAIcROgDnECADIAMtAIgROgDoECADIAMtAIkROgDpECADIAMtAIoROgDqECADIAMtAIsROgDrECADIAMtAIwROgDsECADIAMtAI0ROgDtECADIAMtAI4ROgDuECADIAMtAI8ROgDvECADIAMtAJAROgDwECADIAMtAJEROgDxECADIAMtAJIROgDyECADIAMtAJMROgDzECADIAMtAJQROgD0ECADIAMtAJUROgD1ECADIAMtAJYROgD2ECADIAMtAJcROgD3ECADIAMtAJgROgD4ECADIAMtAJkROgD5ECADIAMtAJoROgD6ECADIAMtAJsROgD7ECADIAMtAJwROgD8ECADIAMtAJ0ROgD9ECADIAMtAJ4ROgD+ECADIAMtAJ8ROgD/ECADQeAQaiARQcAAQgAgDxABIAQgAygC/BA2ABwgBCADKALgEDYAACAEIAMpAuQQNwAEIAQgAykC7BA3AAwgBCADKQL0EDcAFCADIAMtAJgBQQFrIgQ6AJgBIBogBEH/AXEiBEkNAAsLIAogBEEFdGoiBCASOgAfIAQgBUEQdjoAHiAEIAVBCHY6AB0gBCAFOgAcIAQgEzoAGyAEIAdBEHY6ABogBCAHQQh2OgAZIAQgBzoAGCAEIBQ6ABcgBCAIQRB2OgAWIAQgCEEIdjoAFSAEIAg6ABQgBCAVOgATIAQgCUEQdjoAEiAEIAlBCHY6ABEgBCAJOgAQIAQgFjoADyAEIAtBEHY6AA4gBCALQQh2OgANIAQgCzoADCAEIBc6AAsgBCAMQRB2OgAKIAQgDEEIdjoACSAEIAw6AAggBCAYOgAHIAQgDUEQdjoABiAEIA1BCHY6AAUgBCANOgAEIAQgGToAAyAEIA5BEHY6AAIgBCAOQQh2OgABIAQgDjoAAAwBCyAAIAYgA0EIaiBMIAMtAJIBIANBgBFqEAJBA08NByADLQC/ESEFIAMtAL4RIQcgAy0AvREhCCADLQC8ESEJIAMtALsRIQsgAy0AuhEhDCADLQC5ESENIAMtALgRIQ4gAy0AtxEhEiADLQC2ESETIAMtALURIRQgAy0AtBEhFSADLQCzESEWIAMtALIRIRcgAy0AsREhGCADLQCwESEZIAMtAK8RIRogAy0ArhEhDyADLQCtESEeIAMtAKwRIR8gAy0AqxEhICADLQCqESEhIAMtAKkRISIgAy0AqBEhIyADLQCnESEkIAMtAKYRISUgAy0ApREhJiADLQCkESEnIAMtAKMRISggAy0AohEhKSADLQChESEqIAMtAKARISsgAy0AnxEhGyADLQCeESEQIAMtAJ0RISwgAy0AnBEhLSADLQCbESEuIAMtAJoRIS8gAy0AmREhMSADLQCYESEyIAMtAJcRITMgAy0AlhEhNCADLQCVESE1IAMtAJQRITYgAy0AkxEhNyADLQCSESE4IAMtAJERITkgAy0AkBEhOiADLQCPESE7IAMtAI4RITwgAy0AjREhPSADLQCMESE+IAMtAIsRIT8gAy0AihEhQCADLQCJESFBIAMtAIgRIUIgAy0AhxEhQyADLQCGESFEIAMtAIURIUUgAy0AhBEhRiADLQCDESFHIAMtAIIRIUggAy0AgREhSSADLQCAESFKIAMtAJgBIgQgAykDSHunIktLBEADQCADIAMoAgg2AoARIAMgAykCDDcChBEgAyADKQIUNwKMESADIAMpAhw3ApQRIAMgAygCJDYCnBEgAyAEQQV0IApqQUBqIgQoAAA2AqgRIAMgBC8ABDsBrBEgAyAELQAGOgCuESADLQCSASEwIAMgBC0ABzoArxEgAyAEKAAINgKwESADIAQpAAw3ArQRIAMgBCkAFDcCvBEgAyAEKQAcNwLEESADIAQpACQ3AswRIAMgBCgALDYC1BEgAyAELwAwOwHYESADIAQtADI6ANoRIANBwAA6AOgRIAMgMEEEciIwOgDpESADQgA3A6ARIAMgBC0AMzoA2xEgAyAEKAA0NgLcESADIAQpADg3A+ARIAMgAy0AgBE6APAPIAMgAy0AgRE6APEPIAMgAy0AghE6APIPIAMgAy0AgxE6APMPIAMgAy0AhBE6APQPIAMgAy0AhRE6APUPIAMgAy0AhhE6APYPIAMgAy0AhxE6APcPIAMgAy0AiBE6APgPIAMgAy0AiRE6APkPIAMgAy0AihE6APoPIAMgAy0AixE6APsPIAMgAy0AjBE6APwPIAMgAy0AjRE6AP0PIAMgAy0AjhE6AP4PIAMgAy0AjxE6AP8PIAMgAy0AkBE6AIAQIAMgAy0AkRE6AIEQIAMgAy0AkhE6AIIQIAMgAy0AkxE6AIMQIAMgAy0AlBE6AIQQIAMgAy0AlRE6AIUQIAMgAy0AlhE6AIYQIAMgAy0AlxE6AIcQIAMgAy0AmBE6AIgQIAMgAy0AmRE6AIkQIAMgAy0AmhE6AIoQIAMgAy0AmxE6AIsQIAMgAy0AnBE6AIwQIAMgAy0AnRE6AI0QIAMgAy0AnhE6AI4QIAMgAy0AnxE6AI8QIANB8A9qIBFBwABCACAwEAEgBCADKAKMEDYAHCAEIAMoAvAPNgAAIAQgAykC9A83AAQgBCADKQL8DzcADCAEIAMpAoQQNwAUIAMgAy0AmAFBAWsiBDoAmAEgSyAEQf8BcSIESQ0ACwsgCiAEQQV0aiIEIBs6AB8gBCAQOgAeIAQgLDoAHSAEIC06ABwgBCAuOgAbIAQgLzoAGiAEIDE6ABkgBCAyOgAYIAQgMzoAFyAEIDQ6ABYgBCA1OgAVIAQgNjoAFCAEIDc6ABMgBCA4OgASIAQgOToAESAEIDo6ABAgBCA7OgAPIAQgPDoADiAEID06AA0gBCA+OgAMIAQgPzoACyAEIEA6AAogBCBBOgAJIAQgQjoACCAEIEM6AAcgBCBEOgAGIAQgRToABSAEIEY6AAQgBCBHOgADIAQgSDoAAiAEIEk6AAEgBCBKOgAAIAMgAy0AmAFBAWoiBDoAmAEgBEH/AXEiBCADKQNIIE1CAYh8e6ciG0sEQANAIAMgAygCCDYCgBEgAyADKQIMNwKEESADIAMpAhQ3AowRIAMgAykCHDcClBEgAyADKAIkNgKcESADIARBBXQgCmpBQGoiBCgAADYCqBEgAyAELwAEOwGsESADIAQtAAY6AK4RIAMtAJIBIRAgAyAELQAHOgCvESADIAQoAAg2ArARIAMgBCkADDcCtBEgAyAEKQAUNwK8ESADIAQpABw3AsQRIAMgBCkAJDcCzBEgAyAEKAAsNgLUESADIAQvADA7AdgRIAMgBC0AMjoA2hEgA0HAADoA6BEgAyAQQQRyIhA6AOkRIANCADcDoBEgAyAELQAzOgDbESADIAQoADQ2AtwRIAMgBCkAODcD4BEgAyADLQCAEToA8A8gAyADLQCBEToA8Q8gAyADLQCCEToA8g8gAyADLQCDEToA8w8gAyADLQCEEToA9A8gAyADLQCFEToA9Q8gAyADLQCGEToA9g8gAyADLQCHEToA9w8gAyADLQCIEToA+A8gAyADLQCJEToA+Q8gAyADLQCKEToA+g8gAyADLQCLEToA+w8gAyADLQCMEToA/A8gAyADLQCNEToA/Q8gAyADLQCOEToA/g8gAyADLQCPEToA/w8gAyADLQCQEToAgBAgAyADLQCREToAgRAgAyADLQCSEToAghAgAyADLQCTEToAgxAgAyADLQCUEToAhBAgAyADLQCVEToAhRAgAyADLQCWEToAhhAgAyADLQCXEToAhxAgAyADLQCYEToAiBAgAyADLQCZEToAiRAgAyADLQCaEToAihAgAyADLQCbEToAixAgAyADLQCcEToAjBAgAyADLQCdEToAjRAgAyADLQCeEToAjhAgAyADLQCfEToAjxAgA0HwD2ogEUHAAEIAIBAQASAEIAMoAowQNgAcIAQgAygC8A82AAAgBCADKQL0DzcABCAEIAMpAvwPNwAMIAQgAykChBA3ABQgAyADLQCYAUEBayIEOgCYASAbIARB/wFxIgRJDQALCyAKIARBBXRqIgQgBToAHyAEIAc6AB4gBCAIOgAdIAQgCToAHCAEIAs6ABsgBCAMOgAaIAQgDToAGSAEIA46ABggBCASOgAXIAQgEzoAFiAEIBQ6ABUgBCAVOgAUIAQgFjoAEyAEIBc6ABIgBCAYOgARIAQgGToAECAEIBo6AA8gBCAPOgAOIAQgHjoADSAEIB86AAwgBCAgOgALIAQgIToACiAEICI6AAkgBCAjOgAIIAQgJDoAByAEICU6AAYgBCAmOgAFIAQgJzoABCAEICg6AAMgBCApOgACIAQgKjoAASAEICs6AAALIAMgAy0AmAFBAWoiBDoAmAEgAyADKQNIIE18Ikw3A0ggACAGaiEAIAEgBmsiAUGACEsNAAsgAUUNAQsgA0HQAGohCCADQShqIQoCQCADLQCQASIEBEBBwAAgBGsiBiABIAEgBksbIQUCQCAEQcAARg0AIAQgCGohBAJAIAVBB3EiCUUEQCAAIQYgBSEHDAELIAVB+A9xIQcgACEGA0AgBCAGLQAAOgAAIARBAWohBCAGQQFq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sBEgAyADKQNgNwO4ESADIAMpA2g3A8ARIAMgAykDcDcDyBEgAyADKQN4NwPQESADIAMpA4ABNwPYESADIAMpA4gBNwPgESADIAMoAfAPNgHqESADIAMtAJIBIABFckECcjoA6REgBEH/AXEhBAwBCyADQe4RaiADQfQPai8BADsBACADQgA3A6ARIANBwAA6AOgRIAMgAykDCDcDgBEgAyADKQMQNwOIESADIAMpAxg3A5ARIAMgAykDIDcDmBEgAyADLQCSAUEEcjoA6REgAyADKAHwDzYB6hEgAyADQQhqIARB/wFxQQJrIgRBBXRqIgBBkQFqKQAANwOoESADIABBmQFqKQAANwOwESADIABBoQFqKQAANwO4ESADIABBqQFqKQAANwPAESADIABBsQFqKQAANwPIESADIABBuQFqKQAANwPQESADIABBwQFqKQAANwPYESADIABByQFqKQAANwPgESAERQ0BCyAEQQV0IQEgA0HqEWohLCADQagRaiEvIAMtAOkRIS0gAykDoBEhTCADLQDoESEuIAMtAJ8RIQsgAy0AnhEhDCADLQCdESENIAMtAJwRIQ4gAy0AmxEhHCADLQCaESEdIAMtAJkRIRIgAy0AmBEhEyADLQCXESEUIAMtAJYRIRUgAy0AlREhFiADLQCUESEXIAMtAJMRIRggAy0AkhEhGSADLQCRESEaIAMtAJARIQ8gAy0AjxEhHiADLQCOESEfIAMtAI0RISAgAy0AjBEhISADLQCLESEiIAMtAIoRISMgAy0AiREhJCADLQCIESElIAMtAIcRISYgAy0AhhEhJyADLQCFESEoIAMtAIQRISkgAy0AgxEhKiADLQCCESErIAMtAIERIRsgAy0AgBEhEANAIANBCGogAWoiAEHxAGopAAAhTSAAQfkAaikAACFOIABBgQFqKQAAIU8gAEGJAWopAAAhUCADIAs6AI8QIAMgDDoAjhAgAyANOgCNECADIA46AIwQIAMgHDoAixAgAyAdOgCKECADIBI6AIkQIAMgEzoAiBAgAyAUOgCHECADIBU6AIYQIAMgFjoAhRAgAyAXOgCEECADIBg6AIMQIAMgGToAghAgAyAaOgCBECADIA86AIAQIAMgHjoA/w8gAyAfOgD+DyADICA6AP0PIAMgIToA/A8gAyAiOgD7DyADICM6APoPIAMg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'
11
+ 'AGFzbQEAAAABOwhgAn9/AGADf39/AGABfwBgBn9/f35/fwF/YAp/f39/fn9/f39/AGAFf39/fn8AYAV/f39/fwBgAAF/Aw0MAAABAQIBAwQFBgcABQYBAQKAgAQGCAF/AUGQiAQLB1sHBm1lbW9yeQIAC2JsYWtlM19oYXNoAAIEemVybwALC2JsYWtlM19pbml0AAQNYmxha2UzX3VwZGF0ZQAFD2JsYWtlM19maW5hbGl6ZQAACWhlYXBfYmFzZQAKCv24AQwIACAAIAEQAQvgEgIvfwV+IwBBsAFrIgIkAAJAIAAtAJABIgVFBEAgAiAALQAgOgAAIAIgAC8AITsAASACIAApACM3AAMgAiAAKQArNwALIAIgACgAMzYAEyACIAAvADc7ABcgAiAALQA5OgAZIAApA0AhMSAALQCKASEFIAAtAIkBIQQgAC0AiAEhAyACIAAvADo7ARogAiAAKAA8NgIcIAIgAC0ASDoAKCACIAApAEk3ACkgAiAAKQBRNwAxIAIgACgAWTYAOSACIAAvAF07AD0gAiAALQBfOgA/IAIgAC0AYDoAQCACIAM6AGggAiAFIARFciIFQQJyOgBpIAIgMTcDICACIAAtAGE6AEEgAiAAKABiNgFCIAIgACkAZjcBRiACIAApAG43AU4gAiAAKQB2NwFWIAIgACkAfjcBXiACIAAvAIYBOwFmIAIgAkEoaiADIAVBCnJB/wFxIAJB8ABqEAkMAQsCQAJAIAAtAIgBIgQgAC0AiQEiA0EGdHIEQCACQe4AaiACQfQAai8BADsBACACIAQ6AGggAiAAKQNANwMgIAIgACkAIDcDACACIAApACg3AwggAiAAKQAwNwMQIAIgACkAODcDGCACIAApAEg3AyggAiAAKQBQNwMwIAIgACkAWDcDOCACIAApAGA3A0AgAiAAKQBoNwNIIAIgACkAcDcDUCACIAApAHg3A1ggAiAAKQCAATcDYCACIAIoAXA2AWogAiAALQCKASADRXJBAnI6AGkMAQsgAkHuAGogAkH0AGovAQA7AQAgAkIANwMgIAJBwAA6AGggAiAAKQAANwMAIAIgACkACDcDCCACIAApABA3AxAgAiAAKQAYNwMYIAIgAigBcDYBaiACIAAtAIoBQQRyOgBpIAIgACAFQQJrIgVBBXRqIgNBkQFqKQAANwMoIAIgA0GZAWopAAA3AzAgAiADQaEBaikAADcDOCACIANBqQFqKQAANwNAIAIgA0GxAWopAAA3A0ggAiADQbkBaikAADcDUCACIANBwQFqKQAANwNYIAIgA0HJAWopAAA3A2AgBUUNAQsgBUEFdCEMIAJB6gBqIS0gAkEoaiEvIAItAGkhBCACKQMgITEgAi0AaCEuIAItAB8hDSACLQAeIQ4gAi0AHSEPIAItABwhECACLQAbIREgAi0AGiESIAItABkhEyACLQAYIRQgAi0AFyEVIAItABYhFiACLQAVIRcgAi0AFCEYIAItABMhGSACLQASIRogAi0AESEbIAItABAhHCACLQAPIR0gAi0ADiEeIAItAA0hHyACLQAMISAgAi0ACyEhIAItAAohIiACLQAJISMgAi0ACCEkIAItAAchJSACLQAGISYgAi0ABSEnIAItAAQhKCACLQADISkgAi0AAiEqIAItAAEhKyACLQAAISwDQCAAIAxqIgNB8QBqKQAAITIgA0H5AGopAAAhMyADQYEBaikAACE0IANBiQFqKQAAITUgAiANOgCPASACIA46AI4BIAIgDzoAjQEgAiAQOgCMASACIBE6AIsBIAIgEjoAigEgAiATOgCJASACIBQ6AIgBIAIgFToAhwEgAiAWOgCGASACIBc6AIUBIAIgGDoAhAEgAiAZOgCDASACIBo6AIIBIAIgGzoAgQEgAiAcOgCAASACIB06AH8gAiAeOgB+IAIgHzoAfSACICA6AHwgAiAhOgB7IAIgIjoAeiACICM6AHkgAiAkOgB4IAIgJToAdyACICY6AHYgAiAnOgB1IAIgKDoAdCACICk6AHMgAiAqOgByIAIgKzoAcSACICw6AHAgAkHwAGogLyAuIDEgBEH/AXEQCCACKAJwIQMgAigCdCEEIAIoAnghBiACKAJ8IQcgAigCgAEhCCACKAKEASEJIAIoAogBIQogAigCjAEhCyAALQCKASEwIAAtAAAhLCAALQABISsgAC0AAiEqIAAtAAMhKSAALQAEISggAC0ABSEnIAAtAAYhJiAALQAHISUgAC0ACCEkIAAtAAkhIyAALQAKISIgAC0ACyEhIAAtAAwhICAALQANIR8gAC0ADiEeIAAtAA8hHSAALQAQIRwgAC0AESEbIAAtABIhGiAALQATIRkgAC0AFCEYIAAtABUh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'
12
+
13
+ /** Constant shared with the module's C source. */
14
+ export const blake3StateSize = 1912
@@ -1,4 +1,5 @@
1
- import { hmacSha256ScratchSize } from './hashes.wasm.js'
1
+ import { hmacSha256ScratchSize, hmacSha256StateSize } from './hashes.wasm.js'
2
+ import * as hashState from './hashState.js'
2
3
  import type { Module } from './instantiate.js'
3
4
 
4
5
  /** WASM exports used by the HMAC-SHA256 loader. @internal */
@@ -14,6 +15,14 @@ export type Exports = {
14
15
  zero(ptr: number, length: number): void
15
16
  }
16
17
 
18
+ /** WASM exports used by incremental HMAC-SHA256 states. @internal */
19
+ export type StateExports = {
20
+ hmac_sha256_finalize(state: number, out: number): void
21
+ hmac_sha256_init(state: number, key: number, keyLength: number): void
22
+ hmac_sha256_update(state: number, input: number, inputLength: number): void
23
+ zero(ptr: number, length: number): void
24
+ }
25
+
17
26
  /** Calls HMAC-SHA256 and clears its complete linear-memory region. @internal */
18
27
  export function hmacSha256(
19
28
  module: Module<Exports>,
@@ -48,3 +57,20 @@ export function hmacSha256(
48
57
  module.exports.zero(messagePtr, end - messagePtr)
49
58
  }
50
59
  }
60
+
61
+ /** Creates an incremental HMAC-SHA256 state. @internal */
62
+ export function createHmacSha256(
63
+ module: Module<Exports & StateExports>,
64
+ key: Uint8Array,
65
+ ) {
66
+ return hashState.create(module, {
67
+ digestSize: 32,
68
+ finalize: (exports, state, out) => exports.hmac_sha256_finalize(state, out),
69
+ init: (exports, state, input, inputLength) =>
70
+ exports.hmac_sha256_init(state, input, inputLength),
71
+ input: key,
72
+ stateSize: hmacSha256StateSize,
73
+ update: (exports, state, input, inputLength) =>
74
+ exports.hmac_sha256_update(state, input, inputLength),
75
+ })
76
+ }
@@ -0,0 +1,154 @@
1
+ import type * as Engine from '../../core/Engine.js'
2
+ import type { Module } from './instantiate.js'
3
+ import { MemoryError } from './instantiate.js'
4
+
5
+ /** Exports required by every incremental hash state. @internal */
6
+ export type Exports = {
7
+ zero(ptr: number, length: number): void
8
+ }
9
+
10
+ /** Parameters for creating a host-owned incremental hash state. @internal */
11
+ export type Options<exports extends Exports> = {
12
+ digestSize: number
13
+ finalize: (exports: exports, state: number, out: number) => void
14
+ init: (
15
+ exports: exports,
16
+ state: number,
17
+ input: number,
18
+ inputLength: number,
19
+ ) => void
20
+ input?: Uint8Array | undefined
21
+ stateSize: number
22
+ update: (
23
+ exports: exports,
24
+ state: number,
25
+ input: number,
26
+ inputLength: number,
27
+ ) => void
28
+ }
29
+
30
+ const alignment = 8
31
+ const wasm32Size = 0x1_0000_0000
32
+
33
+ function align(value: number) {
34
+ return Math.ceil(value / alignment) * alignment
35
+ }
36
+
37
+ function reserve<exports extends Exports>(
38
+ module: Module<exports>,
39
+ end: number,
40
+ ) {
41
+ if (!Number.isSafeInteger(end) || end > wasm32Size)
42
+ throw new MemoryError({
43
+ bytes: end,
44
+ cause: new RangeError('Hash workspace exceeds wasm32 memory.'),
45
+ })
46
+ module.reserve(end - module.heapBase)
47
+ }
48
+
49
+ /**
50
+ * Creates a hash state whose authoritative bytes live in host memory.
51
+ *
52
+ * The shared WASM instance only holds a state during one synchronous call.
53
+ * Every workspace is cleared before control returns to the caller.
54
+ *
55
+ * @internal
56
+ */
57
+ export function create<exports extends Exports>(
58
+ module: Module<exports>,
59
+ options: Options<exports>,
60
+ ): Engine.HashState {
61
+ const { digestSize, finalize, init, stateSize, update } = options
62
+ const initial = options.input ?? new Uint8Array()
63
+ const inputPtr = module.heapBase
64
+ const statePtr = align(inputPtr + initial.length)
65
+ const end = statePtr + stateSize
66
+ reserve(module, end)
67
+
68
+ let state: Uint8Array
69
+ try {
70
+ module.exports.zero(module.heapBase, end - module.heapBase)
71
+ const view = module.view()
72
+ view.set(initial, inputPtr)
73
+ init(module.exports, statePtr, inputPtr, initial.length)
74
+ state = module.view().slice(statePtr, end)
75
+ } finally {
76
+ module.exports.zero(module.heapBase, end - module.heapBase)
77
+ }
78
+
79
+ return fromSnapshot(module, state, {
80
+ digestSize,
81
+ finalize,
82
+ stateSize,
83
+ update,
84
+ })
85
+ }
86
+
87
+ type SnapshotOptions<exports extends Exports> = Pick<
88
+ Options<exports>,
89
+ 'digestSize' | 'finalize' | 'stateSize' | 'update'
90
+ >
91
+
92
+ function fromSnapshot<exports extends Exports>(
93
+ module: Module<exports>,
94
+ state: Uint8Array,
95
+ options: SnapshotOptions<exports>,
96
+ ): Engine.HashState {
97
+ const { digestSize, finalize, stateSize, update } = options
98
+ let active = true
99
+
100
+ const assertActive = () => {
101
+ if (!active) throw new Error('Hash state has been destroyed.')
102
+ }
103
+
104
+ const hashState: Engine.HashState = {
105
+ clone() {
106
+ assertActive()
107
+ return fromSnapshot(module, state.slice(), options)
108
+ },
109
+ destroy() {
110
+ if (!active) return
111
+ active = false
112
+ state.fill(0)
113
+ },
114
+ digestInto(output) {
115
+ assertActive()
116
+ if (output.length < digestSize)
117
+ throw new RangeError(
118
+ `Digest output requires at least ${digestSize} bytes.`,
119
+ )
120
+
121
+ const statePtr = align(module.heapBase)
122
+ const outPtr = statePtr + stateSize
123
+ const end = outPtr + digestSize
124
+ reserve(module, end)
125
+ active = false
126
+ try {
127
+ module.view().set(state, statePtr)
128
+ finalize(module.exports, statePtr, outPtr)
129
+ output.set(module.view().subarray(outPtr, end))
130
+ } finally {
131
+ state.fill(0)
132
+ module.exports.zero(module.heapBase, end - module.heapBase)
133
+ }
134
+ },
135
+ update(input) {
136
+ assertActive()
137
+ const inputPtr = module.heapBase
138
+ const statePtr = align(inputPtr + input.length)
139
+ const end = statePtr + stateSize
140
+ reserve(module, end)
141
+ try {
142
+ const view = module.view()
143
+ view.set(input, inputPtr)
144
+ view.set(state, statePtr)
145
+ update(module.exports, statePtr, inputPtr, input.length)
146
+ state.set(module.view().subarray(statePtr, end))
147
+ } finally {
148
+ module.exports.zero(module.heapBase, end - module.heapBase)
149
+ }
150
+ },
151
+ }
152
+
153
+ return hashState
154
+ }
@@ -1,22 +1,51 @@
1
1
  import * as hash from './hash.js'
2
- import { wasmBase64 } from './hashes.wasm.js'
2
+ import {
3
+ keccak256StateSize,
4
+ ripemd160StateSize,
5
+ sha256StateSize,
6
+ wasmBase64,
7
+ } from './hashes.wasm.js'
8
+ import * as hashState from './hashState.js'
3
9
  import * as internal from './instantiate.js'
4
10
 
11
+ type Algorithm = 'keccak256' | 'ripemd160' | 'sha256'
12
+
13
+ type StateExports = {
14
+ [key in `${Algorithm}_init`]: (state: number) => void
15
+ } & {
16
+ [key in `${Algorithm}_update`]: (
17
+ state: number,
18
+ input: number,
19
+ inputLength: number,
20
+ ) => void
21
+ } & {
22
+ [key in `${Algorithm}_finalize`]: (state: number, out: number) => void
23
+ }
24
+
5
25
  /** Exports shared by the Hash and Keystore providers. @internal */
6
- export type Exports = hash.Exports & {
7
- keccak256(input: number, length: number, out: number): void
8
- pbkdf2_sha256(
9
- password: number,
10
- passwordLength: number,
11
- salt: number,
12
- saltLength: number,
13
- iterations: number,
14
- out: number,
15
- outLength: number,
16
- scratch: number,
17
- ): void
18
- ripemd160(input: number, length: number, out: number): void
19
- sha256(input: number, length: number, out: number): void
26
+ export type Exports = hash.Exports &
27
+ hash.StateExports &
28
+ StateExports & {
29
+ keccak256(input: number, length: number, out: number): void
30
+ pbkdf2_sha256(
31
+ password: number,
32
+ passwordLength: number,
33
+ salt: number,
34
+ saltLength: number,
35
+ iterations: number,
36
+ out: number,
37
+ outLength: number,
38
+ scratch: number,
39
+ ): void
40
+ ripemd160(input: number, length: number, out: number): void
41
+ sha256(input: number, length: number, out: number): void
42
+ }
43
+
44
+ const digestSize = { keccak256: 32, ripemd160: 20, sha256: 32 }
45
+ const stateSize = {
46
+ keccak256: keccak256StateSize,
47
+ ripemd160: ripemd160StateSize,
48
+ sha256: sha256StateSize,
20
49
  }
21
50
 
22
51
  const instantiate = /*#__PURE__*/ internal.memoize(() =>
@@ -27,3 +56,15 @@ const instantiate = /*#__PURE__*/ internal.memoize(() =>
27
56
  export function load() {
28
57
  return instantiate()
29
58
  }
59
+
60
+ /** Creates an incremental state for one of the shared hash primitives. @internal */
61
+ export function create(module: internal.Module<Exports>, hash: Algorithm) {
62
+ return hashState.create(module, {
63
+ digestSize: digestSize[hash],
64
+ finalize: (exports, state, out) => exports[`${hash}_finalize`](state, out),
65
+ init: (exports, state) => exports[`${hash}_init`](state),
66
+ stateSize: stateSize[hash],
67
+ update: (exports, state, input, inputLength) =>
68
+ exports[`${hash}_update`](state, input, inputLength),
69
+ })
70
+ }
@@ -8,10 +8,22 @@
8
8
 
9
9
  /** Base64-encoded WASM binary. */
10
10
  export const wasmBase64 =
11
- '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dnM6ACkgByAHLQAqIDBzOgAqIAcgBCAHLQArczoAKyAHIActACwgHHM6ACwgByAHLQAtIAhBEHZzOgAtIAcgBy0ALiAxczoALiAHIAggBy0AL3M6AC8gByAHLQAwIB1zOgAwIAcgBy0AMSALQRB2czoAMSAHIActADIgMnM6ADIgByALIActADNzOgAzIAcgBy0ANCAeczoANCAHIActADUgCUEQdnM6ADUgByAHLQA2IDNzOgA2IAcgCSAHLQA3czoANyAHIActADggH3M6ADggByAHLQA5IA1BEHZzOgA5IAcgBy0AOiA0czoAOiAHIA0gBy0AO3M6ADsgByAHLQA8ICBzOgA8IAcgBy0APSAKQRB2czoAPSAHIActAD4gNXM6AD4gByAKIActAD9zOgA/IABBAWsiAA0ACwtBICAGIA5rIgEgAUEgTxshAAJAIAYgDkYNAEEBIAAgAEEBTRsiA0EDcSEIQQAhBCABQQRPBEAgBSAOaiELIANBPHEhCQNAIAQgC2oiASAEIAdqIgNBIGotAAA6AAAgAUEBaiADQSFqLQAAOgAAIAFBAmogA0Eiai0AADoAACABQQNqIANBI2otAAA6AAAgCSAEQQRqIgRHDQALCyAIRQ0AQQAgCGshASAEICFqIQMgBSAEIA5qaiEEA0AgBCADLQAAOgAAIANBAWohAyAEQQFqIQQgAUEBaiIBDQALCyAMQQFqIQwgACAOaiIOIAZJDQALC0EAIQMDQCADIAdqIgBBADoAACAAQQFqQQA6AAAgAEECakEAOgAAIABBA2pBADoAACAAQQRqQQA6AAAgAEEFakEAOgAAIABBBmpBADoAACAAQQdqQQA6AAAgAEEIakEAOgAAIABBCWpBADoAACAAQQpqQQA6AAAgAEELakEAOgAAIABBDGpBADoAACAAQQ1qQQA6AAAgAEEOakEAOgAAIABBD2pBADoAACADQRBqIgNBoARHDQALC78IARJ/IAIgASgAACIDQRh0IANBgP4DcUEIdHIgA0EIdkGA/gNxIANBGHZycjYCACACIAEoAAQiA0EYdCADQYD+A3FBCHRyIANBCHZBgP4DcSADQRh2cnI2AgQgAiABKAAIIgNBGHQgA0GA/gNxQQh0ciADQQh2QYD+A3EgA0EYdnJyNgIIIAIgASgADCIDQRh0IANBgP4DcUEIdHIg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'
11
+ 'AGFzbQEAAAABLgdgA39/fwBgAn9/AGABfwBgBn9/f39/fwBgCH9/f39/f39/AGACf38Bf2AAAX8DHRwDAAABAQEAAAIAAQICBAUAAgABAQACAAEBAgAGBQMBABAGCAF/AUHQjgQLB8wCFQZtZW1vcnkCAAxrZWNjYWtfZjE2MDAADA5rZWNjYWsyNTZfaW5pdAAIEGtlY2NhazI1Nl91cGRhdGUACRJrZWNjYWsyNTZfZmluYWxpemUACglrZWNjYWsyNTYABwtzaGEyNTZfaW5pdAAZDXNoYTI1Nl91cGRhdGUAAg9zaGEyNTZfZmluYWxpemUAGAZzaGEyNTYAFBBobWFjX3NoYTI1Nl9pbml0AAYSaG1hY19zaGEyNTZfdXBkYXRlAAIUaG1hY19zaGEyNTZfZmluYWxpemUABQtobWFjX3NoYTI1NgAADXBia2RmMl9zaGEyNTYADQ5yaXBlbWQxNjBfaW5pdAAQEHJpcGVtZDE2MF91cGRhdGUAERJyaXBlbWQxNjBfZmluYWxpemUAEglyaXBlbWQxNjAADwR6ZXJvAAQJaGVhcF9iYXNlABsKwlMcHwAgBSAAIAEQASAFIAIgAxAWIAUgBBADIAVBkAEQBAuTBAEDfyMAQbABayIDJAAgA0IANwOoASADQgA3A6ABIANCADcDmAEgA0IANwOQASADQgA3A4gBIANCADcDgAEgA0IANwN4IANCADcDcAJAIAJBwABNBEAgAkUNASACQQNxIQUgAkEETwRAIAJB/ABxIQIDQCADQfAAaiAEaiABIARqKAAANgIAIAIgBEEEaiIERw0ACwsgBUUNASABIARqIQEgA0HwAGogBGohBANAIAQgAS0AADoAACABQQFqIQEgBEEBaiEEIAVBAWsiBQ0ACwwBCyADEBUgAyABIAIQFiADIANB8ABqEBcgA0HwABAECyAAEBVBACEBA0AgA0HwAGoiBCABaiICIAItAABBNnM6AAAgAkEBaiIFIAUtAABBNnM6AAAgAkECaiIFIAUtAABBNnM6AAAgAkEDaiICIAItAABBNnM6AAAgAUEEaiIBQcAARw0ACyAAIARBwAAQFiADEBVBACEBA0AgA0HwAGoiBCABaiICIAItAABB6gBzOgAAIAJBAWoiBSAFLQAAQeoAczoAACACQQJqIgUgBS0AAEHqAHM6AAAgAkEDaiICIAItAABB6gBzOgAAIAFBBGoiAUHAAEcNAAsgAyAEQcAAEBYgACADKQMINwJwIAAgAykDEDcCeCAAIAMpAxg3AoABIAAgAykDIDcCiAEgA0HwABAEIARBwAAQBCADQbABaiQACwoAIAAgASACEBYLtgMBAn8jAEGQAWsiAiQAIAAgAkHwAGoiAxAXIAIQFSACQsAANwMAIAIgACkCcDcDCCACIAApAng3AxAgAiAAKQKAATcDGCACIAApAogBNwMgIAIgA0EgEBYgAiAAQSxqEBcgAkHwABAEIANBIBAEIAEgAC0ALDoAACABIAAtAC06AAEgASAALQAuOgACIAEgAC0ALzoAAyABIAAtADA6AAQgASAALQAxOgAFIAEgAC0AMjoABiABIAAtADM6AAcgASAALQA0OgAIIAEgAC0ANToACSABIAAtADY6AAogASAALQA3OgALIAEgAC0AODoADCABIAAtADk6AA0gASAALQA6OgAOIAEgAC0AOzoADyABIAAtADw6ABAgASAALQA9OgARIAEgAC0APjoAEiABIAAtAD86ABMgASAALQBAOgAUIAEgAC0AQToAFSABIAAtAEI6ABYgASAALQBDOgAXIAEgAC0ARDoAGCABIAAtAEU6ABkgASAALQBGOgAaIAEgAC0ARzoAGyABIAAtAEg6ABwgASAALQBJOgAdIAEgAC0ASjoAHiABIAAtAEs6AB8gAkGQAWokAAuTAQECfwJAIAFFDQACQCABQQdxIgNFBEAgASECDAELIAFBeHEhAgNAIABBADoAACAAQQFqIQAgA0EBayIDDQALCyABQQhJDQADQCAAQQA6AAAgAEEAOgABIABBADoAAiAAQQA6AAMgAEEAOgAEIABBADoABSAAQQA6AAYgAEEAOgAHIABBCGohACACQQhrIgINAAsLCwgAIAAgARADCwoAIAAgASACEAELLQECfyMAQeACayIDJAAgA0EIaiIEEAggBCAAIAEQCSAEIAIQCiADQeACaiQAC+IBAQF/IABBADYCyAEgAEIANwPAASAAQgA3A7gBIABCADcDsAEgAEIANwOoASAAQgA3A6ABIABCADcDmAEgAEIANwOQASAAQgA3A4gBIABCADcDgAEgAEIANwN4IABCADcDcCAAQgA3A2ggAEIANwNgIABCADcDWCAAQgA3A1AgAEIANwNIIABCADcDQCAAQgA3AzggAEIANwMwIABCADcDKCAAQgA3AyAgAEIANwMYIABCADcDECAAQgA3AwggAEIANwMAA0AgACABakHMAWpCADcAACABQQhqIgFBiAFHDQALC5UJAQd/AkAgACgCyAEiAwRAQYgBIANrIgcgAiACIAdLGyIEBEAgBEEDcSEFQQAhAyAEQQRPBEAgBEF8cSEIA0AgACADIAAoAsgBampBzAFqIAEgA2oiBi0AADoAACAAIAMgACgCyAFqakHNAWogBkEBai0AADoAACAAIAMgACgCyAFqakHOAWogBkECai0AADoAACAAIAMgACgCyAFqakHPAWogBkEDai0AADoAACAIIANBBGoiA0cNAAsLIAUEQCABIANqIQYgACADakHMAWohAwNAIAMgACgCyAFqIAYtAAA6AAAgBkEBaiEGIANBAWohAyAFQQFrIgUNAAsLIAAoAsgBIQMLIAAgAyAEaiIDNgLIASADQYgBRgRAIAAgACkDACAAKQDMAYU3AwAgACAAKQMIIAApANQBhTcDCCAAIAApAxAgACkA3AGFNwMQIAAgACkDGCAAKQDkAYU3AxggACAAKQMgIAApAOwBhTcDICAAIAApAyggACkA9AGFNwMoIAAgACkDMCAAKQD8AYU3AzAgACAAKQM4IAApAIQChTcDOCAAIAApA0AgACkAjAKFNwNAIAAgACkDSCAAKQCUAoU3A0ggACAAKQNQIAApAJwChTcDUCAAIAApA1ggACkApAKFNwNYIAAgACkDYCAAKQCsAoU3A2AgACAAKQNoIAApALQChTcDaCAAIAApA3AgACkAvAKFNwNwIAAgACkDeCAAKQDEAoU3A3ggACAAKQOAASAAKQDMAoU3A4ABIAAQCyAAQQA2AsgBCyACIAdNDQELIAIgBGsiBUGIAU8EQANAIAAgACkDACABIARqIgIpAACFNwMAIAAgACkDCCACKQAIhTcDCCAAIAApAxAgAkEQaikAAIU3AxAgACAAKQMYIAJBGGopAACFNwMYIAAgACkDICACQSBqKQAAhTcDICAAIAApAyggAkEoaikAAIU3AyggACAAKQMwIAJBMGopAACFNwMwIAAgACkDOCACQThqKQAAhTcDOCAAIAApA0AgAkFAaykAAIU3A0AgACAAKQNIIAJByABqKQAAhTcD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AgAiDSEJIAAoAgQiDiEBIAAoAggiDyEFIAAoAgwiECEMIAAoAhwiESEKIAAoAhgiEiEIIAAoAhQiEyEDIAAoAhAiFCEGA0AgBSEEIAEhBSACIAtqKAIAIAtBwAlqKAIAIAogBiIHQRp3IAdBFXdzIAdBB3dzaiAHQX9zIAhxIAMgB3FyampqIgYgCSIBQR53IAFBE3dzIAFBCndzIAEgBCAFc3EgBCAFcXNqaiEJIAYgDGohBiAEIQwgCCEKIAMhCCAHIQMgC0EEaiILQYACRw0ACyAAIAogEWo2AhwgACAIIBJqNgIYIAAgAyATajYCFCAAIAYgFGo2AhAgACAEIBBqNgIMIAAgBSAPajYCCCAAIAEgDmo2AgQgACAJIA1qNgIACyUBAX9BwA4tAAAiAARAQdCOBEEAIAAbDwtBwA5BAToAAEHQjgQLC7kGAwBBgAgLpAQBAAAAAAAAAIKAAAAAAAAAioAAAAAAAIAAgACAAAAAgIuAAAAAAAAAAQAAgAAAAACBgACAAAAAgAmAAAAAAACAigAAAAAAAACIAAAAAAAAAAmAAIAAAAAACgAAgAAAAACLgACAAAAAAIsAAAAAAACAiYAAAAAAAIADgAAAAAAAgAKAAAAAAACAgAAAAAAAAIAKgAAAAAAAAAoAAIAAAACAgYAAgAAAAICAgAAAAAAAgAEAAIAAAAAACIAAgAAAAICYL4pCkUQ3cc/7wLWl27XpW8JWOfER8Vmkgj+S1V4cq5iqB9gBW4MSvoUxJMN9DFV0Xb5y/rHegKcG3Jt08ZvBwWmb5IZHvu/GncEPzKEMJG8s6S2qhHRK3KmwXNqI+XZSUT6YbcYxqMgnA7DHf1m/8wvgxkeRp9VRY8oGZykpFIUKtyc4IRsu/G0sTRMNOFNUcwpluwpqdi7JwoGFLHKSoei/oktmGqhwi0vCo1FsxxnoktEkBpnWhTUO9HCgahAWwaQZCGw3Hkx3SCe1vLA0swwcOUqq2E5Pypxb828uaO6Cj3RvY6V4FHjIhAgCx4z6/76Q62xQpPej+b7yeHHGAAECAwQFBgcICQoLDA0ODwcEDQEKBg8DDAAJBQIOCwgDCg4ECQ8IAQIHAAYNCwUMAQkLCgAIDAQNAwcPDgUGAgQABQkHDAIKDgEDCAsGDw0AAAAAmXmCWqHr2W7cvBuPTv1TqQBBsAwLsAELDg8MBQgHCQsNDg8GBwkIBwYIDQsJBw8HDA8JCwcNDAsNBgcOCQ0PDggNBgUMBwULDA4PDg8JCAkOBQYIBgUMCQ8FCwYIDQwFDA0OCwgFBgUOBwAJAgsEDQYPCAEKAwwGCwMHAA0FCg4PCAwECQECDwUBAwcOBgkLCAwCCgAEDQgGBAEDCw8ABQwCDQkHCg4MDwoEAQUIBwYCDQ4AAwkL5ouiUCTRTVzzPnBt6XZtegBB8A0LUAgJCQsNDw8FBwcICw4ODAYJDQ8HDAgJCwcHDAcGDw0LCQcPCwgGBg4MDQUODQ0HBQ8FCAsODgYOBgkMCQwFDwgIBQwJDAUOBggNBgUPDQsL'
12
12
 
13
13
  /** Constant shared with the module's C source. */
14
- export const hmacSha256ScratchSize = 544
14
+ export const hmacSha256ScratchSize = 144
15
15
 
16
16
  /** Constant shared with the module's C source. */
17
- export const pbkdf2Sha256ScratchSize = 544
17
+ export const hmacSha256StateSize = 144
18
+
19
+ /** Constant shared with the module's C source. */
20
+ export const keccak256StateSize = 344
21
+
22
+ /** Constant shared with the module's C source. */
23
+ export const pbkdf2Sha256ScratchSize = 352
24
+
25
+ /** Constant shared with the module's C source. */
26
+ export const ripemd160StateSize = 96
27
+
28
+ /** Constant shared with the module's C source. */
29
+ export const sha256StateSize = 112
@@ -48,18 +48,23 @@ function decode(base64: string): Uint8Array {
48
48
  }
49
49
 
50
50
  /**
51
- * Instantiates a base64-encoded WASM module.
51
+ * Compiles a base64-encoded WASM module without instantiating it.
52
52
  *
53
- * Always asynchronous: browsers refuse to compile modules larger than a few
54
- * kilobytes synchronously on the main thread, so there is no synchronous path to
55
- * fall back to. Callers await this once and then call the module synchronously.
53
+ * @internal
54
+ */
55
+ export async function compile(base64: string): Promise<WebAssembly.Module> {
56
+ return WebAssembly.compile(decode(base64))
57
+ }
58
+
59
+ /**
60
+ * Instantiates a compiled WASM module.
56
61
  *
57
62
  * @internal
58
63
  */
59
- export async function instantiate<exports extends Record<string, unknown>>(
60
- base64: string,
61
- ): Promise<Module<exports>> {
62
- const { instance } = await WebAssembly.instantiate(decode(base64), {})
64
+ export async function instantiateModule<
65
+ exports extends Record<string, unknown>,
66
+ >(compiled: WebAssembly.Module): Promise<Module<exports>> {
67
+ const instance = await WebAssembly.instantiate(compiled, {})
63
68
  const exports = instance.exports as {
64
69
  heap_base(): number
65
70
  memory: WebAssembly.Memory
@@ -94,6 +99,21 @@ export async function instantiate<exports extends Record<string, unknown>>(
94
99
  }
95
100
  }
96
101
 
102
+ /**
103
+ * Instantiates a base64-encoded WASM module.
104
+ *
105
+ * Always asynchronous: browsers refuse to compile modules larger than a few
106
+ * kilobytes synchronously on the main thread, so there is no synchronous path to
107
+ * fall back to. Callers await this once and then call the module synchronously.
108
+ *
109
+ * @internal
110
+ */
111
+ export async function instantiate<exports extends Record<string, unknown>>(
112
+ base64: string,
113
+ ): Promise<Module<exports>> {
114
+ return instantiateModule(await compile(base64))
115
+ }
116
+
97
117
  /**
98
118
  * Memoizes a loader so concurrent callers compile the module once.
99
119
  *
@@ -128,7 +148,7 @@ export class MemoryError extends Errors.BaseError<Error> {
128
148
  cause,
129
149
  metaMessages: [
130
150
  `Required: ${bytes} bytes`,
131
- 'The input may be too large for this runtime. Reset the engine slot with `Engine.reset` to fall back to the default implementation.',
151
+ 'The input or requested workspace may be too large for this runtime. Reset the engine slot with `Engine.reset` to fall back to the default implementation.',
132
152
  ],
133
153
  })
134
154
  }
@@ -0,0 +1,19 @@
1
+ import type * as Engine from '../../core/Engine.js'
2
+ import * as hashes from './hashes.js'
3
+ import * as pbkdf2 from './pbkdf2.js'
4
+
5
+ /** Compiles the aggregate engine's synchronous PBKDF2 implementation. */
6
+ export async function engine(): Promise<engine.ReturnType> {
7
+ const module = await hashes.load()
8
+ return {
9
+ pbkdf2Sha256: (password, salt, options) =>
10
+ pbkdf2.pbkdf2Sha256(module, password, salt, options),
11
+ }
12
+ }
13
+
14
+ export declare namespace engine {
15
+ /** The aggregate WASM engine's `Keystore` primitives. */
16
+ type ReturnType = {
17
+ pbkdf2Sha256: NonNullable<Engine.Keystore['pbkdf2Sha256']>
18
+ }
19
+ }