tkms 0.12.4 → 0.12.5

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,49 +1,60 @@
1
1
  /* tslint:disable */
2
2
  /* eslint-disable */
3
- export function ml_kem_pke_pk_len(): number;
4
- export function ml_kem_pke_sk_len(): number;
5
- export function public_sig_key_to_u8vec(pk: PublicSigKey): Uint8Array;
3
+ export function get_server_addrs(client: Client): ServerIdAddr[];
4
+ export function ml_kem_pke_sk_to_u8vec(sk: PrivateEncKeyMlKem512): Uint8Array;
5
+ export function get_client_address(client: Client): string;
6
6
  export function u8vec_to_public_sig_key(v: Uint8Array): PublicSigKey;
7
7
  export function private_sig_key_to_u8vec(sk: PrivateSigKey): Uint8Array;
8
- export function u8vec_to_private_sig_key(v: Uint8Array): PrivateSigKey;
8
+ export function public_sig_key_to_u8vec(pk: PublicSigKey): Uint8Array;
9
+ /**
10
+ * This function is *not* used by relayer-sdk because the decryption
11
+ * is handled by [process_user_decryption_resp].
12
+ * It's just here for completeness and tests.
13
+ */
14
+ export function ml_kem_pke_decrypt(ct: Uint8Array, my_sk: PrivateEncKeyMlKem512): Uint8Array;
15
+ export function ml_kem_pke_sk_len(): number;
16
+ export function ml_kem_pke_pk_len(): number;
17
+ /**
18
+ * This function is *not* used by relayer-sdk because the encryption
19
+ * happens on the KMS side. It's just here for completeness and tests.
20
+ */
21
+ export function ml_kem_pke_encrypt(msg: Uint8Array, their_pk: PublicEncKeyMlKem512): Uint8Array;
9
22
  /**
10
23
  * Create a new [ServerIdAddr] structure that holds an ID and an address
11
24
  * which must be a valid EIP-55 address, notably prefixed with "0x".
12
25
  */
13
26
  export function new_server_id_addr(id: number, addr: string): ServerIdAddr;
27
+ export function u8vec_to_ml_kem_pke_sk(v: Uint8Array): PrivateEncKeyMlKem512;
28
+ export function ml_kem_pke_get_pk(sk: PrivateEncKeyMlKem512): PublicEncKeyMlKem512;
29
+ export function ml_kem_pke_pk_to_u8vec(pk: PublicEncKeyMlKem512): Uint8Array;
30
+ export function u8vec_to_private_sig_key(v: Uint8Array): PrivateSigKey;
14
31
  /**
15
- * Instantiate a new client.
32
+ * Process the user_decryption response from Rust objects.
33
+ * Consider using [process_user_decryption_resp_from_js]
34
+ * when using the JS API.
35
+ * The result is a byte array representing a plaintext of any length.
16
36
  *
17
- * * `server_addrs` - a list of KMS server ID with EIP-55 addresses,
18
- * the elements in the list can be created using [new_server_id_addr].
37
+ * * `client` - client that wants to perform user_decryption.
19
38
  *
20
- * * `client_address_hex` - the client (wallet) address in hex,
21
- * must be prefixed with "0x".
39
+ * * `request` - the initial user_decryption request.
40
+ * Must be given if `verify` is true.
22
41
  *
23
- * * `fhe_parameter` - the parameter choice, which can be either `"test"` or `"default"`.
24
- * The "default" parameter choice is selected if no matching string is found.
42
+ * * `eip712_domain` - the EIP-712 domain.
43
+ * Must be given if `verify` is true.
44
+ *
45
+ * * `agg_resp` - the vector of user_decryption responses.
46
+ *
47
+ * * `enc_pk` - The ephemeral public key.
48
+ *
49
+ * * `enc_sk` - The ephemeral secret key.
50
+ *
51
+ * * `verify` - Whether to perform signature verification for the response.
52
+ * It is insecure if `verify = false`!
25
53
  */
26
- export function new_client(server_addrs: ServerIdAddr[], client_address_hex: string, fhe_parameter: string): Client;
27
- export function get_server_addrs(client: Client): ServerIdAddr[];
54
+ 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[];
28
55
  export function get_client_secret_key(client: Client): PrivateSigKey | undefined;
29
- export function get_client_address(client: Client): string;
30
56
  export function ml_kem_pke_keygen(): PrivateEncKeyMlKem512;
31
- export function ml_kem_pke_get_pk(sk: PrivateEncKeyMlKem512): PublicEncKeyMlKem512;
32
- export function ml_kem_pke_pk_to_u8vec(pk: PublicEncKeyMlKem512): Uint8Array;
33
- export function ml_kem_pke_sk_to_u8vec(sk: PrivateEncKeyMlKem512): Uint8Array;
34
57
  export function u8vec_to_ml_kem_pke_pk(v: Uint8Array): PublicEncKeyMlKem512;
35
- export function u8vec_to_ml_kem_pke_sk(v: Uint8Array): PrivateEncKeyMlKem512;
36
- /**
37
- * This function is *not* used by relayer-sdk because the encryption
38
- * happens on the KMS side. It's just here for completeness and tests.
39
- */
40
- export function ml_kem_pke_encrypt(msg: Uint8Array, their_pk: PublicEncKeyMlKem512): Uint8Array;
41
- /**
42
- * This function is *not* used by relayer-sdk because the decryption
43
- * is handled by [process_user_decryption_resp].
44
- * It's just here for completeness and tests.
45
- */
46
- export function ml_kem_pke_decrypt(ct: Uint8Array, my_sk: PrivateEncKeyMlKem512): Uint8Array;
47
58
  /**
48
59
  * Process the user_decryption response from JavaScript objects.
49
60
  * The returned result is a byte array representing a plaintext of any length,
@@ -107,29 +118,18 @@ export function ml_kem_pke_decrypt(ct: Uint8Array, my_sk: PrivateEncKeyMlKem512)
107
118
  */
108
119
  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[];
