@ajna-inc/vaults 0.1.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 (48) hide show
  1. package/LICENSE +202 -0
  2. package/build/VaultsApi.js +263 -0
  3. package/build/VaultsEvents.js +19 -0
  4. package/build/VaultsModule.js +71 -0
  5. package/build/crypto/wasm/VaultCrypto.js +70 -0
  6. package/build/errors/BadSuiteError.js +34 -0
  7. package/build/errors/DecryptAeadError.js +34 -0
  8. package/build/errors/DecryptKemError.js +34 -0
  9. package/build/errors/PolicyError.js +34 -0
  10. package/build/errors/VaultError.js +77 -0
  11. package/build/errors/index.js +16 -0
  12. package/build/index.js +119 -0
  13. package/build/messages/CreateVaultMessage.js +126 -0
  14. package/build/messages/DeleteVaultMessage.js +114 -0
  15. package/build/messages/DenyAccessMessage.js +114 -0
  16. package/build/messages/DenyShareMessage.js +120 -0
  17. package/build/messages/GrantAccessMessage.js +126 -0
  18. package/build/messages/ProvideShareMessage.js +126 -0
  19. package/build/messages/RequestAccessMessage.js +120 -0
  20. package/build/messages/RequestShareMessage.js +120 -0
  21. package/build/messages/RetrieveVaultMessage.js +108 -0
  22. package/build/messages/StoreVaultMessage.js +114 -0
  23. package/build/messages/UpdateVaultMessage.js +120 -0
  24. package/build/messages/VaultCreatedAckMessage.js +108 -0
  25. package/build/messages/VaultDataMessage.js +121 -0
  26. package/build/messages/VaultProblemReportMessage.js +124 -0
  27. package/build/messages/VaultStoredAckMessage.js +115 -0
  28. package/build/messages/index.js +36 -0
  29. package/build/models/ThresholdSession.js +24 -0
  30. package/build/models/VaultDocument.js +28 -0
  31. package/build/models/VaultHeader.js +31 -0
  32. package/build/models/VaultPolicy.js +29 -0
  33. package/build/models/index.js +20 -0
  34. package/build/repository/ThresholdSessionRecord.js +117 -0
  35. package/build/repository/ThresholdSessionRepository.js +216 -0
  36. package/build/repository/VaultRecord.js +128 -0
  37. package/build/repository/VaultRepository.js +200 -0
  38. package/build/repository/index.js +13 -0
  39. package/build/services/VaultEncryptionService.js +613 -0
  40. package/build/services/VaultService.js +398 -0
  41. package/build/services/index.js +8 -0
  42. package/package.json +45 -0
  43. package/wasm/README.md +166 -0
  44. package/wasm/package.json +16 -0
  45. package/wasm/vault_crypto.d.ts +526 -0
  46. package/wasm/vault_crypto.js +2137 -0
  47. package/wasm/vault_crypto_bg.wasm +0 -0
  48. package/wasm/vault_crypto_bg.wasm.d.ts +66 -0
