tkms 0.13.1 → 0.13.2

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.
package/kms_lib.d.ts CHANGED
@@ -1,5 +1,6 @@
1
1
  /* tslint:disable */
2
2
  /* eslint-disable */
3
+ export function public_sig_key_to_u8vec(pk: PublicSigKey): Uint8Array;
3
4
  /**
4
5
  * Instantiate a new client.
5
6
  *
@@ -13,11 +14,9 @@
13
14
  * The "default" parameter choice is selected if no matching string is found.
14
15
  */
15
16
  export function new_client(server_addrs: ServerIdAddr[], client_address_hex: string, fhe_parameter: string): Client;
16
- /**
17
- * Create a new [ServerIdAddr] structure that holds an ID and an address
18
- * which must be a valid EIP-55 address, notably prefixed with "0x".
19
- */
20
- export function new_server_id_addr(id: number, addr: string): ServerIdAddr;
17
+ export function ml_kem_pke_get_pk(sk: PrivateEncKeyMlKem512): PublicEncKeyMlKem512;
18
+ export function ml_kem_pke_pk_to_u8vec(pk: PublicEncKeyMlKem512): Uint8Array;
19
+ export function u8vec_to_ml_kem_pke_pk(v: Uint8Array): PublicEncKeyMlKem512;
21
20
  /**
22
21
  * Process the user_decryption response from Rust objects.
23
22
  * Consider using [process_user_decryption_resp_from_js]
@@ -42,9 +41,8 @@ export function new_server_id_addr(id: number, addr: string): ServerIdAddr;
42
41
  * It is insecure if `verify = false`!
43
42
  */
44
43
  export function process_user_decryption_resp(client: Client, request: ParsedUserDecryptionRequest | null | undefined, eip712_domain: Eip712DomainMsg | null | undefined, agg_resp: UserDecryptionResponse[], enc_pk: PublicEncKeyMlKem512, enc_sk: PrivateEncKeyMlKem512, verify: boolean): TypedPlaintext[];
45
- export function ml_kem_pke_keygen(): PrivateEncKeyMlKem512;
46
44
  export function ml_kem_pke_sk_len(): number;
47
- export function ml_kem_pke_pk_to_u8vec(pk: PublicEncKeyMlKem512): Uint8Array;
45
+ export function u8vec_to_private_sig_key(v: Uint8Array): PrivateSigKey;
48
46
  /**
49
47
  * Process the user_decryption response from JavaScript objects.
50
48
  * The returned result is a byte array representing a plaintext of any length,
@@ -107,29 +105,31 @@ export function ml_kem_pke_pk_to_u8vec(pk: PublicEncKeyMlKem512): Uint8Array;
107
105
  * It is insecure if `verify = false`!
108
106
  */
109
107
  export function process_user_decryption_resp_from_js(client: Client, request: any, eip712_domain: any, agg_resp: any, enc_pk: PublicEncKeyMlKem512, enc_sk: PrivateEncKeyMlKem512, verify: boolean): TypedPlaintext[];
108
+ export function get_client_address(client: Client): string;
109
+ export function get_client_secret_key(client: Client): PrivateSigKey | undefined;
110
+ export function get_server_addrs(client: Client): ServerIdAddr[];
111
+ export function private_sig_key_to_u8vec(sk: PrivateSigKey): Uint8Array;
110
112
  /**
111
113
  * This function is *not* used by relayer-sdk because the decryption
112
114
  * is handled by [process_user_decryption_resp].
113
115
  * It's just here for completeness and tests.
114
116
  */
115
117
  export function ml_kem_pke_decrypt(ct: Uint8Array, my_sk: PrivateEncKeyMlKem512): Uint8Array;
116
- export function get_client_secret_key(client: Client): PrivateSigKey | undefined;
118
+ /**
119
+ * Create a new [ServerIdAddr] structure that holds an ID and an address
120
+ * which must be a valid EIP-55 address, notably prefixed with "0x".
121
+ */
122
+ export function new_server_id_addr(id: number, addr: string): ServerIdAddr;
123
+ export function u8vec_to_ml_kem_pke_sk(v: Uint8Array): PrivateEncKeyMlKem512;
124
+ export function ml_kem_pke_keygen(): PrivateEncKeyMlKem512;
125
+ export function ml_kem_pke_sk_to_u8vec(sk: PrivateEncKeyMlKem512): Uint8Array;
117
126
  /**
118
127
  * This function is *not* used by relayer-sdk because the encryption
119
128
  * happens on the KMS side. It's just here for completeness and tests.
120
129
  */