109
120
  /**
110
- * Process the user_decryption response from Rust objects.
111
- * Consider using [process_user_decryption_resp_from_js]
112
- * when using the JS API.
113
- * The result is a byte array representing a plaintext of any length.
114
- *
115
- * * `client` - client that wants to perform user_decryption.
116
- *
117
- * * `request` - the initial user_decryption request.
118
- * Must be given if `verify` is true.
119
- *
120
- * * `eip712_domain` - the EIP-712 domain.
121
- * Must be given if `verify` is true.
122
- *
123
- * * `agg_resp` - the vector of user_decryption responses.
121
+ * Instantiate a new client.
124
122
  *
125
- * * `enc_pk` - The ephemeral public key.
123
+ * * `server_addrs` - a list of KMS server ID with EIP-55 addresses,
124
+ * the elements in the list can be created using [new_server_id_addr].
126
125
  *
127
- * * `enc_sk` - The ephemeral secret key.
126
+ * * `client_address_hex` - the client (wallet) address in hex,
127
+ * must be prefixed with "0x".
128
128
  *
129
- * * `verify` - Whether to perform signature verification for the response.
130
- * It is insecure if `verify = false`!
129
+ * * `fhe_parameter` - the parameter choice, which can be either `"test"` or `"default"`.
130
+ * The "default" parameter choice is selected if no matching string is found.
131
131
  */
132
- 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[];
132
+ export function new_client(server_addrs: ServerIdAddr[], client_address_hex: string, fhe_parameter: string): Client;
133
133
  export class CiphertextHandle {
134
134
  private constructor();
135
135
  free(): void;
@@ -391,108 +391,108 @@ 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
- readonly __wbg_publicsigkey_free: (a: number, b: number) => void;
397
- readonly __wbg_privatesigkey_free: (a: number, b: number) => void;
398
394
  readonly __wbg_privateenckeymlkem512_free: (a: number, b: number) => void;
399
395
  readonly __wbg_publicenckeymlkem512_free: (a: number, b: number) => void;
400
- readonly ml_kem_pke_pk_len: () => number;
401
- readonly ml_kem_pke_sk_len: () => number;
402
- readonly public_sig_key_to_u8vec: (a: number) => [number, number];
403
- readonly u8vec_to_public_sig_key: (a: number, b: number) => [number, number, number];
404
- readonly private_sig_key_to_u8vec: (a: number) => [number, number, number, number];
405
- readonly u8vec_to_private_sig_key: (a: number, b: number) => [number, number, number];
406
396
  readonly __wbg_serveridaddr_free: (a: number, b: number) => void;
407
- readonly new_server_id_addr: (a: number, b: number, c: number) => [number, number, number];
408
- readonly new_client: (a: number, b: number, c: number, d: number, e: number, f: number) => [number, number, number];
409
- readonly get_server_addrs: (a: number) => [number, number];
410
- readonly get_client_secret_key: (a: number) => number;
411
397
  readonly get_client_address: (a: number) => [number, number];
412
- readonly ml_kem_pke_keygen: () => number;
398
+ readonly get_client_secret_key: (a: number) => number;
399
+ readonly get_server_addrs: (a: number) => [number, number];
400
+ readonly ml_kem_pke_decrypt: (a: number, b: number, c: number) => [number, number];
401
+ readonly ml_kem_pke_encrypt: (a: number, b: number, c: number) => [number, number];
413
402
  readonly ml_kem_pke_get_pk: (a: number) => number;
403
+ readonly ml_kem_pke_keygen: () => number;
404
+ readonly ml_kem_pke_pk_len: () => number;
414
405
  readonly ml_kem_pke_pk_to_u8vec: (a: number) => [number, number, number, number];
406
+ readonly ml_kem_pke_sk_len: () => number;
415
407
  readonly ml_kem_pke_sk_to_u8vec: (a: number) => [number, number, number, number];
408
+ readonly new_client: (a: number, b: number, c: number, d: number, e: number, f: number) => [number, number, number];
409
+ readonly new_server_id_addr: (a: number, b: number, c: number) => [number, number, number];
410
+ readonly private_sig_key_to_u8vec: (a: number) => [number, number, number, number];
411
+ readonly process_user_decryption_resp: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number) => [number, number, number, number];
412
+ readonly process_user_decryption_resp_from_js: (a: number, b: any, c: any, d: any, e: number, f: number, g: number) => [number, number, number, number];
413
+ readonly public_sig_key_to_u8vec: (a: number) => [number, number];
416
414
  readonly u8vec_to_ml_kem_pke_pk: (a: number, b: number) => [number, number, number];
417
415
  readonly u8vec_to_ml_kem_pke_sk: (a: number, b: number) => [number, number, number];
418
- readonly ml_kem_pke_encrypt: (a: number, b: number, c: number) => [number, number];
419
- readonly ml_kem_pke_decrypt: (a: number, b: number, c: number) => [number, number];
420
- readonly process_user_decryption_resp_from_js: (a: number, b: any, c: any, d: any, e: number, f: number, g: number) => [number, number, number, number];
421
- readonly process_user_decryption_resp: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number) => [number, number, number, number];
422
- readonly __wbg_requestid_free: (a: number, b: number) => void;
423
- readonly __wbg_get_requestid_request_id: (a: number) => [number, number];
424
- readonly __wbg_typedciphertext_free: (a: number, b: number) => void;
425
- readonly __wbg_get_typedciphertext_ciphertext: (a: number) => [number, number];
426
- readonly __wbg_get_typedciphertext_fhe_type: (a: number) => number;
427
- readonly __wbg_set_typedciphertext_fhe_type: (a: number, b: number) => void;
428
- readonly __wbg_get_typedciphertext_external_handle: (a: number) => [number, number];
429
- readonly __wbg_get_typedciphertext_ciphertext_format: (a: number) => number;
430
- readonly __wbg_set_typedciphertext_ciphertext_format: (a: number, b: number) => void;
416
+ readonly u8vec_to_private_sig_key: (a: number, b: number) => [number, number, number];
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
+ readonly __wbg_privatesigkey_free: (a: number, b: number) => void;
421
+ readonly __wbg_publicsigkey_free: (a: number, b: number) => void;
431
422
  readonly __wbg_eip712domainmsg_free: (a: number, b: number) => void;
432
- readonly __wbg_get_eip712domainmsg_name: (a: number) => [number, number];
433
- readonly __wbg_set_eip712domainmsg_name: (a: number, b: number, c: number) => void;
434
- readonly __wbg_get_eip712domainmsg_version: (a: number) => [number, number];
435
- readonly __wbg_set_eip712domainmsg_version: (a: number, b: number, c: number) => void;
436
423
  readonly __wbg_get_eip712domainmsg_chain_id: (a: number) => [number, number];
437
- readonly __wbg_set_eip712domainmsg_chain_id: (a: number, b: number, c: number) => void;
438
- readonly __wbg_get_eip712domainmsg_verifying_contract: (a: number) => [number, number];
439
- readonly __wbg_set_eip712domainmsg_verifying_contract: (a: number, b: number, c: number) => void;
424
+ readonly __wbg_get_eip712domainmsg_name: (a: number) => [number, number];
440
425
  readonly __wbg_get_eip712domainmsg_salt: (a: number) => [number, number];
