tkms 0.13.0-rc.0 → 0.13.0-rc.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,8 +1,40 @@
1
1
  /* tslint:disable */
2
2
  /* eslint-disable */
3
- export function ml_kem_pke_sk_to_u8vec(sk: PrivateEncKeyMlKem512): Uint8Array;
3
+ export function get_client_address(client: Client): string;
4
4
  export function ml_kem_pke_sk_len(): number;
5
+ export function ml_kem_pke_sk_to_u8vec(sk: PrivateEncKeyMlKem512): Uint8Array;
6
+ /**
7
+ * Process the user_decryption response from Rust objects.
8
+ * Consider using [process_user_decryption_resp_from_js]
9
+ * when using the JS API.
10
+ * The result is a byte array representing a plaintext of any length.
11
+ *
12
+ * * `client` - client that wants to perform user_decryption.
13
+ *
14
+ * * `request` - the initial user_decryption request.
15
+ * Must be given if `verify` is true.
16
+ *
17
+ * * `eip712_domain` - the EIP-712 domain.
18
+ * Must be given if `verify` is true.
19
+ *
20
+ * * `agg_resp` - the vector of user_decryption responses.
21
+ *
22
+ * * `enc_pk` - The ephemeral public key.
23
+ *
24
+ * * `enc_sk` - The ephemeral secret key.
25
+ *
26
+ * * `verify` - Whether to perform signature verification for the response.
27
+ * It is insecure if `verify = false`!
28
+ */
29
+ 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[];
30
+ export function ml_kem_pke_get_pk(sk: PrivateEncKeyMlKem512): PublicEncKeyMlKem512;
5
31
  export function u8vec_to_ml_kem_pke_pk(v: Uint8Array): PublicEncKeyMlKem512;
32
+ /**
33
+ * Create a new [ServerIdAddr] structure that holds an ID and an address
34
+ * which must be a valid EIP-55 address, notably prefixed with "0x".
35
+ */
36
+ export function new_server_id_addr(id: number, addr: string): ServerIdAddr;
37
+ export function u8vec_to_ml_kem_pke_sk(v: Uint8Array): PrivateEncKeyMlKem512;
6
38
  export function ml_kem_pke_pk_to_u8vec(pk: PublicEncKeyMlKem512): Uint8Array;
7
39
  /**
8
40
  * Process the user_decryption response from JavaScript objects.
@@ -67,45 +99,16 @@ export function ml_kem_pke_pk_to_u8vec(pk: PublicEncKeyMlKem512): Uint8Array;
67
99
  */
68
100
  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[];
69
101
  export function ml_kem_pke_pk_len(): number;
70
- /**
71
- * This function is *not* used by relayer-sdk because the decryption
72
- * is handled by [process_user_decryption_resp].
73
- * It's just here for completeness and tests.
74
- */
75
- export function ml_kem_pke_decrypt(ct: Uint8Array, my_sk: PrivateEncKeyMlKem512): Uint8Array;
76
- export function ml_kem_pke_get_pk(sk: PrivateEncKeyMlKem512): PublicEncKeyMlKem512;
102
+ export function get_client_secret_key(client: Client): PrivateSigKey | undefined;
103
+ export function get_server_addrs(client: Client): ServerIdAddr[];
104
+ export function u8vec_to_public_sig_key(v: Uint8Array): PublicSigKey;
105
+ export function u8vec_to_private_sig_key(v: Uint8Array): PrivateSigKey;
106
+ export function ml_kem_pke_keygen(): PrivateEncKeyMlKem512;
77
107
  /**
78
108
  * This function is *not* used by relayer-sdk because the encryption
79
109
  * happens on the KMS side. It's just here for completeness and tests.
80
110
  */
81
111
  export function ml_kem_pke_encrypt(msg: Uint8Array, their_pk: PublicEncKeyMlKem512): Uint8Array;