121
130
  export function ml_kem_pke_encrypt(msg: Uint8Array, their_pk: PublicEncKeyMlKem512): Uint8Array;
122
- export function u8vec_to_private_sig_key(v: Uint8Array): PrivateSigKey;
123
- export function public_sig_key_to_u8vec(pk: PublicSigKey): Uint8Array;
124
- export function u8vec_to_ml_kem_pke_sk(v: Uint8Array): PrivateEncKeyMlKem512;
125
- export function ml_kem_pke_get_pk(sk: PrivateEncKeyMlKem512): PublicEncKeyMlKem512;
126
- export function ml_kem_pke_sk_to_u8vec(sk: PrivateEncKeyMlKem512): Uint8Array;
127
131
  export function ml_kem_pke_pk_len(): number;
128
- export function get_client_address(client: Client): string;
129
132
  export function u8vec_to_public_sig_key(v: Uint8Array): PublicSigKey;
130
- export function u8vec_to_ml_kem_pke_pk(v: Uint8Array): PublicEncKeyMlKem512;
131
- export function get_server_addrs(client: Client): ServerIdAddr[];
132
- export function private_sig_key_to_u8vec(sk: PrivateSigKey): Uint8Array;
133
133
  export class CiphertextHandle {
134
134
  private constructor();
135
135
  free(): void;
package/kms_lib.js CHANGED
@@ -167,6 +167,28 @@ function debugString(val) {
167
167
  return className;
168
168
  }
169
169
 
170
+ function _assertClass(instance, klass) {
171
+ if (!(instance instanceof klass)) {
172
+ throw new Error(`expected instance of ${klass.name}`);
173
+ }
174
+ }
175
+
176
+ function getArrayU8FromWasm0(ptr, len) {
177
+ ptr = ptr >>> 0;
178
+ return getUint8ArrayMemory0().subarray(ptr / 1, ptr / 1 + len);
179
+ }
180
+ /**
181
+ * @param {PublicSigKey} pk
182
+ * @returns {Uint8Array}
183
+ */
184
+ export function public_sig_key_to_u8vec(pk) {
185
+ _assertClass(pk, PublicSigKey);
186
+ const ret = wasm.public_sig_key_to_u8vec(pk.__wbg_ptr);
187
+ var v1 = getArrayU8FromWasm0(ret[0], ret[1]).slice();
188
+ wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);
189
+ return v1;
190
+ }
191
+
170
192
  function passArrayJsValueToWasm0(array, malloc) {
171
193
  const ptr = malloc(array.length * 4, 4) >>> 0;
172
194
  for (let i = 0; i < array.length; i++) {
@@ -213,26 +235,48 @@ export function new_client(server_addrs, client_address_hex, fhe_parameter) {
213
235
  }
214
236
 
215
237
  /**
216
- * Create a new [ServerIdAddr] structure that holds an ID and an address
217
- * which must be a valid EIP-55 address, notably prefixed with "0x".
218
- * @param {number} id
219
- * @param {string} addr
220
- * @returns {ServerIdAddr}
238
+ * @param {PrivateEncKeyMlKem512} sk
239
+ * @returns {PublicEncKeyMlKem512}
221
240
  */
222
- export function new_server_id_addr(id, addr) {
223
- const ptr0 = passStringToWasm0(addr, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
224
- const len0 = WASM_VECTOR_LEN;
225
- const ret = wasm.new_server_id_addr(id, ptr0, len0);
226
- if (ret[2]) {
227
- throw takeFromExternrefTable0(ret[1]);
241
+ export function ml_kem_pke_get_pk(sk) {
242
+ _assertClass(sk, PrivateEncKeyMlKem512);
243
+ const ret = wasm.ml_kem_pke_get_pk(sk.__wbg_ptr);
244
+ return PublicEncKeyMlKem512.__wrap(ret);
245
+ }
246
+
247
+ /**
248
+ * @param {PublicEncKeyMlKem512} pk
249
+ * @returns {Uint8Array}
250
+ */
251
+ export function ml_kem_pke_pk_to_u8vec(pk) {
252
+ _assertClass(pk, PublicEncKeyMlKem512);
253
+ const ret = wasm.ml_kem_pke_pk_to_u8vec(pk.__wbg_ptr);
254
+ if (ret[3]) {
255
+ throw takeFromExternrefTable0(ret[2]);
228
256
  }
229
- return ServerIdAddr.__wrap(ret[0]);
257
+ var v1 = getArrayU8FromWasm0(ret[0], ret[1]).slice();
258
+ wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);
259
+ return v1;
230
260
  }
231
261
 
232
- function _assertClass(instance, klass) {
233
- if (!(instance instanceof klass)) {
234
- throw new Error(`expected instance of ${klass.name}`);
262
+ function passArray8ToWasm0(arg, malloc) {
263
+ const ptr = malloc(arg.length * 1, 1) >>> 0;
264
+ getUint8ArrayMemory0().set(arg, ptr / 1);
265
+ WASM_VECTOR_LEN = arg.length;
266
+ return ptr;
267
+ }
268
+ /**
269
+ * @param {Uint8Array} v
270
+ * @returns {PublicEncKeyMlKem512}
271
+ */
272
+ export function u8vec_to_ml_kem_pke_pk(v) {
273
+ const ptr0 = passArray8ToWasm0(v, wasm.__wbindgen_malloc);
274
+ const len0 = WASM_VECTOR_LEN;
275
+ const ret = wasm.u8vec_to_ml_kem_pke_pk(ptr0, len0);
276
+ if (ret[2]) {
277
+ throw takeFromExternrefTable0(ret[1]);
235
278
  }
279
+ return PublicEncKeyMlKem512.__wrap(ret[0]);
236
280
  }
237
281
 
238
282
  function getArrayJsValueFromWasm0(ptr, len) {
@@ -301,14 +345,6 @@ export function process_user_decryption_resp(client, request, eip712_domain, agg
301
345
  return v4;
302
346
  }
303
347
 
304
- /**
305
- * @returns {PrivateEncKeyMlKem512}
306
- */
307
- export function ml_kem_pke_keygen() {
308
- const ret = wasm.ml_kem_pke_keygen();
309
- return PrivateEncKeyMlKem512.__wrap(ret);
310
- }
311
-
312
348
  /**
313
349
  * @returns {number}
314
350
  */
@@ -317,23 +353,18 @@ export function ml_kem_pke_sk_len() {
317
353
  return ret >>> 0;
318
354
  }
319
355
 
320
- function getArrayU8FromWasm0(ptr, len) {
321
- ptr = ptr >>> 0;
322
- return getUint8ArrayMemory0().subarray(ptr / 1, ptr / 1 + len);
323
- }
324
356
  /**
325
- * @param {PublicEncKeyMlKem512} pk
326
- * @returns {Uint8Array}
357
+ * @param {Uint8Array} v
358
+ * @returns {PrivateSigKey}
327
359
  */
328
- export function ml_kem_pke_pk_to_u8vec(pk) {
329
- _assertClass(pk, PublicEncKeyMlKem512);
330
- const ret = wasm.ml_kem_pke_pk_to_u8vec(pk.__wbg_ptr);
331
- if (ret[3]) {
332
- throw takeFromExternrefTable0(ret[2]);
360
+ export function u8vec_to_private_sig_key(v) {
361
+ const ptr0 = passArray8ToWasm0(v, wasm.__wbindgen_malloc);
362
+ const len0 = WASM_VECTOR_LEN;
363
+ const ret = wasm.u8vec_to_private_sig_key(ptr0, len0);
364
+ if (ret[2]) {
365
+ throw takeFromExternrefTable0(ret[1]);
333
366
  }
334
- var v1 = getArrayU8FromWasm0(ret[0], ret[1]).slice();
335
- wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);
336
- return v1;
367
+ return PrivateSigKey.__wrap(ret[0]);
337
368
  }
338
369
 
339
370
  /**
@@ -418,28 +449,22 @@ export function process_user_decryption_resp_from_js(client, request, eip712_dom
418
449
  return v1;
419
450
  }
420
451
 
421
- function passArray8ToWasm0(arg, malloc) {
422
- const ptr = malloc(arg.length * 1, 1) >>> 0;
423
- getUint8ArrayMemory0().set(arg, ptr / 1);
424
- WASM_VECTOR_LEN = arg.length;
425
- return ptr;
426
- }
427
452
  /**
428
- * This function is *not* used by relayer-sdk because the decryption
429
- * is handled by [process_user_decryption_resp].
430
- * It's just here for completeness and tests.
431
- * @param {Uint8Array} ct
432
- * @param {PrivateEncKeyMlKem512} my_sk
433
- * @returns {Uint8Array}
453
+ * @param {Client} client
454
+ * @returns {string}
434
455
  */
435
- export function ml_kem_pke_decrypt(ct, my_sk) {
436
- const ptr0 = passArray8ToWasm0(ct, wasm.__wbindgen_malloc);
437
- const len0 = WASM_VECTOR_LEN;
438
- _assertClass(my_sk, PrivateEncKeyMlKem512);
439
- const ret = wasm.ml_kem_pke_decrypt(ptr0, len0, my_sk.__wbg_ptr);
440
- var v2 = getArrayU8FromWasm0(ret[0], ret[1]).slice();
441
- wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);
442
- return v2;
456
+ export function get_client_address(client) {
457
+ let deferred1_0;
458
+ let deferred1_1;
459
+ try {
460
+ _assertClass(client, Client);
461
+ const ret = wasm.get_client_address(client.__wbg_ptr);
462
+ deferred1_0 = ret[0];
463
+ deferred1_1 = ret[1];
464
+ return getStringFromWasm0(ret[0], ret[1]);
465
+ } finally {
466
+ wasm.__wbindgen_free(deferred1_0, deferred1_1, 1);
467
+ }
443
468
  }
444
469
 
445
470
  /**
@@ -453,46 +478,65 @@ export function get_client_secret_key(client) {
453
478
  }
454
479
 
455
480
  /**
456
- * This function is *not* used by relayer-sdk because the encryption
457
- * happens on the KMS side. It's just here for completeness and tests.
458
- * @param {Uint8Array} msg
459
- * @param {PublicEncKeyMlKem512} their_pk
481
+ * @param {Client} client
482
+ * @returns {ServerIdAddr[]}
483
+ */
484
+ export function get_server_addrs(client) {
485
+ _assertClass(client, Client);
486
+ const ret = wasm.get_server_addrs(client.__wbg_ptr);
487
+ var v1 = getArrayJsValueFromWasm0(ret[0], ret[1]).slice();
488
+ wasm.__wbindgen_free(ret[0], ret[1] * 4, 4);
489
+ return v1;
490
+ }
491
+
492
+ /**
493
+ * @param {PrivateSigKey} sk
460
494
  * @returns {Uint8Array}
461
495
  */
462
- export function ml_kem_pke_encrypt(msg, their_pk) {
463
- const ptr0 = passArray8ToWasm0(msg, wasm.__wbindgen_malloc);
496
+ export function private_sig_key_to_u8vec(sk) {
497
+ _assertClass(sk, PrivateSigKey);
498
+ const ret = wasm.private_sig_key_to_u8vec(sk.__wbg_ptr);
499
+ if (ret[3]) {
500
+ throw takeFromExternrefTable0(ret[2]);
501
+ }
502
+ var v1 = getArrayU8FromWasm0(ret[0], ret[1]).slice();
503
+ wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);
504
+ return v1;
505
+ }
506
+
507
+ /**
508
+ * This function is *not* used by relayer-sdk because the decryption
509
+ * is handled by [process_user_decryption_resp].
510
+ * It's just here for completeness and tests.
511
+ * @param {Uint8Array} ct
512
+ * @param {PrivateEncKeyMlKem512} my_sk
513
+ * @returns {Uint8Array}
514
+ */
515
+ export function ml_kem_pke_decrypt(ct, my_sk) {
516
+ const ptr0 = passArray8ToWasm0(ct, wasm.__wbindgen_malloc);
464
517
  const len0 = WASM_VECTOR_LEN;
465
- _assertClass(their_pk, PublicEncKeyMlKem512);
466
- const ret = wasm.ml_kem_pke_encrypt(ptr0, len0, their_pk.__wbg_ptr);
518
+ _assertClass(my_sk, PrivateEncKeyMlKem512);
519
+ const ret = wasm.ml_kem_pke_decrypt(ptr0, len0, my_sk.__wbg_ptr);
467
520
  var v2 = getArrayU8FromWasm0(ret[0], ret[1]).slice();
468
521
  wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);
469
522
  return v2;
470
523
  }
471
524
 
472
525
  /**
473
- * @param {Uint8Array} v
474
- * @returns {PrivateSigKey}
526
+ * Create a new [ServerIdAddr] structure that holds an ID and an address
527
+ * which must be a valid EIP-55 address, notably prefixed with "0x".
528
+ * @param {number} id
529
+ * @param {string} addr
530
+ * @returns {ServerIdAddr}
475
531
  */
476
- export function u8vec_to_private_sig_key(v) {
477
- const ptr0 = passArray8ToWasm0(v, wasm.__wbindgen_malloc);
532
+ export function new_server_id_addr(id, addr) {
533
+ const ptr0 = passStringToWasm0(addr, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
478
534
  const len0 = WASM_VECTOR_LEN;
479
- const ret = wasm.u8vec_to_private_sig_key(ptr0, len0);
535
+ const ret = wasm.new_server_id_addr(id, ptr0, len0);
480
536
  if (ret[2]) {
481
537
  throw takeFromExternrefTable0(ret[1]);
482
538
  }
483
- return PrivateSigKey.__wrap(ret[0]);
484
- }
485
-
486
- /**
487
- * @param {PublicSigKey} pk
488
- * @returns {Uint8Array}
489
- */
490
- export function public_sig_key_to_u8vec(pk) {
491
- _assertClass(pk, PublicSigKey);
492
- const ret = wasm.public_sig_key_to_u8vec(pk.__wbg_ptr);
493
- var v1 = getArrayU8FromWasm0(ret[0], ret[1]).slice();
494
- wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);
495
- return v1;
539
+ return ServerIdAddr.__wrap(ret[0]);
496
540
  }
497
541
 
498
542
  /**
@@ -510,13 +554,11 @@ export function u8vec_to_ml_kem_pke_sk(v) {
510
554
  }
511
555
 
512
556
  /**
513
- * @param {PrivateEncKeyMlKem512} sk
514
- * @returns {PublicEncKeyMlKem512}
557
+ * @returns {PrivateEncKeyMlKem512}
515
558
  */
516
- export function ml_kem_pke_get_pk(sk) {
517
- _assertClass(sk, PrivateEncKeyMlKem512);
518
- const ret = wasm.ml_kem_pke_get_pk(sk.__wbg_ptr);
519
- return PublicEncKeyMlKem512.__wrap(ret);
559
+ export function ml_kem_pke_keygen() {
560
+ const ret = wasm.ml_kem_pke_keygen();
561
+ return PrivateEncKeyMlKem512.__wrap(ret);
520
562
  }
521
563
 
522
564
  /**
@@ -535,29 +577,28 @@ export function ml_kem_pke_sk_to_u8vec(sk) {
535
577
  }
536
578
 
537
579
  /**
538
- * @returns {number}
580
+ * This function is *not* used by relayer-sdk because the encryption
581
+ * happens on the KMS side. It's just here for completeness and tests.
582
+ * @param {Uint8Array} msg
583
+ * @param {PublicEncKeyMlKem512} their_pk
584
+ * @returns {Uint8Array}
539
585
  */
540
- export function ml_kem_pke_pk_len() {
541
- const ret = wasm.ml_kem_pke_pk_len();
542
- return ret >>> 0;
586
+ export function ml_kem_pke_encrypt(msg, their_pk) {
587
+ const ptr0 = passArray8ToWasm0(msg, wasm.__wbindgen_malloc);
588
+ const len0 = WASM_VECTOR_LEN;
589
+ _assertClass(their_pk, PublicEncKeyMlKem512);
590
+ const ret = wasm.ml_kem_pke_encrypt(ptr0, len0, their_pk.__wbg_ptr);
591
+ var v2 = getArrayU8FromWasm0(ret[0], ret[1]).slice();
592
+ wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);
593
+ return v2;
543
594
  }
544
595
 
545
596
  /**
546
- * @param {Client} client
547
- * @returns {string}
597
+ * @returns {number}
548
598
  */
549
- export function get_client_address(client) {
550
- let deferred1_0;
551
- let deferred1_1;
552
- try {
553
- _assertClass(client, Client);
554
- const ret = wasm.get_client_address(client.__wbg_ptr);
555
- deferred1_0 = ret[0];
556
- deferred1_1 = ret[1];
557
- return getStringFromWasm0(ret[0], ret[1]);
558
- } finally {
559
- wasm.__wbindgen_free(deferred1_0, deferred1_1, 1);
560
- }
599
+ export function ml_kem_pke_pk_len() {
600
+ const ret = wasm.ml_kem_pke_pk_len();
601
+ return ret >>> 0;
561
602
  }
562
603
 
563
604
  /**
@@ -574,47 +615,6 @@ export function u8vec_to_public_sig_key(v) {
574
615
  return PublicSigKey.__wrap(ret[0]);
575
616
  }
576
617
 
577
- /**
578
- * @param {Uint8Array} v
579
- * @returns {PublicEncKeyMlKem512}
580
- */
581
- export function u8vec_to_ml_kem_pke_pk(v) {
582
- const ptr0 = passArray8ToWasm0(v, wasm.__wbindgen_malloc);
583
- const len0 = WASM_VECTOR_LEN;
584
- const ret = wasm.u8vec_to_ml_kem_pke_pk(ptr0, len0);
585
- if (ret[2]) {
586
- throw takeFromExternrefTable0(ret[1]);
587
- }
588
- return PublicEncKeyMlKem512.__wrap(ret[0]);
589
- }
590
-
591
- /**
592
- * @param {Client} client
593
- * @returns {ServerIdAddr[]}
594
- */
595
- export function get_server_addrs(client) {
596
- _assertClass(client, Client);
597
- const ret = wasm.get_server_addrs(client.__wbg_ptr);
598
- var v1 = getArrayJsValueFromWasm0(ret[0], ret[1]).slice();
599
- wasm.__wbindgen_free(ret[0], ret[1] * 4, 4);
600
- return v1;
601
- }
602
-
603
- /**
604
- * @param {PrivateSigKey} sk
605
- * @returns {Uint8Array}
606
- */
607
- export function private_sig_key_to_u8vec(sk) {
608
- _assertClass(sk, PrivateSigKey);
609
- const ret = wasm.private_sig_key_to_u8vec(sk.__wbg_ptr);
610
- if (ret[3]) {
611
- throw takeFromExternrefTable0(ret[2]);
612
- }
613
- var v1 = getArrayU8FromWasm0(ret[0], ret[1]).slice();
614
- wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);
615
- return v1;
616
- }
617
-
618
618
  const CiphertextHandleFinalization = (typeof FinalizationRegistry === 'undefined')
619
619
  ? { register: () => {}, unregister: () => {} }
620
620
  : new FinalizationRegistry(ptr => wasm.__wbg_ciphertexthandle_free(ptr >>> 0, 1));
package/kms_lib_bg.wasm CHANGED
Binary file
package/package.json CHANGED
@@ -5,7 +5,7 @@
5
5
  "Zama"
6
6
  ],
7
7
  "description": "Key Management System for the Zama Protocol.",
8
- "version": "v0.13.1",
8
+ "version": "v0.13.2",
9
9
  "license": "BSD-3-Clause-Clear",
10
10
  "repository": {
11
11
  "type": "git",