441
- readonly __wbg_set_eip712domainmsg_salt: (a: number, b: number, c: number) => void;
442
- readonly __wbg_userdecryptionrequest_free: (a: number, b: number) => void;
443
- readonly __wbg_get_userdecryptionrequest_request_id: (a: number) => number;
444
- readonly __wbg_set_userdecryptionrequest_request_id: (a: number, b: number) => void;
445
- readonly __wbg_get_userdecryptionrequest_typed_ciphertexts: (a: number) => [number, number];
446
- readonly __wbg_set_userdecryptionrequest_typed_ciphertexts: (a: number, b: number, c: number) => void;
447
- readonly __wbg_get_userdecryptionrequest_key_id: (a: number) => number;
448
- readonly __wbg_set_userdecryptionrequest_key_id: (a: number, b: number) => void;
426
+ readonly __wbg_get_eip712domainmsg_verifying_contract: (a: number) => [number, number];
427
+ readonly __wbg_get_eip712domainmsg_version: (a: number) => [number, number];
428
+ readonly __wbg_get_requestid_request_id: (a: number) => [number, number];
429
+ readonly __wbg_get_typedciphertext_ciphertext: (a: number) => [number, number];
430
+ readonly __wbg_get_typedciphertext_ciphertext_format: (a: number) => number;
431
+ readonly __wbg_get_typedciphertext_external_handle: (a: number) => [number, number];
432
+ readonly __wbg_get_typedciphertext_fhe_type: (a: number) => number;
433
+ readonly __wbg_get_typedplaintext_fhe_type: (a: number) => number;
449
434
  readonly __wbg_get_userdecryptionrequest_client_address: (a: number) => [number, number];
435
+ readonly __wbg_get_userdecryptionrequest_context_id: (a: number) => number;
450
436
  readonly __wbg_get_userdecryptionrequest_domain: (a: number) => number;
451
- readonly __wbg_set_userdecryptionrequest_domain: (a: number, b: number) => void;
437
+ readonly __wbg_get_userdecryptionrequest_epoch_id: (a: number) => number;
452
438
  readonly __wbg_get_userdecryptionrequest_extra_data: (a: number) => [number, number];
453
- readonly __wbg_get_userdecryptionrequest_context_id: (a: number) => number;
439
+ readonly __wbg_get_userdecryptionrequest_key_id: (a: number) => number;
440
+ readonly __wbg_get_userdecryptionrequest_request_id: (a: number) => number;
441
+ readonly __wbg_get_userdecryptionrequest_typed_ciphertexts: (a: number) => [number, number];
442
+ readonly __wbg_get_userdecryptionresponse_payload: (a: number) => number;
443
+ readonly __wbg_get_userdecryptionresponsepayload_degree: (a: number) => number;
444
+ readonly __wbg_get_userdecryptionresponsepayload_party_id: (a: number) => number;
445
+ readonly __wbg_get_userdecryptionresponsepayload_signcrypted_ciphertexts: (a: number) => [number, number];
446
+ readonly __wbg_requestid_free: (a: number, b: number) => void;
447
+ readonly __wbg_set_eip712domainmsg_chain_id: (a: number, b: number, c: number) => void;
448
+ readonly __wbg_set_eip712domainmsg_name: (a: number, b: number, c: number) => void;
449
+ readonly __wbg_set_eip712domainmsg_salt: (a: number, b: number, c: number) => void;
450
+ readonly __wbg_set_eip712domainmsg_verifying_contract: (a: number, b: number, c: number) => void;
451
+ readonly __wbg_set_eip712domainmsg_version: (a: number, b: number, c: number) => void;
452
+ readonly __wbg_set_typedciphertext_ciphertext_format: (a: number, b: number) => void;
453
+ readonly __wbg_set_typedciphertext_fhe_type: (a: number, b: number) => void;
454
+ readonly __wbg_set_typedplaintext_fhe_type: (a: number, b: number) => void;
454
455
  readonly __wbg_set_userdecryptionrequest_context_id: (a: number, b: number) => void;
455
- readonly __wbg_get_userdecryptionrequest_epoch_id: (a: number) => number;
456
+ readonly __wbg_set_userdecryptionrequest_domain: (a: number, b: number) => void;
456
457
  readonly __wbg_set_userdecryptionrequest_epoch_id: (a: number, b: number) => void;
457
- readonly __wbg_userdecryptionresponse_free: (a: number, b: number) => void;
458
- readonly __wbg_get_userdecryptionresponse_payload: (a: number) => number;
458
+ readonly __wbg_set_userdecryptionrequest_key_id: (a: number, b: number) => void;
459
+ readonly __wbg_set_userdecryptionrequest_request_id: (a: number, b: number) => void;
460
+ readonly __wbg_set_userdecryptionrequest_typed_ciphertexts: (a: number, b: number, c: number) => void;
459
461
  readonly __wbg_set_userdecryptionresponse_payload: (a: number, b: number) => void;
460
- readonly __wbg_userdecryptionresponsepayload_free: (a: number, b: number) => void;
461
- readonly __wbg_get_userdecryptionresponsepayload_signcrypted_ciphertexts: (a: number) => [number, number];
462
- readonly __wbg_set_userdecryptionresponsepayload_signcrypted_ciphertexts: (a: number, b: number, c: number) => void;
463
- readonly __wbg_get_userdecryptionresponsepayload_party_id: (a: number) => number;
464
- readonly __wbg_set_userdecryptionresponsepayload_party_id: (a: number, b: number) => void;
465
- readonly __wbg_get_userdecryptionresponsepayload_degree: (a: number) => number;
466
462
  readonly __wbg_set_userdecryptionresponsepayload_degree: (a: number, b: number) => void;
463
+ readonly __wbg_set_userdecryptionresponsepayload_party_id: (a: number, b: number) => void;
464
+ readonly __wbg_set_userdecryptionresponsepayload_signcrypted_ciphertexts: (a: number, b: number, c: number) => void;
465
+ readonly __wbg_typedciphertext_free: (a: number, b: number) => void;
467
466
  readonly __wbg_typedplaintext_free: (a: number, b: number) => void;
468
- readonly __wbg_get_typedplaintext_fhe_type: (a: number) => number;
469
- readonly __wbg_set_typedplaintext_fhe_type: (a: number, b: number) => void;
470
467
  readonly __wbg_typedsigncryptedciphertext_free: (a: number, b: number) => void;