82
- /**
83
- * Process the user_decryption response from Rust objects.
84
- * Consider using [process_user_decryption_resp_from_js]
85
- * when using the JS API.
86
- * The result is a byte array representing a plaintext of any length.
87
- *
88
- * * `client` - client that wants to perform user_decryption.
89
- *
90
- * * `request` - the initial user_decryption request.
91
- * Must be given if `verify` is true.
92
- *
93
- * * `eip712_domain` - the EIP-712 domain.
94
- * Must be given if `verify` is true.
95
- *
96
- * * `agg_resp` - the vector of user_decryption responses.
97
- *
98
- * * `enc_pk` - The ephemeral public key.
99
- *
100
- * * `enc_sk` - The ephemeral secret key.
101
- *
102
- * * `verify` - Whether to perform signature verification for the response.
103
- * It is insecure if `verify = false`!
104
- */
105
- 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[];
106
- export function get_client_secret_key(client: Client): PrivateSigKey | undefined;
107
- export function get_server_addrs(client: Client): ServerIdAddr[];
108
- export function ml_kem_pke_keygen(): PrivateEncKeyMlKem512;
109
112
  /**
110
113
  * Instantiate a new client.
111
114
  *
@@ -120,16 +123,13 @@ export function ml_kem_pke_keygen(): PrivateEncKeyMlKem512;
120
123
  */
121
124
  export function new_client(server_addrs: ServerIdAddr[], client_address_hex: string, fhe_parameter: string): Client;
122
125
  export function public_sig_key_to_u8vec(pk: PublicSigKey): Uint8Array;
123
- export function private_sig_key_to_u8vec(sk: PrivateSigKey): Uint8Array;
124
- export function get_client_address(client: Client): string;
125
- export function u8vec_to_public_sig_key(v: Uint8Array): PublicSigKey;
126
- export function u8vec_to_private_sig_key(v: Uint8Array): PrivateSigKey;
127
126
  /**
128
- * Create a new [ServerIdAddr] structure that holds an ID and an address
129
- * which must be a valid EIP-55 address, notably prefixed with "0x".
127
+ * This function is *not* used by relayer-sdk because the decryption
128
+ * is handled by [process_user_decryption_resp].
129
+ * It's just here for completeness and tests.
130
130
  */