@@ -0,0 +1,2137 @@
1
+
2
+ let imports = {};
3
+ imports['__wbindgen_placeholder__'] = module.exports;
4
+
5
+ let cachedUint8ArrayMemory0 = null;
6
+
7
+ function getUint8ArrayMemory0() {
8
+ if (cachedUint8ArrayMemory0 === null || cachedUint8ArrayMemory0.byteLength === 0) {
9
+ cachedUint8ArrayMemory0 = new Uint8Array(wasm.memory.buffer);
10
+ }
11
+ return cachedUint8ArrayMemory0;
12
+ }
13
+
14
+ let cachedTextDecoder = new TextDecoder('utf-8', { ignoreBOM: true, fatal: true });
15
+
16
+ cachedTextDecoder.decode();
17
+
18
+ function decodeText(ptr, len) {
19
+ return cachedTextDecoder.decode(getUint8ArrayMemory0().subarray(ptr, ptr + len));
20
+ }
21
+
22
+ function getStringFromWasm0(ptr, len) {
23
+ ptr = ptr >>> 0;
24
+ return decodeText(ptr, len);
25
+ }
26
+
27
+ let heap = new Array(128).fill(undefined);
28
+
29
+ heap.push(undefined, null, true, false);
30
+
31
+ let heap_next = heap.length;
32
+
33
+ function addHeapObject(obj) {
34
+ if (heap_next === heap.length) heap.push(heap.length + 1);
35
+ const idx = heap_next;
36
+ heap_next = heap[idx];
37
+
38
+ heap[idx] = obj;
39
+ return idx;
40
+ }
41
+
42
+ function getObject(idx) { return heap[idx]; }
43
+
44
+ let WASM_VECTOR_LEN = 0;
45
+
46
+ const cachedTextEncoder = new TextEncoder();
47
+
48
+ if (!('encodeInto' in cachedTextEncoder)) {
49
+ cachedTextEncoder.encodeInto = function (arg, view) {
50
+ const buf = cachedTextEncoder.encode(arg);
51
+ view.set(buf);
52
+ return {
53
+ read: arg.length,
54
+ written: buf.length
55
+ };
56
+ }
57
+ }
58
+
59
+ function passStringToWasm0(arg, malloc, realloc) {
60
+
61
+ if (realloc === undefined) {
62
+ const buf = cachedTextEncoder.encode(arg);
63
+ const ptr = malloc(buf.length, 1) >>> 0;
64
+ getUint8ArrayMemory0().subarray(ptr, ptr + buf.length).set(buf);
65
+ WASM_VECTOR_LEN = buf.length;
66
+ return ptr;
67
+ }
68
+
69
+ let len = arg.length;
70
+ let ptr = malloc(len, 1) >>> 0;
71
+
72
+ const mem = getUint8ArrayMemory0();
73
+
74
+ let offset = 0;
75
+
76
+ for (; offset < len; offset++) {
77
+ const code = arg.charCodeAt(offset);
78
+ if (code > 0x7F) break;
79
+ mem[ptr + offset] = code;
80
+ }
81
+
82
+ if (offset !== len) {
83
+ if (offset !== 0) {
84
+ arg = arg.slice(offset);
85
+ }
86
+ ptr = realloc(ptr, len, len = offset + arg.length * 3, 1) >>> 0;
87
+ const view = getUint8ArrayMemory0().subarray(ptr + offset, ptr + len);
88
+ const ret = cachedTextEncoder.encodeInto(arg, view);
89
+
90
+ offset += ret.written;
91
+ ptr = realloc(ptr, len, offset, 1) >>> 0;
92
+ }
93
+
94
+ WASM_VECTOR_LEN = offset;
95
+ return ptr;
96
+ }
97
+
98
+ let cachedDataViewMemory0 = null;
99
+
100
+ function getDataViewMemory0() {
101
+ if (cachedDataViewMemory0 === null || cachedDataViewMemory0.buffer.detached === true || (cachedDataViewMemory0.buffer.detached === undefined && cachedDataViewMemory0.buffer !== wasm.memory.buffer)) {
102
+ cachedDataViewMemory0 = new DataView(wasm.memory.buffer);
103
+ }
104
+ return cachedDataViewMemory0;
105
+ }
106
+
107
+ function handleError(f, args) {
108
+ try {
109
+ return f.apply(this, args);
110
+ } catch (e) {
111
+ wasm.__wbindgen_export_2(addHeapObject(e));
112
+ }
113
+ }
114
+
115
+ function getArrayU8FromWasm0(ptr, len) {
116
+ ptr = ptr >>> 0;
117
+ return getUint8ArrayMemory0().subarray(ptr / 1, ptr / 1 + len);
118
+ }
119
+
120
+ function dropObject(idx) {
121
+ if (idx < 132) return;
122
+ heap[idx] = heap_next;
123
+ heap_next = idx;
124
+ }
125
+
126
+ function takeObject(idx) {
127
+ const ret = getObject(idx);
128
+ dropObject(idx);
129
+ return ret;
130
+ }
131
+
132
+ function isLikeNone(x) {
133
+ return x === undefined || x === null;
134
+ }
135
+
136
+ function debugString(val) {
137
+ // primitive types
138
+ const type = typeof val;
139
+ if (type == 'number' || type == 'boolean' || val == null) {
140
+ return `${val}`;
141
+ }
142
+ if (type == 'string') {
143
+ return `"${val}"`;
144
+ }
145
+ if (type == 'symbol') {
146
+ const description = val.description;
147
+ if (description == null) {
148
+ return 'Symbol';
149
+ } else {
150
+ return `Symbol(${description})`;
151
+ }
152
+ }
153
+ if (type == 'function') {
154
+ const name = val.name;
155
+ if (typeof name == 'string' && name.length > 0) {
156
+ return `Function(${name})`;
157
+ } else {
158
+ return 'Function';
159
+ }
160
+ }
161
+ // objects
162
+ if (Array.isArray(val)) {
163
+ const length = val.length;
164
+ let debug = '[';
165
+ if (length > 0) {
166
+ debug += debugString(val[0]);
167
+ }
168
+ for(let i = 1; i < length; i++) {
169
+ debug += ', ' + debugString(val[i]);
170
+ }
171
+ debug += ']';
172
+ return debug;
173
+ }
174
+ // Test for built-in
175
+ const builtInMatches = /\[object ([^\]]+)\]/.exec(toString.call(val));
176
+ let className;
177
+ if (builtInMatches && builtInMatches.length > 1) {
178
+ className = builtInMatches[1];
179
+ } else {
180
+ // Failed to match the standard '[object ClassName]'
181
+ return toString.call(val);
182
+ }
183
+ if (className == 'Object') {
184
+ // we're a user defined class or Object
185
+ // JSON.stringify avoids problems with cycles, and is generally much
186
+ // easier than looping through ownProperties of `val`.
187
+ try {
188
+ return 'Object(' + JSON.stringify(val) + ')';
189
+ } catch (_) {
190
+ return 'Object';
191
+ }
192
+ }
193
+ // errors
194
+ if (val instanceof Error) {
195
+ return `${val.name}: ${val.message}\n${val.stack}`;
196
+ }
197
+ // TODO we could test for more things here, like `Set`s and `Map`s.
198
+ return className;
199
+ }
200
+
201
+ function passArray8ToWasm0(arg, malloc) {
202
+ const ptr = malloc(arg.length * 1, 1) >>> 0;
203
+ getUint8ArrayMemory0().set(arg, ptr / 1);
204
+ WASM_VECTOR_LEN = arg.length;
205
+ return ptr;
206
+ }
207
+ /**
208
+ * Encrypt using AES-256-GCM (§4.1 P1 suite)
209
+ *
210
+ * # Arguments
211
+ * * `key` - 32-byte encryption key
212
+ * * `nonce` - 12-byte nonce (must be unique per key)
213
+ * * `plaintext` - Data to encrypt
214
+ * * `aad` - Associated data (authenticated but not encrypted)
215
+ *
216
+ * # Returns
217
+ * Ciphertext with authentication tag appended (plaintext.len() + 16 bytes)
218
+ * @param {Uint8Array} key
219
+ * @param {Uint8Array} nonce
220
+ * @param {Uint8Array} plaintext
221
+ * @param {Uint8Array} aad
222
+ * @returns {AeadResult}
223
+ */
224
+ exports.aesGcmEncrypt = function(key, nonce, plaintext, aad) {
225
+ try {
226
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
227
+ const ptr0 = passArray8ToWasm0(key, wasm.__wbindgen_export_0);
228
+ const len0 = WASM_VECTOR_LEN;
229
+ const ptr1 = passArray8ToWasm0(nonce, wasm.__wbindgen_export_0);
230
+ const len1 = WASM_VECTOR_LEN;
231
+ const ptr2 = passArray8ToWasm0(plaintext, wasm.__wbindgen_export_0);
232
+ const len2 = WASM_VECTOR_LEN;
233
+ const ptr3 = passArray8ToWasm0(aad, wasm.__wbindgen_export_0);
234
+ const len3 = WASM_VECTOR_LEN;
235
+ wasm.aesGcmEncrypt(retptr, ptr0, len0, ptr1, len1, ptr2, len2, ptr3, len3);
236
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
237
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
238
+ var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
239
+ if (r2) {
240
+ throw takeObject(r1);
241
+ }
242
+ return AeadResult.__wrap(r0);
243
+ } finally {
244
+ wasm.__wbindgen_add_to_stack_pointer(16);
245
+ }
246
+ };
247
+
248
+ /**
249
+ * Decrypt using AES-256-GCM (§4.1 P1 suite)
250
+ *
251
+ * # Arguments
252
+ * * `key` - 32-byte encryption key
253
+ * * `nonce` - 12-byte nonce (same as encryption)
254
+ * * `ciphertext` - Encrypted data with tag
255
+ * * `aad` - Associated data (must match encryption)
256
+ *
257
+ * # Returns
258
+ * Plaintext (ciphertext.len() - 16 bytes)
259
+ * @param {Uint8Array} key
260
+ * @param {Uint8Array} nonce
261
+ * @param {Uint8Array} ciphertext
262
+ * @param {Uint8Array} aad
263
+ * @returns {Uint8Array}
264
+ */
265
+ exports.aesGcmDecrypt = function(key, nonce, ciphertext, aad) {
266
+ try {
267
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
268
+ const ptr0 = passArray8ToWasm0(key, wasm.__wbindgen_export_0);
269
+ const len0 = WASM_VECTOR_LEN;
270
+ const ptr1 = passArray8ToWasm0(nonce, wasm.__wbindgen_export_0);
271
+ const len1 = WASM_VECTOR_LEN;
272
+ const ptr2 = passArray8ToWasm0(ciphertext, wasm.__wbindgen_export_0);
273
+ const len2 = WASM_VECTOR_LEN;
274
+ const ptr3 = passArray8ToWasm0(aad, wasm.__wbindgen_export_0);
275
+ const len3 = WASM_VECTOR_LEN;
276
+ wasm.aesGcmDecrypt(retptr, ptr0, len0, ptr1, len1, ptr2, len2, ptr3, len3);
277
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
278
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
279
+ var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
280
+ var r3 = getDataViewMemory0().getInt32(retptr + 4 * 3, true);
281
+ if (r3) {
282
+ throw takeObject(r2);
283
+ }
284
+ var v5 = getArrayU8FromWasm0(r0, r1).slice();
285
+ wasm.__wbindgen_export_3(r0, r1 * 1, 1);
286
+ return v5;
287
+ } finally {
288
+ wasm.__wbindgen_add_to_stack_pointer(16);
289
+ }
290
+ };
291
+
292
+ /**
293
+ * Encrypt using XChaCha20-Poly1305 (§4.1 H1 suite)
294
+ *
295
+ * # Arguments
296
+ * * `key` - 32-byte encryption key
297
+ * * `nonce` - 24-byte nonce (extended nonce for XChaCha)
298
+ * * `plaintext` - Data to encrypt
299
+ * * `aad` - Associated data (authenticated but not encrypted)
300
+ *
301
+ * # Returns
302
+ * Ciphertext with authentication tag appended
303
+ * @param {Uint8Array} key
304
+ * @param {Uint8Array} nonce
305
+ * @param {Uint8Array} plaintext
306
+ * @param {Uint8Array} aad
307
+ * @returns {AeadResult}
308
+ */
309
+ exports.xchachaEncrypt = function(key, nonce, plaintext, aad) {
310
+ try {
311
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
312
+ const ptr0 = passArray8ToWasm0(key, wasm.__wbindgen_export_0);
313
+ const len0 = WASM_VECTOR_LEN;
314
+ const ptr1 = passArray8ToWasm0(nonce, wasm.__wbindgen_export_0);
315
+ const len1 = WASM_VECTOR_LEN;
316
+ const ptr2 = passArray8ToWasm0(plaintext, wasm.__wbindgen_export_0);
317
+ const len2 = WASM_VECTOR_LEN;
318
+ const ptr3 = passArray8ToWasm0(aad, wasm.__wbindgen_export_0);
319
+ const len3 = WASM_VECTOR_LEN;
320
+ wasm.xchachaEncrypt(retptr, ptr0, len0, ptr1, len1, ptr2, len2, ptr3, len3);
321
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
322
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
323
+ var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
324
+ if (r2) {
325
+ throw takeObject(r1);
326
+ }
327
+ return AeadResult.__wrap(r0);
328
+ } finally {
329
+ wasm.__wbindgen_add_to_stack_pointer(16);
330
+ }
331
+ };
332
+
333
+ /**
334
+ * Decrypt using XChaCha20-Poly1305 (§4.1 H1 suite)
335
+ *
336
+ * # Arguments
337
+ * * `key` - 32-byte encryption key
338
+ * * `nonce` - 24-byte nonce (same as encryption)
339
+ * * `ciphertext` - Encrypted data with tag
340
+ * * `aad` - Associated data (must match encryption)
341
+ *
342
+ * # Returns
343
+ * Plaintext
344
+ * @param {Uint8Array} key
345
+ * @param {Uint8Array} nonce
346
+ * @param {Uint8Array} ciphertext
347
+ * @param {Uint8Array} aad
348
+ * @returns {Uint8Array}
349
+ */
350
+ exports.xchachaDecrypt = function(key, nonce, ciphertext, aad) {
351
+ try {
352
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
353
+ const ptr0 = passArray8ToWasm0(key, wasm.__wbindgen_export_0);
354
+ const len0 = WASM_VECTOR_LEN;
355
+ const ptr1 = passArray8ToWasm0(nonce, wasm.__wbindgen_export_0);
356
+ const len1 = WASM_VECTOR_LEN;
357
+ const ptr2 = passArray8ToWasm0(ciphertext, wasm.__wbindgen_export_0);
358
+ const len2 = WASM_VECTOR_LEN;
359
+ const ptr3 = passArray8ToWasm0(aad, wasm.__wbindgen_export_0);
360
+ const len3 = WASM_VECTOR_LEN;
361
+ wasm.xchachaDecrypt(retptr, ptr0, len0, ptr1, len1, ptr2, len2, ptr3, len3);
362
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
363
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
364
+ var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
365
+ var r3 = getDataViewMemory0().getInt32(retptr + 4 * 3, true);
366
+ if (r3) {
367
+ throw takeObject(r2);
368
+ }
369
+ var v5 = getArrayU8FromWasm0(r0, r1).slice();
370
+ wasm.__wbindgen_export_3(r0, r1 * 1, 1);
371
+ return v5;
372
+ } finally {
373
+ wasm.__wbindgen_add_to_stack_pointer(16);
374
+ }
375
+ };
376
+
377
+ /**
378
+ * Generate ML-KEM-768 keypair (§4.1 P1 suite)
379
+ *
380
+ * # Returns
381
+ * Keypair with:
382
+ * - Public key: 1184 bytes
383
+ * - Secret key: 2400 bytes
384
+ * @returns {KemKeypair}
385
+ */
386
+ exports.kemGenerateKeypair = function() {
387
+ try {
388
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
389
+ wasm.kemGenerateKeypair(retptr);
390
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
391
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
392
+ var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
393
+ if (r2) {
394
+ throw takeObject(r1);
395
+ }
396
+ return KemKeypair.__wrap(r0);
397
+ } finally {
398
+ wasm.__wbindgen_add_to_stack_pointer(16);
399
+ }
400
+ };
401
+
402
+ /**
403
+ * Encapsulate a shared secret to a recipient's public key (§6.1)
404
+ *
405
+ * # Arguments
406
+ * * `recipient_public_key` - Recipient's ML-KEM-768 public key (1184 bytes)
407
+ *
408
+ * # Returns
409
+ * - `sharedSecret`: 32-byte shared secret (use as KEK to wrap CEK)
410
+ * - `ciphertext`: KEM ciphertext to send to recipient
411
+ * @param {Uint8Array} recipient_public_key
412
+ * @returns {KemEncapResult}
413
+ */
414
+ exports.kemEncapsulate = function(recipient_public_key) {
415
+ try {
416
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
417
+ const ptr0 = passArray8ToWasm0(recipient_public_key, wasm.__wbindgen_export_0);
418
+ const len0 = WASM_VECTOR_LEN;
419
+ wasm.kemEncapsulate(retptr, ptr0, len0);
420
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
421
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
422
+ var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
423
+ if (r2) {
424
+ throw takeObject(r1);
425
+ }
426
+ return KemEncapResult.__wrap(r0);
427
+ } finally {
428
+ wasm.__wbindgen_add_to_stack_pointer(16);
429
+ }
430
+ };
431
+
432
+ /**
433
+ * Decapsulate to recover shared secret from ciphertext (§6.1)
434
+ *
435
+ * # Arguments
436
+ * * `ciphertext` - KEM ciphertext from encapsulation
437
+ * * `secret_key` - Recipient's ML-KEM-768 secret key (2400 bytes)
438
+ *
439
+ * # Returns
440
+ * 32-byte shared secret (same as encapsulation)
441
+ * @param {Uint8Array} ciphertext
442
+ * @param {Uint8Array} secret_key
443
+ * @returns {Uint8Array}
444
+ */
445
+ exports.kemDecapsulate = function(ciphertext, secret_key) {
446
+ try {
447
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
448
+ const ptr0 = passArray8ToWasm0(ciphertext, wasm.__wbindgen_export_0);
449
+ const len0 = WASM_VECTOR_LEN;
450
+ const ptr1 = passArray8ToWasm0(secret_key, wasm.__wbindgen_export_0);
451
+ const len1 = WASM_VECTOR_LEN;
452
+ wasm.kemDecapsulate(retptr, ptr0, len0, ptr1, len1);
453
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
454
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
455
+ var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
456
+ var r3 = getDataViewMemory0().getInt32(retptr + 4 * 3, true);
457
+ if (r3) {
458
+ throw takeObject(r2);
459
+ }
460
+ var v3 = getArrayU8FromWasm0(r0, r1).slice();
461
+ wasm.__wbindgen_export_3(r0, r1 * 1, 1);
462
+ return v3;
463
+ } finally {
464
+ wasm.__wbindgen_add_to_stack_pointer(16);
465
+ }
466
+ };
467
+
468
+ /**
469
+ * Wrap a CEK using KEM + AES-KW pattern
470
+ *
471
+ * This is a convenience function that:
472
+ * 1. Encapsulates to get a KEK (Key Encryption Key)
473
+ * 2. Uses KEK with AES-GCM to wrap the CEK
474
+ *
475
+ * # Arguments
476
+ * * `cek` - Content Encryption Key to wrap (typically 32 bytes)
477
+ * * `recipient_public_key` - Recipient's ML-KEM-768 public key
478
+ *
479
+ * # Returns
480
+ * Wrapped CEK ciphertext (includes both KEM ciphertext and AES-GCM encrypted CEK)
481
+ * @param {Uint8Array} cek
482
+ * @param {Uint8Array} recipient_public_key
483
+ * @returns {Uint8Array}
484
+ */
485
+ exports.kemWrapCek = function(cek, recipient_public_key) {
486
+ try {
487
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
488
+ const ptr0 = passArray8ToWasm0(cek, wasm.__wbindgen_export_0);
489
+ const len0 = WASM_VECTOR_LEN;
490
+ const ptr1 = passArray8ToWasm0(recipient_public_key, wasm.__wbindgen_export_0);
491
+ const len1 = WASM_VECTOR_LEN;
492
+ wasm.kemWrapCek(retptr, ptr0, len0, ptr1, len1);
493
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
494
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
495
+ var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
496
+ var r3 = getDataViewMemory0().getInt32(retptr + 4 * 3, true);
497
+ if (r3) {
498
+ throw takeObject(r2);
499
+ }
500
+ var v3 = getArrayU8FromWasm0(r0, r1).slice();
501
+ wasm.__wbindgen_export_3(r0, r1 * 1, 1);
502
+ return v3;
503
+ } finally {
504
+ wasm.__wbindgen_add_to_stack_pointer(16);
505
+ }
506
+ };
507
+
508
+ /**
509
+ * Unwrap a CEK using KEM + AES-KW pattern
510
+ *
511
+ * Inverse of `kemWrapCek`.
512
+ *
513
+ * # Arguments
514
+ * * `wrapped_cek` - Combined KEM ciphertext + AES-GCM encrypted CEK
515
+ * * `secret_key` - Recipient's ML-KEM-768 secret key
516
+ *
517
+ * # Returns
518
+ * Unwrapped CEK
519
+ * @param {Uint8Array} wrapped_cek
520
+ * @param {Uint8Array} secret_key
521
+ * @returns {Uint8Array}
522
+ */
523
+ exports.kemUnwrapCek = function(wrapped_cek, secret_key) {
524
+ try {
525
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
526
+ const ptr0 = passArray8ToWasm0(wrapped_cek, wasm.__wbindgen_export_0);
527
+ const len0 = WASM_VECTOR_LEN;
528
+ const ptr1 = passArray8ToWasm0(secret_key, wasm.__wbindgen_export_0);
529
+ const len1 = WASM_VECTOR_LEN;
530
+ wasm.kemUnwrapCek(retptr, ptr0, len0, ptr1, len1);
531
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
532
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
533
+ var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
534
+ var r3 = getDataViewMemory0().getInt32(retptr + 4 * 3, true);
535
+ if (r3) {
536
+ throw takeObject(r2);
537
+ }
538
+ var v3 = getArrayU8FromWasm0(r0, r1).slice();
539
+ wasm.__wbindgen_export_3(r0, r1 * 1, 1);
540
+ return v3;
541
+ } finally {
542
+ wasm.__wbindgen_add_to_stack_pointer(16);
543
+ }
544
+ };
545
+
546
+ /**
547
+ * Derive key using HKDF-SHA256 (§10.3)
548
+ *
549
+ * # Arguments
550
+ * * `ikm` - Input Key Material
551
+ * * `salt` - Optional salt (use empty array for none)
552
+ * * `info` - Context/domain string
553
+ * * `length` - Output key length in bytes
554
+ *
555
+ * # Returns
556
+ * Derived key of requested length
557
+ * @param {Uint8Array} ikm
558
+ * @param {Uint8Array} salt
559
+ * @param {string} info
560
+ * @param {number} length
561
+ * @returns {Uint8Array}
562
+ */
563
+ exports.hkdfExpand = function(ikm, salt, info, length) {
564
+ try {
565
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
566
+ const ptr0 = passArray8ToWasm0(ikm, wasm.__wbindgen_export_0);
567
+ const len0 = WASM_VECTOR_LEN;
568
+ const ptr1 = passArray8ToWasm0(salt, wasm.__wbindgen_export_0);
569
+ const len1 = WASM_VECTOR_LEN;
570
+ const ptr2 = passStringToWasm0(info, wasm.__wbindgen_export_0, wasm.__wbindgen_export_1);
571
+ const len2 = WASM_VECTOR_LEN;
572
+ wasm.hkdfExpand(retptr, ptr0, len0, ptr1, len1, ptr2, len2, length);
573
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
574
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
575
+ var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
576
+ var r3 = getDataViewMemory0().getInt32(retptr + 4 * 3, true);
577
+ if (r3) {
578
+ throw takeObject(r2);
579
+ }
580
+ var v4 = getArrayU8FromWasm0(r0, r1).slice();
581
+ wasm.__wbindgen_export_3(r0, r1 * 1, 1);
582
+ return v4;
583
+ } finally {
584
+ wasm.__wbindgen_add_to_stack_pointer(16);
585
+ }
586
+ };
587
+
588
+ /**
589
+ * HKDF-join: Order-independent key folding for all-of policy (§6.2)
590
+ *
591
+ * Combines multiple keys into a single wrap key deterministically.
592
+ * Order-independent by sorting KIDs before folding.
593
+ *
594
+ * # Arguments
595
+ * * `keys` - Array of key materials (each with KID and key bytes)
596
+ * * `context` - Context string (e.g., "doc:uuid:epoch:3")
597
+ *
598
+ * # Returns
599
+ * 32-byte joint wrap key
600
+ *
601
+ * # Example
602
+ * ```javascript
603
+ * const keys = [
604
+ * { kid: "alice", key: aliceKeyBytes },
605
+ * { kid: "bob", key: bobKeyBytes },
606
+ * ];
607
+ * const wrapKey = hkdfJoin(keys, "doc:abc:epoch:0");
608
+ * ```
609
+ * @param {any} keys
610
+ * @param {string} context
611
+ * @returns {Uint8Array}
612
+ */
613
+ exports.hkdfJoin = function(keys, context) {
614
+ try {
615
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
616
+ const ptr0 = passStringToWasm0(context, wasm.__wbindgen_export_0, wasm.__wbindgen_export_1);
617
+ const len0 = WASM_VECTOR_LEN;
618
+ wasm.hkdfJoin(retptr, addHeapObject(keys), ptr0, len0);
619
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
620
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
621
+ var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
622
+ var r3 = getDataViewMemory0().getInt32(retptr + 4 * 3, true);
623
+ if (r3) {
624
+ throw takeObject(r2);
625
+ }
626
+ var v2 = getArrayU8FromWasm0(r0, r1).slice();
627
+ wasm.__wbindgen_export_3(r0, r1 * 1, 1);
628
+ return v2;
629
+ } finally {
630
+ wasm.__wbindgen_add_to_stack_pointer(16);
631
+ }
632
+ };
633
+
634
+ /**
635
+ * Simple HKDF for CEK derivation from seed
636
+ *
637
+ * # Arguments
638
+ * * `seed` - Random seed material
639
+ * * `context` - Context string
640
+ *
641
+ * # Returns
642
+ * 32-byte CEK
643
+ * @param {Uint8Array} seed
644
+ * @param {string} context
645
+ * @returns {Uint8Array}
646
+ */
647
+ exports.deriveCek = function(seed, context) {
648
+ try {
649
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
650
+ const ptr0 = passArray8ToWasm0(seed, wasm.__wbindgen_export_0);
651
+ const len0 = WASM_VECTOR_LEN;
652
+ const ptr1 = passStringToWasm0(context, wasm.__wbindgen_export_0, wasm.__wbindgen_export_1);
653
+ const len1 = WASM_VECTOR_LEN;
654
+ wasm.deriveCek(retptr, ptr0, len0, ptr1, len1);
655
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
656
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
657
+ var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
658
+ var r3 = getDataViewMemory0().getInt32(retptr + 4 * 3, true);
659
+ if (r3) {
660
+ throw takeObject(r2);
661
+ }
662
+ var v3 = getArrayU8FromWasm0(r0, r1).slice();
663
+ wasm.__wbindgen_export_3(r0, r1 * 1, 1);
664
+ return v3;
665
+ } finally {
666
+ wasm.__wbindgen_add_to_stack_pointer(16);
667
+ }
668
+ };
669
+
670
+ /**
671
+ * Derive key identifier (KID) from public key (§10.1)
672
+ *
673
+ * KID = base64url(SHA256(publicKey))
674
+ *
675
+ * # Arguments
676
+ * * `public_key` - Public key bytes
677
+ *
678
+ * # Returns
679
+ * Base64url-encoded KID
680
+ * @param {Uint8Array} public_key
681
+ * @returns {string}
682
+ */
683
+ exports.deriveKid = function(public_key) {
684
+ let deferred2_0;
685
+ let deferred2_1;
686
+ try {
687
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
688
+ const ptr0 = passArray8ToWasm0(public_key, wasm.__wbindgen_export_0);
689
+ const len0 = WASM_VECTOR_LEN;
690
+ wasm.deriveKid(retptr, ptr0, len0);
691
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
692
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
693
+ deferred2_0 = r0;
694
+ deferred2_1 = r1;
695
+ return getStringFromWasm0(r0, r1);
696
+ } finally {
697
+ wasm.__wbindgen_add_to_stack_pointer(16);
698
+ wasm.__wbindgen_export_3(deferred2_0, deferred2_1, 1);
699
+ }
700
+ };
701
+
702
+ /**
703
+ * Derive key identifier from symmetric key (§10.1)
704
+ *
705
+ * For symmetric keys, use HKDF to avoid reversibility:
706
+ * KID = base64url(HKDF-Expand(key, "kid:v1", 16))
707
+ *
708
+ * # Arguments
709
+ * * `key` - Symmetric key bytes
710
+ *
711
+ * # Returns
712
+ * Base64url-encoded KID (truncated to 16 bytes for compactness)
713
+ * @param {Uint8Array} key
714
+ * @returns {string}
715
+ */
716
+ exports.deriveSymmetricKid = function(key) {
717
+ let deferred3_0;
718
+ let deferred3_1;
719
+ try {
720
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
721
+ const ptr0 = passArray8ToWasm0(key, wasm.__wbindgen_export_0);
722
+ const len0 = WASM_VECTOR_LEN;
723
+ wasm.deriveSymmetricKid(retptr, ptr0, len0);
724
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
725
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
726
+ var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
727
+ var r3 = getDataViewMemory0().getInt32(retptr + 4 * 3, true);
728
+ var ptr2 = r0;
729
+ var len2 = r1;
730
+ if (r3) {
731
+ ptr2 = 0; len2 = 0;
732
+ throw takeObject(r2);
733
+ }
734
+ deferred3_0 = ptr2;
735
+ deferred3_1 = len2;
736
+ return getStringFromWasm0(ptr2, len2);
737
+ } finally {
738
+ wasm.__wbindgen_add_to_stack_pointer(16);
739
+ wasm.__wbindgen_export_3(deferred3_0, deferred3_1, 1);
740
+ }
741
+ };
742
+
743
+ /**
744
+ * Split secret into Shamir shares (t-of-n threshold)
745
+ *
746
+ * # Arguments
747
+ * * `secret` - Secret to split (typically a CEK, 32 bytes)
748
+ * * `threshold` - Minimum shares needed to reconstruct (t)
749
+ * * `total_shares` - Total number of shares to create (n)
750
+ *
751
+ * # Returns
752
+ * Array of n shares, any t of which can reconstruct the secret
753
+ *
754
+ * # Example
755
+ * ```javascript
756
+ * const cek = new Uint8Array(32); // 32-byte CEK
757
+ * crypto.getRandomValues(cek);
758
+ *
759
+ * // Create 5 shares, need any 3 to reconstruct
760
+ * const shares = shamirSplit(cek, 3, 5);
761
+ * ```
762
+ * @param {Uint8Array} secret
763
+ * @param {number} threshold
764
+ * @param {number} total_shares
765
+ * @returns {any}
766
+ */
767
+ exports.shamirSplit = function(secret, threshold, total_shares) {
768
+ try {
769
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
770
+ const ptr0 = passArray8ToWasm0(secret, wasm.__wbindgen_export_0);
771
+ const len0 = WASM_VECTOR_LEN;
772
+ wasm.shamirSplit(retptr, ptr0, len0, threshold, total_shares);
773
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
774
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
775
+ var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
776
+ if (r2) {
777
+ throw takeObject(r1);
778
+ }
779
+ return takeObject(r0);
780
+ } finally {
781
+ wasm.__wbindgen_add_to_stack_pointer(16);
782
+ }
783
+ };
784
+
785
+ /**
786
+ * Reconstruct secret from Shamir shares
787
+ *
788
+ * # Arguments
789
+ * * `shares` - Array of shares (must have at least threshold shares)
790
+ *
791
+ * # Returns
792
+ * Reconstructed secret
793
+ *
794
+ * # Example
795
+ * ```javascript
796
+ * // Use any 3 of the 5 shares
797
+ * const selectedShares = [shares[0], shares[2], shares[4]];
798
+ * const reconstructed = shamirReconstruct(selectedShares);
799
+ * ```
800
+ * @param {any} shares
801
+ * @returns {Uint8Array}
802
+ */
803
+ exports.shamirReconstruct = function(shares) {
804
+ try {
805
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
806
+ wasm.shamirReconstruct(retptr, addHeapObject(shares));
807
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
808
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
809
+ var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
810
+ var r3 = getDataViewMemory0().getInt32(retptr + 4 * 3, true);
811
+ if (r3) {
812
+ throw takeObject(r2);
813
+ }
814
+ var v1 = getArrayU8FromWasm0(r0, r1).slice();
815
+ wasm.__wbindgen_export_3(r0, r1 * 1, 1);
816
+ return v1;
817
+ } finally {
818
+ wasm.__wbindgen_add_to_stack_pointer(16);
819
+ }
820
+ };
821
+
822
+ /**
823
+ * Helper: Split and KEM-wrap shares for threshold policy (§6.3)
824
+ *
825
+ * Combines Shamir splitting with KEM encapsulation.
826
+ * Each share is encrypted to a participant's public key.
827
+ *
828
+ * # Arguments
829
+ * * `secret` - CEK to split and wrap
830
+ * * `threshold` - Minimum shares needed
831
+ * * `recipient_public_keys` - Array of ML-KEM-768 public keys (1184 bytes each)
832
+ *
833
+ * # Returns
834
+ * Array of wrapped shares (each contains KEM ciphertext + encrypted share)
835
+ * @param {Uint8Array} secret
836
+ * @param {number} threshold
837
+ * @param {any} recipient_public_keys
838
+ * @returns {any}
839
+ */
840
+ exports.shamirSplitAndWrap = function(secret, threshold, recipient_public_keys) {
841
+ try {
842
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
843
+ const ptr0 = passArray8ToWasm0(secret, wasm.__wbindgen_export_0);
844
+ const len0 = WASM_VECTOR_LEN;
845
+ wasm.shamirSplitAndWrap(retptr, ptr0, len0, threshold, addHeapObject(recipient_public_keys));
846
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
847
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
848
+ var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
849
+ if (r2) {
850
+ throw takeObject(r1);
851
+ }
852
+ return takeObject(r0);
853
+ } finally {
854
+ wasm.__wbindgen_add_to_stack_pointer(16);
855
+ }
856
+ };
857
+
858
+ /**
859
+ * Helper: Unwrap and reconstruct from KEM-wrapped shares
860
+ *
861
+ * # Arguments
862
+ * * `wrapped_shares` - Array of wrapped shares
863
+ * * `secret_keys` - Array of ML-KEM-768 secret keys (2400 bytes each)
864
+ *
865
+ * # Returns
866
+ * Reconstructed secret (if threshold met)
867
+ * @param {any} wrapped_shares
868
+ * @param {any} secret_keys
869
+ * @returns {Uint8Array}
870
+ */
871
+ exports.shamirUnwrapAndReconstruct = function(wrapped_shares, secret_keys) {
872
+ try {
873
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
874
+ wasm.shamirUnwrapAndReconstruct(retptr, addHeapObject(wrapped_shares), addHeapObject(secret_keys));
875
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
876
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
877
+ var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
878
+ var r3 = getDataViewMemory0().getInt32(retptr + 4 * 3, true);
879
+ if (r3) {
880
+ throw takeObject(r2);
881
+ }
882
+ var v1 = getArrayU8FromWasm0(r0, r1).slice();
883
+ wasm.__wbindgen_export_3(r0, r1 * 1, 1);
884
+ return v1;
885
+ } finally {
886
+ wasm.__wbindgen_add_to_stack_pointer(16);
887
+ }
888
+ };
889
+
890
+ /**
891
+ * Generate random bytes using cryptographically secure RNG
892
+ *
893
+ * # Arguments
894
+ * * `length` - Number of random bytes to generate
895
+ *
896
+ * # Returns
897
+ * Cryptographically random bytes
898
+ * @param {number} length
899
+ * @returns {Uint8Array}
900
+ */
901
+ exports.randomBytes = function(length) {
902
+ try {
903
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
904
+ wasm.randomBytes(retptr, length);
905
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
906
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
907
+ var v1 = getArrayU8FromWasm0(r0, r1).slice();
908
+ wasm.__wbindgen_export_3(r0, r1 * 1, 1);
909
+ return v1;
910
+ } finally {
911
+ wasm.__wbindgen_add_to_stack_pointer(16);
912
+ }
913
+ };
914
+
915
+ /**
916
+ * Generate a random 32-byte CEK (Content Encryption Key)
917
+ *
918
+ * # Returns
919
+ * 32-byte random CEK
920
+ * @returns {Uint8Array}
921
+ */
922
+ exports.generateCek = function() {
923
+ try {
924
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
925
+ wasm.generateCek(retptr);
926
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
927
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
928
+ var v1 = getArrayU8FromWasm0(r0, r1).slice();
929
+ wasm.__wbindgen_export_3(r0, r1 * 1, 1);
930
+ return v1;
931
+ } finally {
932
+ wasm.__wbindgen_add_to_stack_pointer(16);
933
+ }
934
+ };
935
+
936
+ /**
937
+ * Generate random nonce for AES-GCM (12 bytes)
938
+ *
939
+ * # Returns
940
+ * 12-byte random nonce
941
+ * @returns {Uint8Array}
942
+ */
943
+ exports.generateNonceAesGcm = function() {
944
+ try {
945
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
946
+ wasm.generateNonceAesGcm(retptr);
947
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
948
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
949
+ var v1 = getArrayU8FromWasm0(r0, r1).slice();
950
+ wasm.__wbindgen_export_3(r0, r1 * 1, 1);
951
+ return v1;
952
+ } finally {
953
+ wasm.__wbindgen_add_to_stack_pointer(16);
954
+ }
955
+ };
956
+
957
+ /**
958
+ * Generate random nonce for XChaCha20-Poly1305 (24 bytes)
959
+ *
960
+ * # Returns
961
+ * 24-byte random nonce
962
+ * @returns {Uint8Array}
963
+ */
964
+ exports.generateNonceXchacha = function() {
965
+ try {
966
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
967
+ wasm.generateNonceXchacha(retptr);
968
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
969
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
970
+ var v1 = getArrayU8FromWasm0(r0, r1).slice();
971
+ wasm.__wbindgen_export_3(r0, r1 * 1, 1);
972
+ return v1;
973
+ } finally {
974
+ wasm.__wbindgen_add_to_stack_pointer(16);
975
+ }
976
+ };
977
+
978
+ /**
979
+ * Compute key commitment: HMAC-SHA256(CEK, "kcmp:v1") (§5.1)
980
+ *
981
+ * Key commitment ensures the CEK is bound to the ciphertext and prevents
982
+ * key substitution attacks.
983
+ *
984
+ * # Arguments
985
+ * * `cek` - Content Encryption Key
986
+ *
987
+ * # Returns
988
+ * 32-byte key commitment value
989
+ * @param {Uint8Array} cek
990
+ * @returns {Uint8Array}
991
+ */
992
+ exports.keyCommitment = function(cek) {
993
+ try {
994
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
995
+ const ptr0 = passArray8ToWasm0(cek, wasm.__wbindgen_export_0);
996
+ const len0 = WASM_VECTOR_LEN;
997
+ wasm.keyCommitment(retptr, ptr0, len0);
998
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
999
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
1000
+ var v2 = getArrayU8FromWasm0(r0, r1).slice();
1001
+ wasm.__wbindgen_export_3(r0, r1 * 1, 1);
1002
+ return v2;
1003
+ } finally {
1004
+ wasm.__wbindgen_add_to_stack_pointer(16);
1005
+ }
1006
+ };
1007
+
1008
+ /**
1009
+ * Verify key commitment
1010
+ *
1011
+ * # Arguments
1012
+ * * `cek` - Content Encryption Key
1013
+ * * `expected_kcmp` - Expected commitment value
1014
+ *
1015
+ * # Returns
1016
+ * true if commitment matches
1017
+ * @param {Uint8Array} cek
1018
+ * @param {Uint8Array} expected_kcmp
1019
+ * @returns {boolean}
1020
+ */
1021
+ exports.verifyKeyCommitment = function(cek, expected_kcmp) {
1022
+ const ptr0 = passArray8ToWasm0(cek, wasm.__wbindgen_export_0);
1023
+ const len0 = WASM_VECTOR_LEN;
1024
+ const ptr1 = passArray8ToWasm0(expected_kcmp, wasm.__wbindgen_export_0);
1025
+ const len1 = WASM_VECTOR_LEN;
1026
+ const ret = wasm.verifyKeyCommitment(ptr0, len0, ptr1, len1);
1027
+ return ret !== 0;
1028
+ };
1029
+
1030
+ /**
1031
+ * Compute SHA-256 hash
1032
+ *
1033
+ * # Arguments
1034
+ * * `data` - Data to hash
1035
+ *
1036
+ * # Returns
1037
+ * 32-byte SHA-256 digest
1038
+ * @param {Uint8Array} data
1039
+ * @returns {Uint8Array}
1040
+ */
1041
+ exports.sha256 = function(data) {
1042
+ try {
1043
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
1044
+ const ptr0 = passArray8ToWasm0(data, wasm.__wbindgen_export_0);
1045
+ const len0 = WASM_VECTOR_LEN;
1046
+ wasm.sha256(retptr, ptr0, len0);
1047
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
1048
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
1049
+ var v2 = getArrayU8FromWasm0(r0, r1).slice();
1050
+ wasm.__wbindgen_export_3(r0, r1 * 1, 1);
1051
+ return v2;
1052
+ } finally {
1053
+ wasm.__wbindgen_add_to_stack_pointer(16);
1054
+ }
1055
+ };
1056
+
1057
+ /**
1058
+ * Compute BLAKE2s-256 hash
1059
+ *
1060
+ * # Arguments
1061
+ * * `data` - Data to hash
1062
+ *
1063
+ * # Returns
1064
+ * 32-byte BLAKE2s-256 digest
1065
+ * @param {Uint8Array} data
1066
+ * @returns {Uint8Array}
1067
+ */
1068
+ exports.blake2s256 = function(data) {
1069
+ try {
1070
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
1071
+ const ptr0 = passArray8ToWasm0(data, wasm.__wbindgen_export_0);
1072
+ const len0 = WASM_VECTOR_LEN;
1073
+ wasm.blake2s256(retptr, ptr0, len0);
1074
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
1075
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
1076
+ var v2 = getArrayU8FromWasm0(r0, r1).slice();
1077
+ wasm.__wbindgen_export_3(r0, r1 * 1, 1);
1078
+ return v2;
1079
+ } finally {
1080
+ wasm.__wbindgen_add_to_stack_pointer(16);
1081
+ }
1082
+ };
1083
+
1084
+ /**
1085
+ * Compute summary hash for WYSIWYS (What You See Is What You Sign)
1086
+ *
1087
+ * Summary = BLAKE2s-256(digest)[..16]
1088
+ *
1089
+ * # Arguments
1090
+ * * `digest` - Transaction or document digest
1091
+ *
1092
+ * # Returns
1093
+ * 16-byte summary hash (fingerprint)
1094
+ * @param {Uint8Array} digest
1095
+ * @returns {Uint8Array}
1096
+ */
1097
+ exports.computeSummary = function(digest) {
1098
+ try {
1099
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
1100
+ const ptr0 = passArray8ToWasm0(digest, wasm.__wbindgen_export_0);
1101
+ const len0 = WASM_VECTOR_LEN;
1102
+ wasm.computeSummary(retptr, ptr0, len0);
1103
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
1104
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
1105
+ var v2 = getArrayU8FromWasm0(r0, r1).slice();
1106
+ wasm.__wbindgen_export_3(r0, r1 * 1, 1);
1107
+ return v2;
1108
+ } finally {
1109
+ wasm.__wbindgen_add_to_stack_pointer(16);
1110
+ }
1111
+ };
1112
+
1113
+ /**
1114
+ * Constant-time equality comparison
1115
+ *
1116
+ * # Arguments
1117
+ * * `a` - First byte array
1118
+ * * `b` - Second byte array
1119
+ *
1120
+ * # Returns
1121
+ * true if arrays are equal (constant-time)
1122
+ * @param {Uint8Array} a
1123
+ * @param {Uint8Array} b
1124
+ * @returns {boolean}
1125
+ */
1126
+ exports.constantTimeEq = function(a, b) {
1127
+ const ptr0 = passArray8ToWasm0(a, wasm.__wbindgen_export_0);
1128
+ const len0 = WASM_VECTOR_LEN;
1129
+ const ptr1 = passArray8ToWasm0(b, wasm.__wbindgen_export_0);
1130
+ const len1 = WASM_VECTOR_LEN;
1131
+ const ret = wasm.constantTimeEq(ptr0, len0, ptr1, len1);
1132
+ return ret !== 0;
1133
+ };
1134
+
1135
+ /**
1136
+ * Encode bytes to base64url (no padding)
1137
+ *
1138
+ * # Arguments
1139
+ * * `data` - Bytes to encode
1140
+ *
1141
+ * # Returns
1142
+ * Base64url-encoded string
1143
+ * @param {Uint8Array} data
1144
+ * @returns {string}
1145
+ */
1146
+ exports.toBase64Url = function(data) {
1147
+ let deferred2_0;
1148
+ let deferred2_1;
1149
+ try {
1150
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
1151
+ const ptr0 = passArray8ToWasm0(data, wasm.__wbindgen_export_0);
1152
+ const len0 = WASM_VECTOR_LEN;
1153
+ wasm.toBase64Url(retptr, ptr0, len0);
1154
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
1155
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
1156
+ deferred2_0 = r0;
1157
+ deferred2_1 = r1;
1158
+ return getStringFromWasm0(r0, r1);
1159
+ } finally {
1160
+ wasm.__wbindgen_add_to_stack_pointer(16);
1161
+ wasm.__wbindgen_export_3(deferred2_0, deferred2_1, 1);
1162
+ }
1163
+ };
1164
+
1165
+ /**
1166
+ * Decode bytes from base64url
1167
+ *
1168
+ * # Arguments
1169
+ * * `encoded` - Base64url-encoded string
1170
+ *
1171
+ * # Returns
1172
+ * Decoded bytes
1173
+ * @param {string} encoded
1174
+ * @returns {Uint8Array}
1175
+ */
1176
+ exports.fromBase64Url = function(encoded) {
1177
+ try {
1178
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
1179
+ const ptr0 = passStringToWasm0(encoded, wasm.__wbindgen_export_0, wasm.__wbindgen_export_1);
1180
+ const len0 = WASM_VECTOR_LEN;
1181
+ wasm.fromBase64Url(retptr, ptr0, len0);
1182
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
1183
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
1184
+ var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
1185
+ var r3 = getDataViewMemory0().getInt32(retptr + 4 * 3, true);
1186
+ if (r3) {
1187
+ throw takeObject(r2);
1188
+ }
1189
+ var v2 = getArrayU8FromWasm0(r0, r1).slice();
1190
+ wasm.__wbindgen_export_3(r0, r1 * 1, 1);
1191
+ return v2;
1192
+ } finally {
1193
+ wasm.__wbindgen_add_to_stack_pointer(16);
1194
+ }
1195
+ };
1196
+
1197
+ /**
1198
+ * Encode bytes to hex string
1199
+ *
1200
+ * # Arguments
1201
+ * * `data` - Bytes to encode
1202
+ *
1203
+ * # Returns
1204
+ * Hex-encoded string
1205
+ * @param {Uint8Array} data
1206
+ * @returns {string}
1207
+ */
1208
+ exports.toHex = function(data) {
1209
+ let deferred2_0;
1210
+ let deferred2_1;
1211
+ try {
1212
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
1213
+ const ptr0 = passArray8ToWasm0(data, wasm.__wbindgen_export_0);
1214
+ const len0 = WASM_VECTOR_LEN;
1215
+ wasm.toHex(retptr, ptr0, len0);
1216
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
1217
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
1218
+ deferred2_0 = r0;
1219
+ deferred2_1 = r1;
1220
+ return getStringFromWasm0(r0, r1);
1221
+ } finally {
1222
+ wasm.__wbindgen_add_to_stack_pointer(16);
1223
+ wasm.__wbindgen_export_3(deferred2_0, deferred2_1, 1);
1224
+ }
1225
+ };
1226
+
1227
+ /**
1228
+ * Decode bytes from hex string
1229
+ *
1230
+ * # Arguments
1231
+ * * `encoded` - Hex-encoded string
1232
+ *
1233
+ * # Returns
1234
+ * Decoded bytes
1235
+ * @param {string} encoded
1236
+ * @returns {Uint8Array}
1237
+ */
1238
+ exports.fromHex = function(encoded) {
1239
+ try {
1240
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
1241
+ const ptr0 = passStringToWasm0(encoded, wasm.__wbindgen_export_0, wasm.__wbindgen_export_1);
1242
+ const len0 = WASM_VECTOR_LEN;
1243
+ wasm.fromHex(retptr, ptr0, len0);
1244
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
1245
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
1246
+ var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
1247
+ var r3 = getDataViewMemory0().getInt32(retptr + 4 * 3, true);
1248
+ if (r3) {
1249
+ throw takeObject(r2);
1250
+ }
1251
+ var v2 = getArrayU8FromWasm0(r0, r1).slice();
1252
+ wasm.__wbindgen_export_3(r0, r1 * 1, 1);
1253
+ return v2;
1254
+ } finally {
1255
+ wasm.__wbindgen_add_to_stack_pointer(16);
1256
+ }
1257
+ };
1258
+
1259
+ /**
1260
+ * Generate UUID v4
1261
+ *
1262
+ * # Returns
1263
+ * UUID v4 string
1264
+ * @returns {string}
1265
+ */
1266
+ exports.generateUuid = function() {
1267
+ let deferred1_0;
1268
+ let deferred1_1;
1269
+ try {
1270
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
1271
+ wasm.generateUuid(retptr);
1272
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
1273
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
1274
+ deferred1_0 = r0;
1275
+ deferred1_1 = r1;
1276
+ return getStringFromWasm0(r0, r1);
1277
+ } finally {
1278
+ wasm.__wbindgen_add_to_stack_pointer(16);
1279
+ wasm.__wbindgen_export_3(deferred1_0, deferred1_1, 1);
1280
+ }
1281
+ };
1282
+
1283
+ /**
1284
+ * Zeroize (securely erase) a byte array
1285
+ *
1286
+ * # Arguments
1287
+ * * `data` - Mutable byte array to zeroize
1288
+ * @param {Uint8Array} data
1289
+ */
1290
+ exports.zeroize = function(data) {
1291
+ var ptr0 = passArray8ToWasm0(data, wasm.__wbindgen_export_0);
1292
+ var len0 = WASM_VECTOR_LEN;
1293
+ wasm.zeroize(ptr0, len0, addHeapObject(data));
1294
+ };
1295
+
1296
+ /**
1297
+ * Create canonical AAD (Associated Authenticated Data) for envelope encryption (§5.3)
1298
+ *
1299
+ * AAD includes: {v, suite, aead, docId, vaultId?, epoch, policy.mode}
1300
+ *
1301
+ * # Arguments
1302
+ * * `header_fields` - JSON object with header fields
1303
+ *
1304
+ * # Returns
1305
+ * Canonical JSON bytes for AAD
1306
+ * @param {any} header_fields
1307
+ * @returns {Uint8Array}
1308
+ */
1309
+ exports.canonicalAad = function(header_fields) {
1310
+ try {
1311
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
1312
+ wasm.canonicalAad(retptr, addHeapObject(header_fields));
1313
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
1314
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
1315
+ var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
1316
+ var r3 = getDataViewMemory0().getInt32(retptr + 4 * 3, true);
1317
+ if (r3) {
1318
+ throw takeObject(r2);
1319
+ }
1320
+ var v1 = getArrayU8FromWasm0(r0, r1).slice();
1321
+ wasm.__wbindgen_export_3(r0, r1 * 1, 1);
1322
+ return v1;
1323
+ } finally {
1324
+ wasm.__wbindgen_add_to_stack_pointer(16);
1325
+ }
1326
+ };
1327
+
1328
+ /**
1329
+ * Build context string for key derivation (§10.2)
1330
+ *
1331
+ * Format: "doc:{docId}:epoch:{epoch}"
1332
+ *
1333
+ * # Arguments
1334
+ * * `doc_id` - Document ID
1335
+ * * `epoch` - Epoch number
1336
+ *
1337
+ * # Returns
1338
+ * Context string
1339
+ * @param {string} doc_id
1340
+ * @param {number} epoch
1341
+ * @returns {string}
1342
+ */
1343
+ exports.buildContext = function(doc_id, epoch) {
1344
+ let deferred2_0;
1345
+ let deferred2_1;
1346
+ try {
1347
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
1348
+ const ptr0 = passStringToWasm0(doc_id, wasm.__wbindgen_export_0, wasm.__wbindgen_export_1);
1349
+ const len0 = WASM_VECTOR_LEN;
1350
+ wasm.buildContext(retptr, ptr0, len0, epoch);
1351
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
1352
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
1353
+ deferred2_0 = r0;
1354
+ deferred2_1 = r1;
1355
+ return getStringFromWasm0(r0, r1);
1356
+ } finally {
1357
+ wasm.__wbindgen_add_to_stack_pointer(16);
1358
+ wasm.__wbindgen_export_3(deferred2_0, deferred2_1, 1);
1359
+ }
1360
+ };
1361
+
1362
+ /**
1363
+ * Initialize panic hook for better error messages in WASM
1364
+ */
1365
+ exports.init = function() {
1366
+ wasm.init();
1367
+ };
1368
+
1369
+ /**
1370
+ * Get version info
1371
+ * @returns {string}
1372
+ */
1373
+ exports.version = function() {
1374
+ let deferred1_0;
1375
+ let deferred1_1;
1376
+ try {
1377
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
1378
+ wasm.version(retptr);
1379
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
1380
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
1381
+ deferred1_0 = r0;
1382
+ deferred1_1 = r1;
1383
+ return getStringFromWasm0(r0, r1);
1384
+ } finally {
1385
+ wasm.__wbindgen_add_to_stack_pointer(16);
1386
+ wasm.__wbindgen_export_3(deferred1_0, deferred1_1, 1);
1387
+ }
1388
+ };
1389
+
1390
+ const AeadResultFinalization = (typeof FinalizationRegistry === 'undefined')
1391
+ ? { register: () => {}, unregister: () => {} }
1392
+ : new FinalizationRegistry(ptr => wasm.__wbg_aeadresult_free(ptr >>> 0, 1));
1393
+ /**
1394
+ * AEAD encryption result
1395
+ */
1396
+ class AeadResult {
1397
+
1398
+ static __wrap(ptr) {
1399
+ ptr = ptr >>> 0;
1400
+ const obj = Object.create(AeadResult.prototype);
1401
+ obj.__wbg_ptr = ptr;
1402
+ AeadResultFinalization.register(obj, obj.__wbg_ptr, obj);
1403
+ return obj;
1404
+ }
1405
+
1406
+ __destroy_into_raw() {
1407
+ const ptr = this.__wbg_ptr;
1408
+ this.__wbg_ptr = 0;
1409
+ AeadResultFinalization.unregister(this);
1410
+ return ptr;
1411
+ }
1412
+
1413
+ free() {
1414
+ const ptr = this.__destroy_into_raw();
1415
+ wasm.__wbg_aeadresult_free(ptr, 0);
1416
+ }
1417
+ /**
1418
+ * Get ciphertext as bytes
1419
+ * @returns {Uint8Array}
1420
+ */
1421
+ get ciphertext() {
1422
+ try {
1423
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
1424
+ wasm.aeadresult_ciphertext(retptr, this.__wbg_ptr);
1425
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
1426
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
1427
+ var v1 = getArrayU8FromWasm0(r0, r1).slice();
1428
+ wasm.__wbindgen_export_3(r0, r1 * 1, 1);
1429
+ return v1;
1430
+ } finally {
1431
+ wasm.__wbindgen_add_to_stack_pointer(16);
1432
+ }
1433
+ }
1434
+ /**
1435
+ * Get ciphertext as base64url
1436
+ * @returns {string}
1437
+ */
1438
+ toBase64Url() {
1439
+ let deferred1_0;
1440
+ let deferred1_1;
1441
+ try {
1442
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
1443
+ wasm.aeadresult_toBase64Url(retptr, this.__wbg_ptr);
1444
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
1445
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
1446
+ deferred1_0 = r0;
1447
+ deferred1_1 = r1;
1448
+ return getStringFromWasm0(r0, r1);
1449
+ } finally {
1450
+ wasm.__wbindgen_add_to_stack_pointer(16);
1451
+ wasm.__wbindgen_export_3(deferred1_0, deferred1_1, 1);
1452
+ }
1453
+ }
1454
+ }
1455
+ if (Symbol.dispose) AeadResult.prototype[Symbol.dispose] = AeadResult.prototype.free;
1456
+
1457
+ exports.AeadResult = AeadResult;
1458
+
1459
+ const KemEncapResultFinalization = (typeof FinalizationRegistry === 'undefined')
1460
+ ? { register: () => {}, unregister: () => {} }
1461
+ : new FinalizationRegistry(ptr => wasm.__wbg_kemencapresult_free(ptr >>> 0, 1));
1462
+ /**
1463
+ * KEM encapsulation result (shared secret + ciphertext)
1464
+ */
1465
+ class KemEncapResult {
1466
+
1467
+ static __wrap(ptr) {
1468
+ ptr = ptr >>> 0;
1469
+ const obj = Object.create(KemEncapResult.prototype);
1470
+ obj.__wbg_ptr = ptr;
1471
+ KemEncapResultFinalization.register(obj, obj.__wbg_ptr, obj);
1472
+ return obj;
1473
+ }
1474
+
1475
+ __destroy_into_raw() {
1476
+ const ptr = this.__wbg_ptr;
1477
+ this.__wbg_ptr = 0;
1478
+ KemEncapResultFinalization.unregister(this);
1479
+ return ptr;
1480
+ }
1481
+
1482
+ free() {
1483
+ const ptr = this.__destroy_into_raw();
1484
+ wasm.__wbg_kemencapresult_free(ptr, 0);
1485
+ }
1486
+ /**
1487
+ * Get shared secret (32 bytes)
1488
+ * @returns {Uint8Array}
1489
+ */
1490
+ get sharedSecret() {
1491
+ try {
1492
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
1493
+ wasm.kemencapresult_sharedSecret(retptr, this.__wbg_ptr);
1494
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
1495
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
1496
+ var v1 = getArrayU8FromWasm0(r0, r1).slice();
1497
+ wasm.__wbindgen_export_3(r0, r1 * 1, 1);
1498
+ return v1;
1499
+ } finally {
1500
+ wasm.__wbindgen_add_to_stack_pointer(16);
1501
+ }
1502
+ }
1503
+ /**
1504
+ * Get ciphertext (to send to recipient)
1505
+ * @returns {Uint8Array}
1506
+ */
1507
+ get ciphertext() {
1508
+ try {
1509
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
1510
+ wasm.kemencapresult_ciphertext(retptr, this.__wbg_ptr);
1511
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
1512
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
1513
+ var v1 = getArrayU8FromWasm0(r0, r1).slice();
1514
+ wasm.__wbindgen_export_3(r0, r1 * 1, 1);
1515
+ return v1;
1516
+ } finally {
1517
+ wasm.__wbindgen_add_to_stack_pointer(16);
1518
+ }
1519
+ }
1520
+ /**
1521
+ * Get ciphertext as base64url
1522
+ * @returns {string}
1523
+ */
1524
+ ciphertextBase64() {
1525
+ let deferred1_0;
1526
+ let deferred1_1;
1527
+ try {
1528
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
1529
+ wasm.kemencapresult_ciphertextBase64(retptr, this.__wbg_ptr);
1530
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
1531
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
1532
+ deferred1_0 = r0;
1533
+ deferred1_1 = r1;
1534
+ return getStringFromWasm0(r0, r1);
1535
+ } finally {
1536
+ wasm.__wbindgen_add_to_stack_pointer(16);
1537
+ wasm.__wbindgen_export_3(deferred1_0, deferred1_1, 1);
1538
+ }
1539
+ }
1540
+ }
1541
+ if (Symbol.dispose) KemEncapResult.prototype[Symbol.dispose] = KemEncapResult.prototype.free;
1542
+
1543
+ exports.KemEncapResult = KemEncapResult;
1544
+
1545
+ const KemKeypairFinalization = (typeof FinalizationRegistry === 'undefined')
1546
+ ? { register: () => {}, unregister: () => {} }
1547
+ : new FinalizationRegistry(ptr => wasm.__wbg_kemkeypair_free(ptr >>> 0, 1));
1548
+ /**
1549
+ * ML-KEM-768 keypair
1550
+ */
1551
+ class KemKeypair {
1552
+
1553
+ static __wrap(ptr) {
1554
+ ptr = ptr >>> 0;
1555
+ const obj = Object.create(KemKeypair.prototype);
1556
+ obj.__wbg_ptr = ptr;
1557
+ KemKeypairFinalization.register(obj, obj.__wbg_ptr, obj);
1558
+ return obj;
1559
+ }
1560
+
1561
+ __destroy_into_raw() {
1562
+ const ptr = this.__wbg_ptr;
1563
+ this.__wbg_ptr = 0;
1564
+ KemKeypairFinalization.unregister(this);
1565
+ return ptr;
1566
+ }
1567
+
1568
+ free() {
1569
+ const ptr = this.__destroy_into_raw();
1570
+ wasm.__wbg_kemkeypair_free(ptr, 0);
1571
+ }
1572
+ /**
1573
+ * Get public key bytes
1574
+ * @returns {Uint8Array}
1575
+ */
1576
+ get publicKey() {
1577
+ try {
1578
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
1579
+ wasm.kemkeypair_publicKey(retptr, this.__wbg_ptr);
1580
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
1581
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
1582
+ var v1 = getArrayU8FromWasm0(r0, r1).slice();
1583
+ wasm.__wbindgen_export_3(r0, r1 * 1, 1);
1584
+ return v1;
1585
+ } finally {
1586
+ wasm.__wbindgen_add_to_stack_pointer(16);
1587
+ }
1588
+ }
1589
+ /**
1590
+ * Get secret key bytes
1591
+ * @returns {Uint8Array}
1592
+ */
1593
+ get secretKey() {
1594
+ try {
1595
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
1596
+ wasm.kemkeypair_secretKey(retptr, this.__wbg_ptr);
1597
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
1598
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
1599
+ var v1 = getArrayU8FromWasm0(r0, r1).slice();
1600
+ wasm.__wbindgen_export_3(r0, r1 * 1, 1);
1601
+ return v1;
1602
+ } finally {
1603
+ wasm.__wbindgen_add_to_stack_pointer(16);
1604
+ }
1605
+ }
1606
+ /**
1607
+ * Get public key as base64url
1608
+ * @returns {string}
1609
+ */
1610
+ publicKeyBase64() {
1611
+ let deferred1_0;
1612
+ let deferred1_1;
1613
+ try {
1614
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
1615
+ wasm.kemkeypair_publicKeyBase64(retptr, this.__wbg_ptr);
1616
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
1617
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
1618
+ deferred1_0 = r0;
1619
+ deferred1_1 = r1;
1620
+ return getStringFromWasm0(r0, r1);
1621
+ } finally {
1622
+ wasm.__wbindgen_add_to_stack_pointer(16);
1623
+ wasm.__wbindgen_export_3(deferred1_0, deferred1_1, 1);
1624
+ }
1625
+ }
1626
+ /**
1627
+ * Get secret key as base64url
1628
+ * @returns {string}
1629
+ */
1630
+ secretKeyBase64() {
1631
+ let deferred1_0;
1632
+ let deferred1_1;
1633
+ try {
1634
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
1635
+ wasm.kemkeypair_secretKeyBase64(retptr, this.__wbg_ptr);
1636
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
1637
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
1638
+ deferred1_0 = r0;
1639
+ deferred1_1 = r1;
1640
+ return getStringFromWasm0(r0, r1);
1641
+ } finally {
1642
+ wasm.__wbindgen_add_to_stack_pointer(16);
1643
+ wasm.__wbindgen_export_3(deferred1_0, deferred1_1, 1);
1644
+ }
1645
+ }
1646
+ }
1647
+ if (Symbol.dispose) KemKeypair.prototype[Symbol.dispose] = KemKeypair.prototype.free;
1648
+
1649
+ exports.KemKeypair = KemKeypair;
1650
+
1651
+ const SecretShareFinalization = (typeof FinalizationRegistry === 'undefined')
1652
+ ? { register: () => {}, unregister: () => {} }
1653
+ : new FinalizationRegistry(ptr => wasm.__wbg_secretshare_free(ptr >>> 0, 1));
1654
+ /**
1655
+ * A Shamir secret share
1656
+ */
1657
+ class SecretShare {
1658
+
1659
+ static __wrap(ptr) {
1660
+ ptr = ptr >>> 0;
1661
+ const obj = Object.create(SecretShare.prototype);
1662
+ obj.__wbg_ptr = ptr;
1663
+ SecretShareFinalization.register(obj, obj.__wbg_ptr, obj);
1664
+ return obj;
1665
+ }
1666
+
1667
+ __destroy_into_raw() {
1668
+ const ptr = this.__wbg_ptr;
1669
+ this.__wbg_ptr = 0;
1670
+ SecretShareFinalization.unregister(this);
1671
+ return ptr;
1672
+ }
1673
+
1674
+ free() {
1675
+ const ptr = this.__destroy_into_raw();
1676
+ wasm.__wbg_secretshare_free(ptr, 0);
1677
+ }
1678
+ /**
1679
+ * Get share identifier
1680
+ * @returns {number}
1681
+ */
1682
+ get identifier() {
1683
+ const ret = wasm.secretshare_identifier(this.__wbg_ptr);
1684
+ return ret;
1685
+ }
1686
+ /**
1687
+ * Get share value as bytes
1688
+ * @returns {Uint8Array}
1689
+ */
1690
+ get value() {
1691
+ try {
1692
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
1693
+ wasm.secretshare_value(retptr, this.__wbg_ptr);
1694
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
1695
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
1696
+ var v1 = getArrayU8FromWasm0(r0, r1).slice();
1697
+ wasm.__wbindgen_export_3(r0, r1 * 1, 1);
1698
+ return v1;
1699
+ } finally {
1700
+ wasm.__wbindgen_add_to_stack_pointer(16);
1701
+ }
1702
+ }
1703
+ /**
1704
+ * Serialize share to JSON
1705
+ * @returns {string}
1706
+ */
1707
+ toJson() {
1708
+ let deferred2_0;
1709
+ let deferred2_1;
1710
+ try {
1711
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
1712
+ wasm.secretshare_toJson(retptr, this.__wbg_ptr);
1713
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
1714
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
1715
+ var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
1716
+ var r3 = getDataViewMemory0().getInt32(retptr + 4 * 3, true);
1717
+ var ptr1 = r0;
1718
+ var len1 = r1;
1719
+ if (r3) {
1720
+ ptr1 = 0; len1 = 0;
1721
+ throw takeObject(r2);
1722
+ }
1723
+ deferred2_0 = ptr1;
1724
+ deferred2_1 = len1;
1725
+ return getStringFromWasm0(ptr1, len1);
1726
+ } finally {
1727
+ wasm.__wbindgen_add_to_stack_pointer(16);
1728
+ wasm.__wbindgen_export_3(deferred2_0, deferred2_1, 1);
1729
+ }
1730
+ }
1731
+ /**
1732
+ * Deserialize share from JSON
1733
+ * @param {string} json
1734
+ * @returns {SecretShare}
1735
+ */
1736
+ static fromJson(json) {
1737
+ try {
1738
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
1739
+ const ptr0 = passStringToWasm0(json, wasm.__wbindgen_export_0, wasm.__wbindgen_export_1);
1740
+ const len0 = WASM_VECTOR_LEN;
1741
+ wasm.secretshare_fromJson(retptr, ptr0, len0);
1742
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
1743
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
1744
+ var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
1745
+ if (r2) {
1746
+ throw takeObject(r1);
1747
+ }
1748
+ return SecretShare.__wrap(r0);
1749
+ } finally {
1750
+ wasm.__wbindgen_add_to_stack_pointer(16);
1751
+ }
1752
+ }
1753
+ /**
1754
+ * Get share as base64url
1755
+ * @returns {string}
1756
+ */
1757
+ toBase64() {
1758
+ let deferred1_0;
1759
+ let deferred1_1;
1760
+ try {
1761
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
1762
+ wasm.secretshare_toBase64(retptr, this.__wbg_ptr);
1763
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
1764
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
1765
+ deferred1_0 = r0;
1766
+ deferred1_1 = r1;
1767
+ return getStringFromWasm0(r0, r1);
1768
+ } finally {
1769
+ wasm.__wbindgen_add_to_stack_pointer(16);
1770
+ wasm.__wbindgen_export_3(deferred1_0, deferred1_1, 1);
1771
+ }
1772
+ }
1773
+ /**
1774
+ * Deserialize share from base64url
1775
+ * @param {string} b64
1776
+ * @returns {SecretShare}
1777
+ */
1778
+ static fromBase64(b64) {
1779
+ try {
1780
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
1781
+ const ptr0 = passStringToWasm0(b64, wasm.__wbindgen_export_0, wasm.__wbindgen_export_1);
1782
+ const len0 = WASM_VECTOR_LEN;
1783
+ wasm.secretshare_fromBase64(retptr, ptr0, len0);
1784
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
1785
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
1786
+ var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
1787
+ if (r2) {
1788
+ throw takeObject(r1);
1789
+ }
1790
+ return SecretShare.__wrap(r0);
1791
+ } finally {
1792
+ wasm.__wbindgen_add_to_stack_pointer(16);
1793
+ }
1794
+ }
1795
+ }
1796
+ if (Symbol.dispose) SecretShare.prototype[Symbol.dispose] = SecretShare.prototype.free;
1797
+
1798
+ exports.SecretShare = SecretShare;
1799
+
1800
+ exports.__wbg_Error_e17e777aac105295 = function(arg0, arg1) {
1801
+ const ret = Error(getStringFromWasm0(arg0, arg1));
1802
+ return addHeapObject(ret);
1803
+ };
1804
+
1805
+ exports.__wbg_Number_998bea33bd87c3e0 = function(arg0) {
1806
+ const ret = Number(getObject(arg0));
1807
+ return ret;
1808
+ };
1809
+
1810
+ exports.__wbg_String_8f0eb39a4a4c2f66 = function(arg0, arg1) {
1811
+ const ret = String(getObject(arg1));
1812
+ const ptr1 = passStringToWasm0(ret, wasm.__wbindgen_export_0, wasm.__wbindgen_export_1);
1813
+ const len1 = WASM_VECTOR_LEN;
1814
+ getDataViewMemory0().setInt32(arg0 + 4 * 1, len1, true);
1815
+ getDataViewMemory0().setInt32(arg0 + 4 * 0, ptr1, true);
1816
+ };
1817
+
1818
+ exports.__wbg_call_13410aac570ffff7 = function() { return handleError(function (arg0, arg1) {
1819
+ const ret = getObject(arg0).call(getObject(arg1));
1820
+ return addHeapObject(ret);
1821
+ }, arguments) };
1822
+
1823
+ exports.__wbg_call_a5400b25a865cfd8 = function() { return handleError(function (arg0, arg1, arg2) {
1824
+ const ret = getObject(arg0).call(getObject(arg1), getObject(arg2));
1825
+ return addHeapObject(ret);
1826
+ }, arguments) };
1827
+
1828
+ exports.__wbg_crypto_574e78ad8b13b65f = function(arg0) {
1829
+ const ret = getObject(arg0).crypto;
1830
+ return addHeapObject(ret);
1831
+ };
1832
+
1833
+ exports.__wbg_done_75ed0ee6dd243d9d = function(arg0) {
1834
+ const ret = getObject(arg0).done;
1835
+ return ret;
1836
+ };
1837
+
1838
+ exports.__wbg_error_7534b8e9a36f1ab4 = function(arg0, arg1) {
1839
+ let deferred0_0;
1840
+ let deferred0_1;
1841
+ try {
1842
+ deferred0_0 = arg0;
1843
+ deferred0_1 = arg1;
1844
+ console.error(getStringFromWasm0(arg0, arg1));
1845
+ } finally {
1846
+ wasm.__wbindgen_export_3(deferred0_0, deferred0_1, 1);
1847
+ }
1848
+ };
1849
+
1850
+ exports.__wbg_getRandomValues_b8f5dbd5f3995a9e = function() { return handleError(function (arg0, arg1) {
1851
+ getObject(arg0).getRandomValues(getObject(arg1));
1852
+ }, arguments) };
1853
+
1854
+ exports.__wbg_get_0da715ceaecea5c8 = function(arg0, arg1) {
1855
+ const ret = getObject(arg0)[arg1 >>> 0];
1856
+ return addHeapObject(ret);
1857
+ };
1858
+
1859
+ exports.__wbg_get_458e874b43b18b25 = function() { return handleError(function (arg0, arg1) {
1860
+ const ret = Reflect.get(getObject(arg0), getObject(arg1));
1861
+ return addHeapObject(ret);
1862
+ }, arguments) };
1863
+
1864
+ exports.__wbg_getwithrefkey_1dc361bd10053bfe = function(arg0, arg1) {
1865
+ const ret = getObject(arg0)[getObject(arg1)];
1866
+ return addHeapObject(ret);
1867
+ };
1868
+
1869
+ exports.__wbg_instanceof_ArrayBuffer_67f3012529f6a2dd = function(arg0) {
1870
+ let result;
1871
+ try {
1872
+ result = getObject(arg0) instanceof ArrayBuffer;
1873
+ } catch (_) {
1874
+ result = false;
1875
+ }
1876
+ const ret = result;
1877
+ return ret;
1878
+ };
1879
+
1880
+ exports.__wbg_instanceof_Uint8Array_9a8378d955933db7 = function(arg0) {
1881
+ let result;
1882
+ try {
1883
+ result = getObject(arg0) instanceof Uint8Array;
1884
+ } catch (_) {
1885
+ result = false;
1886
+ }
1887
+ const ret = result;
1888
+ return ret;
1889
+ };
1890
+
1891
+ exports.__wbg_isArray_030cce220591fb41 = function(arg0) {
1892
+ const ret = Array.isArray(getObject(arg0));
1893
+ return ret;
1894
+ };
1895
+
1896
+ exports.__wbg_isSafeInteger_1c0d1af5542e102a = function(arg0) {
1897
+ const ret = Number.isSafeInteger(getObject(arg0));
1898
+ return ret;
1899
+ };
1900
+
1901
+ exports.__wbg_iterator_f370b34483c71a1c = function() {
1902
+ const ret = Symbol.iterator;
1903
+ return addHeapObject(ret);
1904
+ };
1905
+
1906
+ exports.__wbg_length_186546c51cd61acd = function(arg0) {
1907
+ const ret = getObject(arg0).length;
1908
+ return ret;
1909
+ };
1910
+
1911
+ exports.__wbg_length_6bb7e81f9d7713e4 = function(arg0) {
1912
+ const ret = getObject(arg0).length;
1913
+ return ret;
1914
+ };
1915
+
1916
+ exports.__wbg_msCrypto_a61aeb35a24c1329 = function(arg0) {
1917
+ const ret = getObject(arg0).msCrypto;
1918
+ return addHeapObject(ret);
1919
+ };
1920
+
1921
+ exports.__wbg_new_19c25a3f2fa63a02 = function() {
1922
+ const ret = new Object();
1923
+ return addHeapObject(ret);
1924
+ };
1925
+
1926
+ exports.__wbg_new_1f3a344cf3123716 = function() {
1927
+ const ret = new Array();
1928
+ return addHeapObject(ret);
1929
+ };
1930
+
1931
+ exports.__wbg_new_638ebfaedbf32a5e = function(arg0) {
1932
+ const ret = new Uint8Array(getObject(arg0));
1933
+ return addHeapObject(ret);
1934
+ };
1935
+
1936
+ exports.__wbg_new_8a6f238a6ece86ea = function() {
1937
+ const ret = new Error();
1938
+ return addHeapObject(ret);
1939
+ };
1940
+
1941
+ exports.__wbg_newnoargs_254190557c45b4ec = function(arg0, arg1) {
1942
+ const ret = new Function(getStringFromWasm0(arg0, arg1));
1943
+ return addHeapObject(ret);
1944
+ };
1945
+
1946
+ exports.__wbg_newwithlength_a167dcc7aaa3ba77 = function(arg0) {
1947
+ const ret = new Uint8Array(arg0 >>> 0);
1948
+ return addHeapObject(ret);
1949
+ };
1950
+
1951
+ exports.__wbg_next_5b3530e612fde77d = function(arg0) {
1952
+ const ret = getObject(arg0).next;
1953
+ return addHeapObject(ret);
1954
+ };
1955
+
1956
+ exports.__wbg_next_692e82279131b03c = function() { return handleError(function (arg0) {
1957
+ const ret = getObject(arg0).next();
1958
+ return addHeapObject(ret);
1959
+ }, arguments) };
1960
+
1961
+ exports.__wbg_node_905d3e251edff8a2 = function(arg0) {
1962
+ const ret = getObject(arg0).node;
1963
+ return addHeapObject(ret);
1964
+ };
1965
+
1966
+ exports.__wbg_process_dc0fbacc7c1c06f7 = function(arg0) {
1967
+ const ret = getObject(arg0).process;
1968
+ return addHeapObject(ret);
1969
+ };
1970
+
1971
+ exports.__wbg_prototypesetcall_3d4a26c1ed734349 = function(arg0, arg1, arg2) {
1972
+ Uint8Array.prototype.set.call(getArrayU8FromWasm0(arg0, arg1), getObject(arg2));
1973
+ };
1974
+
1975
+ exports.__wbg_randomFillSync_ac0988aba3254290 = function() { return handleError(function (arg0, arg1) {
1976
+ getObject(arg0).randomFillSync(takeObject(arg1));
1977
+ }, arguments) };
1978
+
1979
+ exports.__wbg_require_60cc747a6bc5215a = function() { return handleError(function () {
1980
+ const ret = module.require;
1981
+ return addHeapObject(ret);
1982
+ }, arguments) };
1983
+
1984
+ exports.__wbg_set_3f1d0b984ed272ed = function(arg0, arg1, arg2) {
1985
+ getObject(arg0)[takeObject(arg1)] = takeObject(arg2);
1986
+ };
1987
+
1988
+ exports.__wbg_set_90f6c0f7bd8c0415 = function(arg0, arg1, arg2) {
1989
+ getObject(arg0)[arg1 >>> 0] = takeObject(arg2);
1990
+ };
1991
+
1992
+ exports.__wbg_stack_0ed75d68575b0f3c = function(arg0, arg1) {
1993
+ const ret = getObject(arg1).stack;
1994
+ const ptr1 = passStringToWasm0(ret, wasm.__wbindgen_export_0, wasm.__wbindgen_export_1);
1995
+ const len1 = WASM_VECTOR_LEN;
1996
+ getDataViewMemory0().setInt32(arg0 + 4 * 1, len1, true);
1997
+ getDataViewMemory0().setInt32(arg0 + 4 * 0, ptr1, true);
1998
+ };
1999
+
2000
+ exports.__wbg_static_accessor_GLOBAL_8921f820c2ce3f12 = function() {
2001
+ const ret = typeof global === 'undefined' ? null : global;
2002
+ return isLikeNone(ret) ? 0 : addHeapObject(ret);
2003
+ };
2004
+
2005
+ exports.__wbg_static_accessor_GLOBAL_THIS_f0a4409105898184 = function() {
2006
+ const ret = typeof globalThis === 'undefined' ? null : globalThis;
2007
+ return isLikeNone(ret) ? 0 : addHeapObject(ret);
2008
+ };
2009
+
2010
+ exports.__wbg_static_accessor_SELF_995b214ae681ff99 = function() {
2011
+ const ret = typeof self === 'undefined' ? null : self;
2012
+ return isLikeNone(ret) ? 0 : addHeapObject(ret);
2013
+ };
2014
+
2015
+ exports.__wbg_static_accessor_WINDOW_cde3890479c675ea = function() {
2016
+ const ret = typeof window === 'undefined' ? null : window;
2017
+ return isLikeNone(ret) ? 0 : addHeapObject(ret);
2018
+ };
2019
+
2020
+ exports.__wbg_subarray_70fd07feefe14294 = function(arg0, arg1, arg2) {
2021
+ const ret = getObject(arg0).subarray(arg1 >>> 0, arg2 >>> 0);
2022
+ return addHeapObject(ret);
2023
+ };
2024
+
2025
+ exports.__wbg_value_dd9372230531eade = function(arg0) {
2026
+ const ret = getObject(arg0).value;
2027
+ return addHeapObject(ret);
2028
+ };
2029
+
2030
+ exports.__wbg_versions_c01dfd4722a88165 = function(arg0) {
2031
+ const ret = getObject(arg0).versions;
2032
+ return addHeapObject(ret);
2033
+ };
2034
+
2035
+ exports.__wbg_wbindgenbooleanget_3fe6f642c7d97746 = function(arg0) {
2036
+ const v = getObject(arg0);
2037
+ const ret = typeof(v) === 'boolean' ? v : undefined;
2038
+ return isLikeNone(ret) ? 0xFFFFFF : ret ? 1 : 0;
2039
+ };
2040
+
2041
+ exports.__wbg_wbindgencopytotypedarray_d105febdb9374ca3 = function(arg0, arg1, arg2) {
2042
+ new Uint8Array(getObject(arg2).buffer, getObject(arg2).byteOffset, getObject(arg2).byteLength).set(getArrayU8FromWasm0(arg0, arg1));
2043
+ };
2044
+
2045
+ exports.__wbg_wbindgendebugstring_99ef257a3ddda34d = function(arg0, arg1) {
2046
+ const ret = debugString(getObject(arg1));
2047
+ const ptr1 = passStringToWasm0(ret, wasm.__wbindgen_export_0, wasm.__wbindgen_export_1);
2048
+ const len1 = WASM_VECTOR_LEN;
2049
+ getDataViewMemory0().setInt32(arg0 + 4 * 1, len1, true);
2050
+ getDataViewMemory0().setInt32(arg0 + 4 * 0, ptr1, true);
2051
+ };
2052
+
2053
+ exports.__wbg_wbindgenin_d7a1ee10933d2d55 = function(arg0, arg1) {
2054
+ const ret = getObject(arg0) in getObject(arg1);
2055
+ return ret;
2056
+ };
2057
+
2058
+ exports.__wbg_wbindgenisfunction_8cee7dce3725ae74 = function(arg0) {
2059
+ const ret = typeof(getObject(arg0)) === 'function';
2060
+ return ret;
2061
+ };
2062
+
2063
+ exports.__wbg_wbindgenisobject_307a53c6bd97fbf8 = function(arg0) {
2064
+ const val = getObject(arg0);
2065
+ const ret = typeof(val) === 'object' && val !== null;
2066
+ return ret;
2067
+ };
2068
+
2069
+ exports.__wbg_wbindgenisstring_d4fa939789f003b0 = function(arg0) {
2070
+ const ret = typeof(getObject(arg0)) === 'string';
2071
+ return ret;
2072
+ };
2073
+
2074
+ exports.__wbg_wbindgenisundefined_c4b71d073b92f3c5 = function(arg0) {
2075
+ const ret = getObject(arg0) === undefined;
2076
+ return ret;
2077
+ };
2078
+
2079
+ exports.__wbg_wbindgenjsvallooseeq_9bec8c9be826bed1 = function(arg0, arg1) {
2080
+ const ret = getObject(arg0) == getObject(arg1);
2081
+ return ret;
2082
+ };
2083
+
2084
+ exports.__wbg_wbindgennumberget_f74b4c7525ac05cb = function(arg0, arg1) {
2085
+ const obj = getObject(arg1);
2086
+ const ret = typeof(obj) === 'number' ? obj : undefined;
2087
+ getDataViewMemory0().setFloat64(arg0 + 8 * 1, isLikeNone(ret) ? 0 : ret, true);
2088
+ getDataViewMemory0().setInt32(arg0 + 4 * 0, !isLikeNone(ret), true);
2089
+ };
2090
+
2091
+ exports.__wbg_wbindgenstringget_0f16a6ddddef376f = function(arg0, arg1) {
2092
+ const obj = getObject(arg1);
2093
+ const ret = typeof(obj) === 'string' ? obj : undefined;
2094
+ var ptr1 = isLikeNone(ret) ? 0 : passStringToWasm0(ret, wasm.__wbindgen_export_0, wasm.__wbindgen_export_1);
2095
+ var len1 = WASM_VECTOR_LEN;
2096
+ getDataViewMemory0().setInt32(arg0 + 4 * 1, len1, true);
2097
+ getDataViewMemory0().setInt32(arg0 + 4 * 0, ptr1, true);
2098
+ };
2099
+
2100
+ exports.__wbg_wbindgenthrow_451ec1a8469d7eb6 = function(arg0, arg1) {
2101
+ throw new Error(getStringFromWasm0(arg0, arg1));
2102
+ };
2103
+
2104
+ exports.__wbindgen_cast_2241b6af4c4b2941 = function(arg0, arg1) {
2105
+ // Cast intrinsic for `Ref(String) -> Externref`.
2106
+ const ret = getStringFromWasm0(arg0, arg1);
2107
+ return addHeapObject(ret);
2108
+ };
2109
+
2110
+ exports.__wbindgen_cast_cb9088102bce6b30 = function(arg0, arg1) {
2111
+ // Cast intrinsic for `Ref(Slice(U8)) -> NamedExternref("Uint8Array")`.
2112
+ const ret = getArrayU8FromWasm0(arg0, arg1);
2113
+ return addHeapObject(ret);
2114
+ };
2115
+
2116
+ exports.__wbindgen_cast_d6cd19b81560fd6e = function(arg0) {
2117
+ // Cast intrinsic for `F64 -> Externref`.
2118
+ const ret = arg0;
2119
+ return addHeapObject(ret);
2120
+ };
2121
+
2122
+ exports.__wbindgen_object_clone_ref = function(arg0) {
2123
+ const ret = getObject(arg0);
2124
+ return addHeapObject(ret);
2125
+ };
2126
+
2127
+ exports.__wbindgen_object_drop_ref = function(arg0) {
2128
+ takeObject(arg0);
2129
+ };
2130
+
2131
+ const wasmPath = `${__dirname}/vault_crypto_bg.wasm`;
2132
+ const wasmBytes = require('fs').readFileSync(wasmPath);
2133
+ const wasmModule = new WebAssembly.Module(wasmBytes);
2134
+ const wasm = exports.__wasm = new WebAssembly.Instance(wasmModule, imports).exports;
2135
+
2136
+ wasm.__wbindgen_start();
2137
+