468
+ readonly __wbg_userdecryptionrequest_free: (a: number, b: number) => void;
469
+ readonly __wbg_userdecryptionresponse_free: (a: number, b: number) => void;
470
+ readonly __wbg_userdecryptionresponsepayload_free: (a: number, b: number) => void;
471
471
  readonly __wbg_set_typedsigncryptedciphertext_fhe_type: (a: number, b: number) => void;
472
472
  readonly __wbg_set_typedsigncryptedciphertext_packing_factor: (a: number, b: number) => void;
473
- readonly __wbg_set_typedciphertext_ciphertext: (a: number, b: number, c: number) => void;
474
473
  readonly __wbg_set_requestid_request_id: (a: number, b: number, c: number) => void;
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;
476
+ readonly __wbg_set_typedplaintext_bytes: (a: number, b: number, c: number) => void;
477
+ readonly __wbg_set_typedsigncryptedciphertext_external_handle: (a: number, b: number, c: number) => void;
478
+ readonly __wbg_set_typedsigncryptedciphertext_signcrypted_ciphertext: (a: number, b: number, c: number) => void;
476
479
  readonly __wbg_set_userdecryptionrequest_client_address: (a: number, b: number, c: number) => void;
477
480
  readonly __wbg_set_userdecryptionrequest_enc_key: (a: number, b: number, c: number) => void;
478
481
  readonly __wbg_set_userdecryptionrequest_extra_data: (a: number, b: number, c: number) => void;
479
- readonly __wbg_set_userdecryptionresponse_signature: (a: number, b: number, c: number) => void;
480
482
  readonly __wbg_set_userdecryptionresponse_external_signature: (a: number, b: number, c: number) => void;
481
483
  readonly __wbg_set_userdecryptionresponse_extra_data: (a: number, b: number, c: number) => void;
482
- readonly __wbg_set_userdecryptionresponsepayload_verification_key: (a: number, b: number, c: number) => void;
484
+ readonly __wbg_set_userdecryptionresponse_signature: (a: number, b: number, c: number) => void;
483
485
  readonly __wbg_set_userdecryptionresponsepayload_digest: (a: number, b: number, c: number) => void;
484
- readonly __wbg_set_typedplaintext_bytes: (a: number, b: number, c: number) => void;
485
- readonly __wbg_set_typedsigncryptedciphertext_signcrypted_ciphertext: (a: number, b: number, c: number) => void;
486
- readonly __wbg_set_typedsigncryptedciphertext_external_handle: (a: number, b: number, c: number) => void;
486
+ readonly __wbg_set_userdecryptionresponsepayload_verification_key: (a: number, b: number, c: number) => void;
487
+ readonly __wbg_get_typedplaintext_bytes: (a: number) => [number, number];
488
+ readonly __wbg_get_typedsigncryptedciphertext_external_handle: (a: number) => [number, number];
489
+ readonly __wbg_get_typedsigncryptedciphertext_signcrypted_ciphertext: (a: number) => [number, number];
487
490
  readonly __wbg_get_userdecryptionrequest_enc_key: (a: number) => [number, number];
488
- readonly __wbg_get_userdecryptionresponse_signature: (a: number) => [number, number];
489
491
  readonly __wbg_get_userdecryptionresponse_external_signature: (a: number) => [number, number];
490
492
  readonly __wbg_get_userdecryptionresponse_extra_data: (a: number) => [number, number];
491
- readonly __wbg_get_userdecryptionresponsepayload_verification_key: (a: number) => [number, number];
493
+ readonly __wbg_get_userdecryptionresponse_signature: (a: number) => [number, number];
492
494
  readonly __wbg_get_userdecryptionresponsepayload_digest: (a: number) => [number, number];
493
- readonly __wbg_get_typedplaintext_bytes: (a: number) => [number, number];
494
- readonly __wbg_get_typedsigncryptedciphertext_signcrypted_ciphertext: (a: number) => [number, number];
495
- readonly __wbg_get_typedsigncryptedciphertext_external_handle: (a: number) => [number, number];
495
+ readonly __wbg_get_userdecryptionresponsepayload_verification_key: (a: number) => [number, number];
496
496
  readonly __wbg_get_typedsigncryptedciphertext_fhe_type: (a: number) => number;
497
497
  readonly __wbg_get_typedsigncryptedciphertext_packing_factor: (a: number) => number;
498
498
  readonly __wbindgen_malloc: (a: number, b: number) => number;
@@ -501,8 +501,8 @@ export interface InitOutput {
501
501
  readonly __externref_table_alloc: () => number;
502
502
  readonly __wbindgen_export_4: WebAssembly.Table;
503
503
  readonly __wbindgen_free: (a: number, b: number, c: number) => void;
504
- readonly __externref_table_dealloc: (a: number) => void;
505
504
  readonly __externref_drop_slice: (a: number, b: number) => void;
505
+ readonly __externref_table_dealloc: (a: number) => void;
506
506
  readonly __wbindgen_start: () => void;
507
507
  }
508
508
 
package/kms_lib.js CHANGED
@@ -166,26 +166,39 @@ function debugString(val) {
166
166
  // TODO we could test for more things here, like `Set`s and `Map`s.
167
167
  return className;
168
168
  }