131
- export function new_server_id_addr(id: number, addr: string): ServerIdAddr;
132
- export function u8vec_to_ml_kem_pke_sk(v: Uint8Array): PrivateEncKeyMlKem512;
131
+ export function ml_kem_pke_decrypt(ct: Uint8Array, my_sk: PrivateEncKeyMlKem512): Uint8Array;
132
+ export function private_sig_key_to_u8vec(sk: PrivateSigKey): Uint8Array;
133
133
  export class CiphertextHandle {
134
134
  private constructor();
135
135
  free(): void;
@@ -391,8 +391,6 @@ export type InitInput = RequestInfo | URL | Response | BufferSource | WebAssembl
391
391
  export interface InitOutput {
392
392
  readonly memory: WebAssembly.Memory;
393
393
  readonly __wbg_client_free: (a: number, b: number) => void;
394
- readonly __wbg_ciphertexthandle_free: (a: number, b: number) => void;
395
- readonly __wbg_parseduserdecryptionrequest_free: (a: number, b: number) => void;
396
394
  readonly __wbg_privateenckeymlkem512_free: (a: number, b: number) => void;
397
395
  readonly __wbg_publicenckeymlkem512_free: (a: number, b: number) => void;
398
396
  readonly __wbg_serveridaddr_free: (a: number, b: number) => void;
@@ -417,6 +415,8 @@ export interface InitOutput {
417
415
  readonly u8vec_to_ml_kem_pke_sk: (a: number, b: number) => [number, number, number];
418
416
  readonly u8vec_to_private_sig_key: (a: number, b: number) => [number, number, number];
419
417
  readonly u8vec_to_public_sig_key: (a: number, b: number) => [number, number, number];
418
+ readonly __wbg_ciphertexthandle_free: (a: number, b: number) => void;
419
+ readonly __wbg_parseduserdecryptionrequest_free: (a: number, b: number) => void;
420
420
  readonly __wbg_privatesigkey_free: (a: number, b: number) => void;
421
421
  readonly __wbg_publicsigkey_free: (a: number, b: number) => void;
422
422
  readonly __wbg_eip712domainmsg_free: (a: number, b: number) => void;
@@ -466,10 +466,10 @@ export interface InitOutput {
466
466
  readonly __wbg_userdecryptionrequest_free: (a: number, b: number) => void;
467
467
  readonly __wbg_userdecryptionresponse_free: (a: number, b: number) => void;
468
468
  readonly __wbg_userdecryptionresponsepayload_free: (a: number, b: number) => void;
469
- readonly __wbg_get_requestid_request_id: (a: number) => [number, number];
470
- readonly __wbg_get_userdecryptionrequest_client_address: (a: number) => [number, number];
471
469
  readonly __wbg_set_typedsigncryptedciphertext_fhe_type: (a: number, b: number) => void;
472
470
  readonly __wbg_set_typedsigncryptedciphertext_packing_factor: (a: number, b: number) => void;
471
+ readonly __wbg_get_requestid_request_id: (a: number) => [number, number];
472
+ readonly __wbg_get_userdecryptionrequest_client_address: (a: number) => [number, number];
473
473
  readonly __wbg_set_requestid_request_id: (a: number, b: number, c: number) => void;
474
474
  readonly __wbg_set_typedciphertext_ciphertext: (a: number, b: number, c: number) => void;
475
475
  readonly __wbg_set_typedciphertext_external_handle: (a: number, b: number, c: number) => void;
package/kms_lib.js CHANGED
@@ -172,6 +172,31 @@ function _assertClass(instance, klass) {
172
172
  throw new Error(`expected instance of ${klass.name}`);
173
173
  }
174
174
  }
175
+ /**
176
+ * @param {Client} client
177
+ * @returns {string}
178
+ */
179
+ export function get_client_address(client) {
180
+ let deferred1_0;
181
+ let deferred1_1;
182
+ try {
183
+ _assertClass(client, Client);
184
+ const ret = wasm.get_client_address(client.__wbg_ptr);
185
+ deferred1_0 = ret[0];
186
+ deferred1_1 = ret[1];
187
+ return getStringFromWasm0(ret[0], ret[1]);
188
+ } finally {
189
+ wasm.__wbindgen_free(deferred1_0, deferred1_1, 1);
190
+ }
191
+ }
192
+
193
+ /**
194
+ * @returns {number}
195
+ */
196
+ export function ml_kem_pke_sk_len() {
197
+ const ret = wasm.ml_kem_pke_sk_len();
198
+ return ret >>> 0;
199
+ }
175
200
 
176
201
  function takeFromExternrefTable0(idx) {
177
202
  const value = wasm.__wbindgen_export_4.get(idx);
@@ -198,12 +223,90 @@ export function ml_kem_pke_sk_to_u8vec(sk) {
198
223
  return v1;
199
224
  }
200
225
 
226
+ function passArrayJsValueToWasm0(array, malloc) {
227
+ const ptr = malloc(array.length * 4, 4) >>> 0;
228
+ for (let i = 0; i < array.length; i++) {
229
+ const add = addToExternrefTable0(array[i]);
230
+ getDataViewMemory0().setUint32(ptr + 4 * i, add, true);
231
+ }
232
+ WASM_VECTOR_LEN = array.length;
233
+ return ptr;
234
+ }
235
+
236
+ function getArrayJsValueFromWasm0(ptr, len) {
237
+ ptr = ptr >>> 0;
238
+ const mem = getDataViewMemory0();
239
+ const result = [];
240
+ for (let i = ptr; i < ptr + 4 * len; i += 4) {
241
+ result.push(wasm.__wbindgen_export_4.get(mem.getUint32(i, true)));
242
+ }
243
+ wasm.__externref_drop_slice(ptr, len);
244
+ return result;
245
+ }
201
246
  /**
202
- * @returns {number}
247
+ * Process the user_decryption response from Rust objects.
248
+ * Consider using [process_user_decryption_resp_from_js]
249
+ * when using the JS API.
250
+ * The result is a byte array representing a plaintext of any length.
251
+ *
252
+ * * `client` - client that wants to perform user_decryption.
253
+ *
254
+ * * `request` - the initial user_decryption request.
255
+ * Must be given if `verify` is true.
256
+ *
257
+ * * `eip712_domain` - the EIP-712 domain.
258
+ * Must be given if `verify` is true.
259
+ *
260
+ * * `agg_resp` - the vector of user_decryption responses.
261
+ *
262
+ * * `enc_pk` - The ephemeral public key.
263
+ *
264
+ * * `enc_sk` - The ephemeral secret key.
265
+ *
266
+ * * `verify` - Whether to perform signature verification for the response.
267
+ * It is insecure if `verify = false`!
268
+ * @param {Client} client
269
+ * @param {ParsedUserDecryptionRequest | null | undefined} request
270
+ * @param {Eip712DomainMsg | null | undefined} eip712_domain
271
+ * @param {UserDecryptionResponse[]} agg_resp
272
+ * @param {PublicEncKeyMlKem512} enc_pk
273
+ * @param {PrivateEncKeyMlKem512} enc_sk
274
+ * @param {boolean} verify
275
+ * @returns {TypedPlaintext[]}
203
276
  */
204
- export function ml_kem_pke_sk_len() {
205
- const ret = wasm.ml_kem_pke_sk_len();
206
- return ret >>> 0;
277
+ export function process_user_decryption_resp(client, request, eip712_domain, agg_resp, enc_pk, enc_sk, verify) {
278
+ _assertClass(client, Client);
279
+ let ptr0 = 0;
280
+ if (!isLikeNone(request)) {
281
+ _assertClass(request, ParsedUserDecryptionRequest);
282
+ ptr0 = request.__destroy_into_raw();
283
+ }
284
+ let ptr1 = 0;
285
+ if (!isLikeNone(eip712_domain)) {
286
+ _assertClass(eip712_domain, Eip712DomainMsg);
287
+ ptr1 = eip712_domain.__destroy_into_raw();
288
+ }
289
+ const ptr2 = passArrayJsValueToWasm0(agg_resp, wasm.__wbindgen_malloc);
290
+ const len2 = WASM_VECTOR_LEN;
291
+ _assertClass(enc_pk, PublicEncKeyMlKem512);
292
+ _assertClass(enc_sk, PrivateEncKeyMlKem512);
293
+ const ret = wasm.process_user_decryption_resp(client.__wbg_ptr, ptr0, ptr1, ptr2, len2, enc_pk.__wbg_ptr, enc_sk.__wbg_ptr, verify);
294
+ if (ret[3]) {
295
+ throw takeFromExternrefTable0(ret[2]);
296
+ }
297
+ var v4 = getArrayJsValueFromWasm0(ret[0], ret[1]).slice();
298
+ wasm.__wbindgen_free(ret[0], ret[1] * 4, 4);
299
+ return v4;
300
+ }
301
+
302
+ /**
303
+ * @param {PrivateEncKeyMlKem512} sk
304
+ * @returns {PublicEncKeyMlKem512}
305
+ */
306
+ export function ml_kem_pke_get_pk(sk) {
307
+ _assertClass(sk, PrivateEncKeyMlKem512);
308
+ const ret = wasm.ml_kem_pke_get_pk(sk.__wbg_ptr);
309
+ return PublicEncKeyMlKem512.__wrap(ret);
207
310
  }
208
311
 
209
312
  function passArray8ToWasm0(arg, malloc) {
@@ -226,6 +329,37 @@ export function u8vec_to_ml_kem_pke_pk(v) {
226
329
  return PublicEncKeyMlKem512.__wrap(ret[0]);
227
330
  }
228
331
 
332
+ /**
333
+ * Create a new [ServerIdAddr] structure that holds an ID and an address
334
+ * which must be a valid EIP-55 address, notably prefixed with "0x".
335
+ * @param {number} id
336
+ * @param {string} addr
337
+ * @returns {ServerIdAddr}
338
+ */
339
+ export function new_server_id_addr(id, addr) {
340
+ const ptr0 = passStringToWasm0(addr, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
341
+ const len0 = WASM_VECTOR_LEN;
342
+ const ret = wasm.new_server_id_addr(id, ptr0, len0);
343
+ if (ret[2]) {
344
+ throw takeFromExternrefTable0(ret[1]);
345
+ }
346
+ return ServerIdAddr.__wrap(ret[0]);
347
+ }
348
+
349
+ /**
350
+ * @param {Uint8Array} v
351
+ * @returns {PrivateEncKeyMlKem512}
352
+ */
353
+ export function u8vec_to_ml_kem_pke_sk(v) {
354
+ const ptr0 = passArray8ToWasm0(v, wasm.__wbindgen_malloc);
355
+ const len0 = WASM_VECTOR_LEN;
356
+ const ret = wasm.u8vec_to_ml_kem_pke_sk(ptr0, len0);
357
+ if (ret[2]) {
358
+ throw takeFromExternrefTable0(ret[1]);
359
+ }
360
+ return PrivateEncKeyMlKem512.__wrap(ret[0]);
361
+ }
362
+
229
363
  /**
230
364
  * @param {PublicEncKeyMlKem512} pk
231
365
  * @returns {Uint8Array}
@@ -241,16 +375,6 @@ export function ml_kem_pke_pk_to_u8vec(pk) {
241
375
  return v1;
242
376
  }
243
377
 
244
- function getArrayJsValueFromWasm0(ptr, len) {
245
- ptr = ptr >>> 0;
246
- const mem = getDataViewMemory0();
247
- const result = [];
248
- for (let i = ptr; i < ptr + 4 * len; i += 4) {
249
- result.push(wasm.__wbindgen_export_4.get(mem.getUint32(i, true)));
250
- }
251
- wasm.__externref_drop_slice(ptr, len);
252
- return result;
253
- }
254
378
  /**
255
379
  * Process the user_decryption response from JavaScript objects.
256
380
  * The returned result is a byte array representing a plaintext of any length,
@@ -341,116 +465,6 @@ export function ml_kem_pke_pk_len() {
341
465
  return ret >>> 0;
342
466
  }
343
467
 
344
- /**
345
- * This function is *not* used by relayer-sdk because the decryption
346
- * is handled by [process_user_decryption_resp].
347
- * It's just here for completeness and tests.
348
- * @param {Uint8Array} ct
349
- * @param {PrivateEncKeyMlKem512} my_sk
350
- * @returns {Uint8Array}
351
- */
352
- export function ml_kem_pke_decrypt(ct, my_sk) {
353
- const ptr0 = passArray8ToWasm0(ct, wasm.__wbindgen_malloc);
354
- const len0 = WASM_VECTOR_LEN;
355
- _assertClass(my_sk, PrivateEncKeyMlKem512);
356
- const ret = wasm.ml_kem_pke_decrypt(ptr0, len0, my_sk.__wbg_ptr);
357
- var v2 = getArrayU8FromWasm0(ret[0], ret[1]).slice();
358
- wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);
359
- return v2;
360
- }
361
-
362
- /**
363
- * @param {PrivateEncKeyMlKem512} sk
364
- * @returns {PublicEncKeyMlKem512}
365
- */
366
- export function ml_kem_pke_get_pk(sk) {
367
- _assertClass(sk, PrivateEncKeyMlKem512);
368
- const ret = wasm.ml_kem_pke_get_pk(sk.__wbg_ptr);
369
- return PublicEncKeyMlKem512.__wrap(ret);
370
- }
371
-
372
- /**
373
- * This function is *not* used by relayer-sdk because the encryption
374
- * happens on the KMS side. It's just here for completeness and tests.
375
- * @param {Uint8Array} msg
376
- * @param {PublicEncKeyMlKem512} their_pk
377
- * @returns {Uint8Array}
378
- */
379
- export function ml_kem_pke_encrypt(msg, their_pk) {
380
- const ptr0 = passArray8ToWasm0(msg, wasm.__wbindgen_malloc);
381
- const len0 = WASM_VECTOR_LEN;
382
- _assertClass(their_pk, PublicEncKeyMlKem512);
383
- const ret = wasm.ml_kem_pke_encrypt(ptr0, len0, their_pk.__wbg_ptr);
384
- var v2 = getArrayU8FromWasm0(ret[0], ret[1]).slice();
385
- wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);
386
- return v2;
387
- }
388
-
389
- function passArrayJsValueToWasm0(array, malloc) {
390
- const ptr = malloc(array.length * 4, 4) >>> 0;
391
- for (let i = 0; i < array.length; i++) {
392
- const add = addToExternrefTable0(array[i]);
393
- getDataViewMemory0().setUint32(ptr + 4 * i, add, true);
394
- }
395
- WASM_VECTOR_LEN = array.length;
396
- return ptr;
397
- }
398
- /**
399
- * Process the user_decryption response from Rust objects.
400
- * Consider using [process_user_decryption_resp_from_js]
401
- * when using the JS API.
402
- * The result is a byte array representing a plaintext of any length.
403
- *
404
- * * `client` - client that wants to perform user_decryption.
405
- *
406
- * * `request` - the initial user_decryption request.
407
- * Must be given if `verify` is true.
408
- *
409
- * * `eip712_domain` - the EIP-712 domain.
410
- * Must be given if `verify` is true.
411
- *
412
- * * `agg_resp` - the vector of user_decryption responses.
413
- *
414
- * * `enc_pk` - The ephemeral public key.
415
- *
416
- * * `enc_sk` - The ephemeral secret key.
417
- *
418
- * * `verify` - Whether to perform signature verification for the response.
419
- * It is insecure if `verify = false`!
420
- * @param {Client} client
421
- * @param {ParsedUserDecryptionRequest | null | undefined} request
422
- * @param {Eip712DomainMsg | null | undefined} eip712_domain
423
- * @param {UserDecryptionResponse[]} agg_resp
424
- * @param {PublicEncKeyMlKem512} enc_pk
425
- * @param {PrivateEncKeyMlKem512} enc_sk
426
- * @param {boolean} verify
427
- * @returns {TypedPlaintext[]}
428
- */
429
- export function process_user_decryption_resp(client, request, eip712_domain, agg_resp, enc_pk, enc_sk, verify) {
430
- _assertClass(client, Client);
431
- let ptr0 = 0;
432
- if (!isLikeNone(request)) {
433
- _assertClass(request, ParsedUserDecryptionRequest);
434
- ptr0 = request.__destroy_into_raw();
435
- }
436
- let ptr1 = 0;
437
- if (!isLikeNone(eip712_domain)) {
438
- _assertClass(eip712_domain, Eip712DomainMsg);
439
- ptr1 = eip712_domain.__destroy_into_raw();
440
- }
441
- const ptr2 = passArrayJsValueToWasm0(agg_resp, wasm.__wbindgen_malloc);
442
- const len2 = WASM_VECTOR_LEN;
443
- _assertClass(enc_pk, PublicEncKeyMlKem512);
444
- _assertClass(enc_sk, PrivateEncKeyMlKem512);
445
- const ret = wasm.process_user_decryption_resp(client.__wbg_ptr, ptr0, ptr1, ptr2, len2, enc_pk.__wbg_ptr, enc_sk.__wbg_ptr, verify);
446
- if (ret[3]) {
447
- throw takeFromExternrefTable0(ret[2]);
448
- }
449
- var v4 = getArrayJsValueFromWasm0(ret[0], ret[1]).slice();
450
- wasm.__wbindgen_free(ret[0], ret[1] * 4, 4);
451
- return v4;
452
- }
453
-
454
468
  /**
455
469
  * @param {Client} client
456
470
  * @returns {PrivateSigKey | undefined}
@@ -473,6 +487,34 @@ export function get_server_addrs(client) {
473
487
  return v1;
474
488
  }
475
489
 
490
+ /**
491
+ * @param {Uint8Array} v
492
+ * @returns {PublicSigKey}
493
+ */
494
+ export function u8vec_to_public_sig_key(v) {
495
+ const ptr0 = passArray8ToWasm0(v, wasm.__wbindgen_malloc);
496
+ const len0 = WASM_VECTOR_LEN;
497
+ const ret = wasm.u8vec_to_public_sig_key(ptr0, len0);
498
+ if (ret[2]) {
499
+ throw takeFromExternrefTable0(ret[1]);
500
+ }
501
+ return PublicSigKey.__wrap(ret[0]);
502
+ }
503
+
504
+ /**
505
+ * @param {Uint8Array} v
506
+ * @returns {PrivateSigKey}
507
+ */
508
+ export function u8vec_to_private_sig_key(v) {
509
+ const ptr0 = passArray8ToWasm0(v, wasm.__wbindgen_malloc);
510
+ const len0 = WASM_VECTOR_LEN;
511
+ const ret = wasm.u8vec_to_private_sig_key(ptr0, len0);
512
+ if (ret[2]) {
513
+ throw takeFromExternrefTable0(ret[1]);
514
+ }
515
+ return PrivateSigKey.__wrap(ret[0]);
516
+ }
517
+
476
518
  /**
477
519
  * @returns {PrivateEncKeyMlKem512}
478
520
  */
@@ -481,6 +523,23 @@ export function ml_kem_pke_keygen() {
481
523
  return PrivateEncKeyMlKem512.__wrap(ret);
482
524
  }
483
525
 
526
+ /**
527
+ * This function is *not* used by relayer-sdk because the encryption
528
+ * happens on the KMS side. It's just here for completeness and tests.
529
+ * @param {Uint8Array} msg
530
+ * @param {PublicEncKeyMlKem512} their_pk
531
+ * @returns {Uint8Array}
532
+ */
533
+ export function ml_kem_pke_encrypt(msg, their_pk) {
534
+ const ptr0 = passArray8ToWasm0(msg, wasm.__wbindgen_malloc);
535
+ const len0 = WASM_VECTOR_LEN;
536
+ _assertClass(their_pk, PublicEncKeyMlKem512);
537
+ const ret = wasm.ml_kem_pke_encrypt(ptr0, len0, their_pk.__wbg_ptr);
538
+ var v2 = getArrayU8FromWasm0(ret[0], ret[1]).slice();
539
+ wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);
540
+ return v2;
541
+ }
542
+
484
543
  /**
485
544
  * Instantiate a new client.
486
545
  *
@@ -523,6 +582,24 @@ export function public_sig_key_to_u8vec(pk) {
523
582
  return v1;
524
583
  }
525
584
 
585
+ /**
586
+ * This function is *not* used by relayer-sdk because the decryption
587
+ * is handled by [process_user_decryption_resp].
588
+ * It's just here for completeness and tests.
589
+ * @param {Uint8Array} ct
590
+ * @param {PrivateEncKeyMlKem512} my_sk
591
+ * @returns {Uint8Array}
592
+ */
593
+ export function ml_kem_pke_decrypt(ct, my_sk) {
594
+ const ptr0 = passArray8ToWasm0(ct, wasm.__wbindgen_malloc);
595
+ const len0 = WASM_VECTOR_LEN;
596
+ _assertClass(my_sk, PrivateEncKeyMlKem512);
597
+ const ret = wasm.ml_kem_pke_decrypt(ptr0, len0, my_sk.__wbg_ptr);
598
+ var v2 = getArrayU8FromWasm0(ret[0], ret[1]).slice();
599
+ wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);
600
+ return v2;
601
+ }
602
+
526
603
  /**
527
604
  * @param {PrivateSigKey} sk
528
605
  * @returns {Uint8Array}
@@ -538,83 +615,6 @@ export function private_sig_key_to_u8vec(sk) {
538
615
  return v1;
539
616
  }
540
617
 
541
- /**
542
- * @param {Client} client
543
- * @returns {string}
544
- */
545
- export function get_client_address(client) {
546
- let deferred1_0;
547
- let deferred1_1;
548
- try {
549
- _assertClass(client, Client);
550
- const ret = wasm.get_client_address(client.__wbg_ptr);
551
- deferred1_0 = ret[0];
552
- deferred1_1 = ret[1];
553
- return getStringFromWasm0(ret[0], ret[1]);
554
- } finally {
555
- wasm.__wbindgen_free(deferred1_0, deferred1_1, 1);
556
- }
557
- }
558
-
559
- /**
560
- * @param {Uint8Array} v
561
- * @returns {PublicSigKey}
562
- */
563
- export function u8vec_to_public_sig_key(v) {
564
- const ptr0 = passArray8ToWasm0(v, wasm.__wbindgen_malloc);
565
- const len0 = WASM_VECTOR_LEN;
566
- const ret = wasm.u8vec_to_public_sig_key(ptr0, len0);
567
- if (ret[2]) {
568
- throw takeFromExternrefTable0(ret[1]);
569
- }
570
- return PublicSigKey.__wrap(ret[0]);
571
- }
572
-
573
- /**
574
- * @param {Uint8Array} v
575
- * @returns {PrivateSigKey}
576
- */
577
- export function u8vec_to_private_sig_key(v) {
578
- const ptr0 = passArray8ToWasm0(v, wasm.__wbindgen_malloc);
579
- const len0 = WASM_VECTOR_LEN;
580
- const ret = wasm.u8vec_to_private_sig_key(ptr0, len0);
581
- if (ret[2]) {
582
- throw takeFromExternrefTable0(ret[1]);
583
- }
584
- return PrivateSigKey.__wrap(ret[0]);
585
- }
586
-
587
- /**
588
- * Create a new [ServerIdAddr] structure that holds an ID and an address
589
- * which must be a valid EIP-55 address, notably prefixed with "0x".
590
- * @param {number} id
591
- * @param {string} addr
592
- * @returns {ServerIdAddr}
593
- */
594
- export function new_server_id_addr(id, addr) {
595
- const ptr0 = passStringToWasm0(addr, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
596
- const len0 = WASM_VECTOR_LEN;
597
- const ret = wasm.new_server_id_addr(id, ptr0, len0);
598
- if (ret[2]) {
599
- throw takeFromExternrefTable0(ret[1]);
600
- }
601
- return ServerIdAddr.__wrap(ret[0]);
602
- }
603
-
604
- /**
605
- * @param {Uint8Array} v
606
- * @returns {PrivateEncKeyMlKem512}
607
- */
608
- export function u8vec_to_ml_kem_pke_sk(v) {
609
- const ptr0 = passArray8ToWasm0(v, wasm.__wbindgen_malloc);
610
- const len0 = WASM_VECTOR_LEN;
611
- const ret = wasm.u8vec_to_ml_kem_pke_sk(ptr0, len0);
612
- if (ret[2]) {
613
- throw takeFromExternrefTable0(ret[1]);
614
- }
615
- return PrivateEncKeyMlKem512.__wrap(ret[0]);
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.0-rc.0",
8
+ "version": "v0.13.0-rc.2",
9
9
  "license": "BSD-3-Clause-Clear",
10
10
  "repository": {
11
11
  "type": "git",