169
- /**
170
- * @returns {number}
171
- */
172
- export function ml_kem_pke_pk_len() {
173
- const ret = wasm.ml_kem_pke_pk_len();
174
- return ret >>> 0;
169
+
170
+ function _assertClass(instance, klass) {
171
+ if (!(instance instanceof klass)) {
172
+ throw new Error(`expected instance of ${klass.name}`);
173
+ }
175
174
  }
176
175
 
176
+ function getArrayJsValueFromWasm0(ptr, len) {
177
+ ptr = ptr >>> 0;
178
+ const mem = getDataViewMemory0();
179
+ const result = [];
180
+ for (let i = ptr; i < ptr + 4 * len; i += 4) {
181
+ result.push(wasm.__wbindgen_export_4.get(mem.getUint32(i, true)));
182
+ }
183
+ wasm.__externref_drop_slice(ptr, len);
184
+ return result;
185
+ }
177
186
  /**
178
- * @returns {number}
187
+ * @param {Client} client
188
+ * @returns {ServerIdAddr[]}
179
189
  */
180
- export function ml_kem_pke_sk_len() {
181
- const ret = wasm.ml_kem_pke_sk_len();
182
- return ret >>> 0;
190
+ export function get_server_addrs(client) {
191
+ _assertClass(client, Client);
192
+ const ret = wasm.get_server_addrs(client.__wbg_ptr);
193
+ var v1 = getArrayJsValueFromWasm0(ret[0], ret[1]).slice();
194
+ wasm.__wbindgen_free(ret[0], ret[1] * 4, 4);
195
+ return v1;
183
196
  }
184
197
 
185
- function _assertClass(instance, klass) {
186
- if (!(instance instanceof klass)) {
187
- throw new Error(`expected instance of ${klass.name}`);
188
- }
198
+ function takeFromExternrefTable0(idx) {
199
+ const value = wasm.__wbindgen_export_4.get(idx);
200
+ wasm.__externref_table_dealloc(idx);
201
+ return value;
189
202
  }
190
203
 
191
204
  function getArrayU8FromWasm0(ptr, len) {
@@ -193,29 +206,44 @@ function getArrayU8FromWasm0(ptr, len) {
193
206
  return getUint8ArrayMemory0().subarray(ptr / 1, ptr / 1 + len);
194
207
  }
195
208
  /**
196
- * @param {PublicSigKey} pk
209
+ * @param {PrivateEncKeyMlKem512} sk
197
210
  * @returns {Uint8Array}
198
211
  */
199
- export function public_sig_key_to_u8vec(pk) {
200
- _assertClass(pk, PublicSigKey);
201
- const ret = wasm.public_sig_key_to_u8vec(pk.__wbg_ptr);
212
+ export function ml_kem_pke_sk_to_u8vec(sk) {
213
+ _assertClass(sk, PrivateEncKeyMlKem512);
214
+ const ret = wasm.ml_kem_pke_sk_to_u8vec(sk.__wbg_ptr);
215
+ if (ret[3]) {
216
+ throw takeFromExternrefTable0(ret[2]);
217
+ }
202
218
  var v1 = getArrayU8FromWasm0(ret[0], ret[1]).slice();
203
219
  wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);
204
220
  return v1;
205
221
  }
206
222
 
223
+ /**
224
+ * @param {Client} client
225
+ * @returns {string}
226
+ */
227
+ export function get_client_address(client) {
228
+ let deferred1_0;
229
+ let deferred1_1;
230
+ try {
231
+ _assertClass(client, Client);
232
+ const ret = wasm.get_client_address(client.__wbg_ptr);
233
+ deferred1_0 = ret[0];
234
+ deferred1_1 = ret[1];
235
+ return getStringFromWasm0(ret[0], ret[1]);
236
+ } finally {
237
+ wasm.__wbindgen_free(deferred1_0, deferred1_1, 1);
238
+ }
239
+ }
240
+
207
241
  function passArray8ToWasm0(arg, malloc) {
208
242
  const ptr = malloc(arg.length * 1, 1) >>> 0;
209
243
  getUint8ArrayMemory0().set(arg, ptr / 1);
210
244
  WASM_VECTOR_LEN = arg.length;
211
245
  return ptr;
212
246
  }
213
-
214
- function takeFromExternrefTable0(idx) {
215
- const value = wasm.__wbindgen_export_4.get(idx);
216
- wasm.__externref_table_dealloc(idx);
217
- return value;
218
- }
219
247
  /**
220
248
  * @param {Uint8Array} v
221
249
  * @returns {PublicSigKey}
@@ -246,131 +274,97 @@ export function private_sig_key_to_u8vec(sk) {
246
274
  }
247
275
 
248
276
  /**
249
- * @param {Uint8Array} v
250
- * @returns {PrivateSigKey}
277
+ * @param {PublicSigKey} pk
278
+ * @returns {Uint8Array}
251
279
  */
252
- export function u8vec_to_private_sig_key(v) {
253
- const ptr0 = passArray8ToWasm0(v, wasm.__wbindgen_malloc);
254
- const len0 = WASM_VECTOR_LEN;
255
- const ret = wasm.u8vec_to_private_sig_key(ptr0, len0);
256
- if (ret[2]) {
257
- throw takeFromExternrefTable0(ret[1]);
258
- }
259
- return PrivateSigKey.__wrap(ret[0]);
280
+ export function public_sig_key_to_u8vec(pk) {
281
+ _assertClass(pk, PublicSigKey);
282
+ const ret = wasm.public_sig_key_to_u8vec(pk.__wbg_ptr);
283
+ var v1 = getArrayU8FromWasm0(ret[0], ret[1]).slice();
284
+ wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);
285
+ return v1;
260
286
  }
261
287
 
262
288
  /**
263
- * Create a new [ServerIdAddr] structure that holds an ID and an address
264
- * which must be a valid EIP-55 address, notably prefixed with "0x".
265
- * @param {number} id
266
- * @param {string} addr
267
- * @returns {ServerIdAddr}
289
+ * This function is *not* used by relayer-sdk because the decryption
290
+ * is handled by [process_user_decryption_resp].
291
+ * It's just here for completeness and tests.
292
+ * @param {Uint8Array} ct
293
+ * @param {PrivateEncKeyMlKem512} my_sk
294
+ * @returns {Uint8Array}
268
295
  */
269
- export function new_server_id_addr(id, addr) {
270
- const ptr0 = passStringToWasm0(addr, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
296
+ export function ml_kem_pke_decrypt(ct, my_sk) {
297
+ const ptr0 = passArray8ToWasm0(ct, wasm.__wbindgen_malloc);
271
298
  const len0 = WASM_VECTOR_LEN;
272
- const ret = wasm.new_server_id_addr(id, ptr0, len0);
273
- if (ret[2]) {
274
- throw takeFromExternrefTable0(ret[1]);
275
- }
276
- return ServerIdAddr.__wrap(ret[0]);
299
+ _assertClass(my_sk, PrivateEncKeyMlKem512);
300
+ const ret = wasm.ml_kem_pke_decrypt(ptr0, len0, my_sk.__wbg_ptr);
301
+ var v2 = getArrayU8FromWasm0(ret[0], ret[1]).slice();
302
+ wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);
303
+ return v2;
277
304
  }
278
305
 
279
- function passArrayJsValueToWasm0(array, malloc) {
280
- const ptr = malloc(array.length * 4, 4) >>> 0;
281
- for (let i = 0; i < array.length; i++) {
282
- const add = addToExternrefTable0(array[i]);
283
- getDataViewMemory0().setUint32(ptr + 4 * i, add, true);
284
- }
285
- WASM_VECTOR_LEN = array.length;
286
- return ptr;
287
- }
288
306
  /**
289
- * Instantiate a new client.
290
- *
291
- * * `server_addrs` - a list of KMS server ID with EIP-55 addresses,
292
- * the elements in the list can be created using [new_server_id_addr].
293
- *
294
- * * `client_address_hex` - the client (wallet) address in hex,
295
- * must be prefixed with "0x".
296
- *
297
- * * `fhe_parameter` - the parameter choice, which can be either `"test"` or `"default"`.
298
- * The "default" parameter choice is selected if no matching string is found.
299
- * @param {ServerIdAddr[]} server_addrs
300
- * @param {string} client_address_hex
301
- * @param {string} fhe_parameter
302
- * @returns {Client}
307
+ * @returns {number}
303
308
  */
304
- export function new_client(server_addrs, client_address_hex, fhe_parameter) {
305
- const ptr0 = passArrayJsValueToWasm0(server_addrs, wasm.__wbindgen_malloc);
306
- const len0 = WASM_VECTOR_LEN;
307
- const ptr1 = passStringToWasm0(client_address_hex, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
308
- const len1 = WASM_VECTOR_LEN;
309
- const ptr2 = passStringToWasm0(fhe_parameter, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
310
- const len2 = WASM_VECTOR_LEN;
311
- const ret = wasm.new_client(ptr0, len0, ptr1, len1, ptr2, len2);
312
- if (ret[2]) {
313
- throw takeFromExternrefTable0(ret[1]);
314
- }
315
- return Client.__wrap(ret[0]);
309
+ export function ml_kem_pke_sk_len() {
310
+ const ret = wasm.ml_kem_pke_sk_len();
311
+ return ret >>> 0;
316
312
  }
317
313
 
318
- function getArrayJsValueFromWasm0(ptr, len) {
319
- ptr = ptr >>> 0;
320
- const mem = getDataViewMemory0();
321
- const result = [];
322
- for (let i = ptr; i < ptr + 4 * len; i += 4) {
323
- result.push(wasm.__wbindgen_export_4.get(mem.getUint32(i, true)));
324
- }
325
- wasm.__externref_drop_slice(ptr, len);
326
- return result;
327
- }
328
314
  /**
329
- * @param {Client} client
330
- * @returns {ServerIdAddr[]}
315
+ * @returns {number}
331
316
  */
332
- export function get_server_addrs(client) {
333
- _assertClass(client, Client);
334
- const ret = wasm.get_server_addrs(client.__wbg_ptr);
335
- var v1 = getArrayJsValueFromWasm0(ret[0], ret[1]).slice();
336
- wasm.__wbindgen_free(ret[0], ret[1] * 4, 4);
337
- return v1;
317
+ export function ml_kem_pke_pk_len() {
318
+ const ret = wasm.ml_kem_pke_pk_len();
319
+ return ret >>> 0;
338
320
  }
339
321
 
340
322
  /**
341
- * @param {Client} client
342
- * @returns {PrivateSigKey | undefined}
323
+ * This function is *not* used by relayer-sdk because the encryption
324
+ * happens on the KMS side. It's just here for completeness and tests.
325
+ * @param {Uint8Array} msg
326
+ * @param {PublicEncKeyMlKem512} their_pk
327
+ * @returns {Uint8Array}
343
328
  */
344
- export function get_client_secret_key(client) {
345
- _assertClass(client, Client);
346
- const ret = wasm.get_client_secret_key(client.__wbg_ptr);
347
- return ret === 0 ? undefined : PrivateSigKey.__wrap(ret);
329
+ export function ml_kem_pke_encrypt(msg, their_pk) {
330
+ const ptr0 = passArray8ToWasm0(msg, wasm.__wbindgen_malloc);
331
+ const len0 = WASM_VECTOR_LEN;
332
+ _assertClass(their_pk, PublicEncKeyMlKem512);
333
+ const ret = wasm.ml_kem_pke_encrypt(ptr0, len0, their_pk.__wbg_ptr);
334
+ var v2 = getArrayU8FromWasm0(ret[0], ret[1]).slice();
335
+ wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);
336
+ return v2;
348
337
  }
349
338
 
350
339
  /**
351
- * @param {Client} client
352
- * @returns {string}
340
+ * Create a new [ServerIdAddr] structure that holds an ID and an address
341
+ * which must be a valid EIP-55 address, notably prefixed with "0x".
342
+ * @param {number} id
343
+ * @param {string} addr
344
+ * @returns {ServerIdAddr}
353
345
  */
354
- export function get_client_address(client) {
355
- let deferred1_0;
356
- let deferred1_1;
357
- try {
358
- _assertClass(client, Client);
359
- const ret = wasm.get_client_address(client.__wbg_ptr);
360
- deferred1_0 = ret[0];
361
- deferred1_1 = ret[1];
362
- return getStringFromWasm0(ret[0], ret[1]);
363
- } finally {
364
- wasm.__wbindgen_free(deferred1_0, deferred1_1, 1);
346
+ export function new_server_id_addr(id, addr) {
347
+ const ptr0 = passStringToWasm0(addr, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
348
+ const len0 = WASM_VECTOR_LEN;
349
+ const ret = wasm.new_server_id_addr(id, ptr0, len0);
350
+ if (ret[2]) {
351
+ throw takeFromExternrefTable0(ret[1]);
365
352
  }
353
+ return ServerIdAddr.__wrap(ret[0]);
366
354
  }
367
355
 
368
356
  /**
357
+ * @param {Uint8Array} v
369
358
  * @returns {PrivateEncKeyMlKem512}
370
359
  */
371
- export function ml_kem_pke_keygen() {
372
- const ret = wasm.ml_kem_pke_keygen();
373
- return PrivateEncKeyMlKem512.__wrap(ret);
360
+ export function u8vec_to_ml_kem_pke_sk(v) {
361
+ const ptr0 = passArray8ToWasm0(v, wasm.__wbindgen_malloc);
362
+ const len0 = WASM_VECTOR_LEN;
363
+ const ret = wasm.u8vec_to_ml_kem_pke_sk(ptr0, len0);
364
+ if (ret[2]) {
365
+ throw takeFromExternrefTable0(ret[1]);
366
+ }
367
+ return PrivateEncKeyMlKem512.__wrap(ret[0]);
374
368
  }
375
369
 
376
370
  /**
@@ -398,82 +392,115 @@ export function ml_kem_pke_pk_to_u8vec(pk) {
398
392
  return v1;
399
393
  }
400
394
 
401
- /**
402
- * @param {PrivateEncKeyMlKem512} sk
403
- * @returns {Uint8Array}
404
- */
405
- export function ml_kem_pke_sk_to_u8vec(sk) {
406
- _assertClass(sk, PrivateEncKeyMlKem512);
407
- const ret = wasm.ml_kem_pke_sk_to_u8vec(sk.__wbg_ptr);
408
- if (ret[3]) {
409
- throw takeFromExternrefTable0(ret[2]);
410
- }
411
- var v1 = getArrayU8FromWasm0(ret[0], ret[1]).slice();
412
- wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);
413
- return v1;
414
- }
415
-
416
395
  /**
417
396
  * @param {Uint8Array} v
418
- * @returns {PublicEncKeyMlKem512}
397
+ * @returns {PrivateSigKey}
419
398
  */
420
- export function u8vec_to_ml_kem_pke_pk(v) {
399
+ export function u8vec_to_private_sig_key(v) {
421
400
  const ptr0 = passArray8ToWasm0(v, wasm.__wbindgen_malloc);
422
401
  const len0 = WASM_VECTOR_LEN;
423
- const ret = wasm.u8vec_to_ml_kem_pke_pk(ptr0, len0);
402
+ const ret = wasm.u8vec_to_private_sig_key(ptr0, len0);
424
403
  if (ret[2]) {
425
404
  throw takeFromExternrefTable0(ret[1]);
426
405
  }
427
- return PublicEncKeyMlKem512.__wrap(ret[0]);
406
+ return PrivateSigKey.__wrap(ret[0]);
428
407
  }
429
408
 
409
+ function passArrayJsValueToWasm0(array, malloc) {
410
+ const ptr = malloc(array.length * 4, 4) >>> 0;
411
+ for (let i = 0; i < array.length; i++) {
412
+ const add = addToExternrefTable0(array[i]);
413
+ getDataViewMemory0().setUint32(ptr + 4 * i, add, true);
414
+ }
415
+ WASM_VECTOR_LEN = array.length;
416
+ return ptr;
417
+ }
430
418
  /**
431
- * @param {Uint8Array} v
432
- * @returns {PrivateEncKeyMlKem512}
419
+ * Process the user_decryption response from Rust objects.
420
+ * Consider using [process_user_decryption_resp_from_js]
421
+ * when using the JS API.
422
+ * The result is a byte array representing a plaintext of any length.
423
+ *
424
+ * * `client` - client that wants to perform user_decryption.
425
+ *
426
+ * * `request` - the initial user_decryption request.
427
+ * Must be given if `verify` is true.
428
+ *
429
+ * * `eip712_domain` - the EIP-712 domain.
430
+ * Must be given if `verify` is true.
431
+ *
432
+ * * `agg_resp` - the vector of user_decryption responses.
433
+ *
434
+ * * `enc_pk` - The ephemeral public key.
435
+ *
436
+ * * `enc_sk` - The ephemeral secret key.
437
+ *
438
+ * * `verify` - Whether to perform signature verification for the response.
439
+ * It is insecure if `verify = false`!
440
+ * @param {Client} client
441
+ * @param {ParsedUserDecryptionRequest | null | undefined} request
442
+ * @param {Eip712DomainMsg | null | undefined} eip712_domain
443
+ * @param {UserDecryptionResponse[]} agg_resp
444
+ * @param {PublicEncKeyMlKem512} enc_pk
445
+ * @param {PrivateEncKeyMlKem512} enc_sk
446
+ * @param {boolean} verify
447
+ * @returns {TypedPlaintext[]}
433
448
  */
434
- export function u8vec_to_ml_kem_pke_sk(v) {
435
- const ptr0 = passArray8ToWasm0(v, wasm.__wbindgen_malloc);
436
- const len0 = WASM_VECTOR_LEN;
437
- const ret = wasm.u8vec_to_ml_kem_pke_sk(ptr0, len0);
438
- if (ret[2]) {
439
- throw takeFromExternrefTable0(ret[1]);
449
+ export function process_user_decryption_resp(client, request, eip712_domain, agg_resp, enc_pk, enc_sk, verify) {
450
+ _assertClass(client, Client);
451
+ let ptr0 = 0;
452
+ if (!isLikeNone(request)) {
453
+ _assertClass(request, ParsedUserDecryptionRequest);
454
+ ptr0 = request.__destroy_into_raw();
440
455
  }
441
- return PrivateEncKeyMlKem512.__wrap(ret[0]);
456
+ let ptr1 = 0;
457
+ if (!isLikeNone(eip712_domain)) {
458
+ _assertClass(eip712_domain, Eip712DomainMsg);
459
+ ptr1 = eip712_domain.__destroy_into_raw();
460
+ }
461
+ const ptr2 = passArrayJsValueToWasm0(agg_resp, wasm.__wbindgen_malloc);
462
+ const len2 = WASM_VECTOR_LEN;
463
+ _assertClass(enc_pk, PublicEncKeyMlKem512);
464
+ _assertClass(enc_sk, PrivateEncKeyMlKem512);
465
+ const ret = wasm.process_user_decryption_resp(client.__wbg_ptr, ptr0, ptr1, ptr2, len2, enc_pk.__wbg_ptr, enc_sk.__wbg_ptr, verify);
466
+ if (ret[3]) {
467
+ throw takeFromExternrefTable0(ret[2]);
468
+ }
469
+ var v4 = getArrayJsValueFromWasm0(ret[0], ret[1]).slice();
470
+ wasm.__wbindgen_free(ret[0], ret[1] * 4, 4);
471
+ return v4;
442
472
  }
443
473
 
444
474
  /**
445
- * This function is *not* used by relayer-sdk because the encryption
446
- * happens on the KMS side. It's just here for completeness and tests.
447
- * @param {Uint8Array} msg
448
- * @param {PublicEncKeyMlKem512} their_pk
449
- * @returns {Uint8Array}
475
+ * @param {Client} client
476
+ * @returns {PrivateSigKey | undefined}
450
477
  */
451
- export function ml_kem_pke_encrypt(msg, their_pk) {
452
- const ptr0 = passArray8ToWasm0(msg, wasm.__wbindgen_malloc);
453
- const len0 = WASM_VECTOR_LEN;
454
- _assertClass(their_pk, PublicEncKeyMlKem512);
455
- const ret = wasm.ml_kem_pke_encrypt(ptr0, len0, their_pk.__wbg_ptr);
456
- var v2 = getArrayU8FromWasm0(ret[0], ret[1]).slice();
457
- wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);
458
- return v2;
478
+ export function get_client_secret_key(client) {
479
+ _assertClass(client, Client);
480
+ const ret = wasm.get_client_secret_key(client.__wbg_ptr);
481
+ return ret === 0 ? undefined : PrivateSigKey.__wrap(ret);
459
482
  }
460
483
 
461
484
  /**
462
- * This function is *not* used by relayer-sdk because the decryption
463
- * is handled by [process_user_decryption_resp].
464
- * It's just here for completeness and tests.
465
- * @param {Uint8Array} ct
466
- * @param {PrivateEncKeyMlKem512} my_sk
467
- * @returns {Uint8Array}
485
+ * @returns {PrivateEncKeyMlKem512}
468
486
  */
469
- export function ml_kem_pke_decrypt(ct, my_sk) {
470
- const ptr0 = passArray8ToWasm0(ct, wasm.__wbindgen_malloc);
487
+ export function ml_kem_pke_keygen() {
488
+ const ret = wasm.ml_kem_pke_keygen();
489
+ return PrivateEncKeyMlKem512.__wrap(ret);
490
+ }
491
+
492
+ /**
493
+ * @param {Uint8Array} v
494
+ * @returns {PublicEncKeyMlKem512}
495
+ */
496
+ export function u8vec_to_ml_kem_pke_pk(v) {
497
+ const ptr0 = passArray8ToWasm0(v, wasm.__wbindgen_malloc);
471
498
  const len0 = WASM_VECTOR_LEN;
472
- _assertClass(my_sk, PrivateEncKeyMlKem512);
473
- const ret = wasm.ml_kem_pke_decrypt(ptr0, len0, my_sk.__wbg_ptr);
474
- var v2 = getArrayU8FromWasm0(ret[0], ret[1]).slice();
475
- wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);
476
- return v2;
499
+ const ret = wasm.u8vec_to_ml_kem_pke_pk(ptr0, len0);
500
+ if (ret[2]) {
501
+ throw takeFromExternrefTable0(ret[1]);
502
+ }
503
+ return PublicEncKeyMlKem512.__wrap(ret[0]);
477
504
  }
478
505
 
479
506
  /**
@@ -559,59 +586,33 @@ export function process_user_decryption_resp_from_js(client, request, eip712_dom
559
586
  }
560
587
 
561
588
  /**
562
- * Process the user_decryption response from Rust objects.
563
- * Consider using [process_user_decryption_resp_from_js]
564
- * when using the JS API.
565
- * The result is a byte array representing a plaintext of any length.
566
- *
567
- * * `client` - client that wants to perform user_decryption.
568
- *
569
- * * `request` - the initial user_decryption request.
570
- * Must be given if `verify` is true.
571
- *
572
- * * `eip712_domain` - the EIP-712 domain.
573
- * Must be given if `verify` is true.
574
- *
575
- * * `agg_resp` - the vector of user_decryption responses.
589
+ * Instantiate a new client.
576
590
  *
577
- * * `enc_pk` - The ephemeral public key.
591
+ * * `server_addrs` - a list of KMS server ID with EIP-55 addresses,
592
+ * the elements in the list can be created using [new_server_id_addr].
578
593
  *
579
- * * `enc_sk` - The ephemeral secret key.
594
+ * * `client_address_hex` - the client (wallet) address in hex,
595
+ * must be prefixed with "0x".
580
596
  *
581
- * * `verify` - Whether to perform signature verification for the response.
582
- * It is insecure if `verify = false`!
583
- * @param {Client} client
584
- * @param {ParsedUserDecryptionRequest | null | undefined} request
585
- * @param {Eip712DomainMsg | null | undefined} eip712_domain
586
- * @param {UserDecryptionResponse[]} agg_resp
587
- * @param {PublicEncKeyMlKem512} enc_pk
588
- * @param {PrivateEncKeyMlKem512} enc_sk
589
- * @param {boolean} verify
590
- * @returns {TypedPlaintext[]}
597
+ * * `fhe_parameter` - the parameter choice, which can be either `"test"` or `"default"`.
598
+ * The "default" parameter choice is selected if no matching string is found.
599
+ * @param {ServerIdAddr[]} server_addrs
600
+ * @param {string} client_address_hex
601
+ * @param {string} fhe_parameter
602
+ * @returns {Client}
591
603
  */
592
- export function process_user_decryption_resp(client, request, eip712_domain, agg_resp, enc_pk, enc_sk, verify) {
593
- _assertClass(client, Client);
594
- let ptr0 = 0;
595
- if (!isLikeNone(request)) {
596
- _assertClass(request, ParsedUserDecryptionRequest);
597
- ptr0 = request.__destroy_into_raw();
598
- }
599
- let ptr1 = 0;
600
- if (!isLikeNone(eip712_domain)) {
601
- _assertClass(eip712_domain, Eip712DomainMsg);
602
- ptr1 = eip712_domain.__destroy_into_raw();
603
- }
604
- const ptr2 = passArrayJsValueToWasm0(agg_resp, wasm.__wbindgen_malloc);
604
+ export function new_client(server_addrs, client_address_hex, fhe_parameter) {
605
+ const ptr0 = passArrayJsValueToWasm0(server_addrs, wasm.__wbindgen_malloc);
606
+ const len0 = WASM_VECTOR_LEN;
607
+ const ptr1 = passStringToWasm0(client_address_hex, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
608
+ const len1 = WASM_VECTOR_LEN;
609
+ const ptr2 = passStringToWasm0(fhe_parameter, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
605
610
  const len2 = WASM_VECTOR_LEN;
606
- _assertClass(enc_pk, PublicEncKeyMlKem512);
607
- _assertClass(enc_sk, PrivateEncKeyMlKem512);
608
- const ret = wasm.process_user_decryption_resp(client.__wbg_ptr, ptr0, ptr1, ptr2, len2, enc_pk.__wbg_ptr, enc_sk.__wbg_ptr, verify);
609
- if (ret[3]) {
610
- throw takeFromExternrefTable0(ret[2]);
611
+ const ret = wasm.new_client(ptr0, len0, ptr1, len1, ptr2, len2);
612
+ if (ret[2]) {
613
+ throw takeFromExternrefTable0(ret[1]);
611
614
  }
612
- var v4 = getArrayJsValueFromWasm0(ret[0], ret[1]).slice();
613
- wasm.__wbindgen_free(ret[0], ret[1] * 4, 4);
614
- return v4;
615
+ return Client.__wrap(ret[0]);
615
616
  }
616
617
 
617
618
  const CiphertextHandleFinalization = (typeof FinalizationRegistry === 'undefined')
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": "0.12.4",
8
+ "version": "0.12.5",
9
9
  "license": "BSD-3-Clause-Clear",
10
10
  "repository": {
11
11
  "type": "git",