tkms 0.12.3 → 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 +116 -116
- package/kms_lib.js +223 -222
- package/kms_lib_bg.wasm +0 -0
- package/package.json +1 -1
package/kms_lib.d.ts
CHANGED
|
@@ -1,49 +1,60 @@
|
|
|
1
1
|
/* tslint:disable */
|
|
2
2
|
/* eslint-disable */
|
|
3
|
-
export function
|
|
4
|
-
export function
|
|
5
|
-
export function
|
|
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
|
|
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
|
-
*
|
|
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
|
-
* * `
|
|
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
|
-
* * `
|
|
21
|
-
*
|
|
39
|
+
* * `request` - the initial user_decryption request.
|
|
40
|
+
* Must be given if `verify` is true.
|
|
22
41
|
*
|
|
23
|
-
* * `
|
|
24
|
-
*
|
|
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
|
|
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
|
-
*
|
|
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
|
-
* * `
|
|
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
|
-
* * `
|
|
126
|
+
* * `client_address_hex` - the client (wallet) address in hex,
|
|
127
|
+
* must be prefixed with "0x".
|
|
128
128
|
*
|
|
129
|
-
* * `
|
|
130
|
-
*
|
|
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
|
|
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
|
|
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
|
|
419
|
-
readonly
|
|
420
|
-
readonly
|
|
421
|
-
readonly
|
|
422
|
-
readonly
|
|
423
|
-
readonly
|
|
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
|
|
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
|
|
442
|
-
readonly
|
|
443
|
-
readonly
|
|
444
|
-
readonly
|
|
445
|
-
readonly
|
|
446
|
-
readonly
|
|
447
|
-
readonly
|
|
448
|
-
readonly
|
|
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
|
|
437
|
+
readonly __wbg_get_userdecryptionrequest_epoch_id: (a: number) => number;
|
|
452
438
|
readonly __wbg_get_userdecryptionrequest_extra_data: (a: number) => [number, number];
|
|
453
|
-
readonly
|
|
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
|
|
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
|
|
458
|
-
readonly
|
|
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
|
|
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
|
|
485
|
-
readonly
|
|
486
|
-
readonly
|
|
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
|
|
493
|
+
readonly __wbg_get_userdecryptionresponse_signature: (a: number) => [number, number];
|
|
492
494
|
readonly __wbg_get_userdecryptionresponsepayload_digest: (a: number) => [number, number];
|
|
493
|
-
readonly
|
|
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
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
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
|
-
* @
|
|
187
|
+
* @param {Client} client
|
|
188
|
+
* @returns {ServerIdAddr[]}
|
|
179
189
|
*/
|
|
180
|
-
export function
|
|
181
|
-
|
|
182
|
-
|
|
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
|
|
186
|
-
|
|
187
|
-
|
|
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 {
|
|
209
|
+
* @param {PrivateEncKeyMlKem512} sk
|
|
197
210
|
* @returns {Uint8Array}
|
|
198
211
|
*/
|
|
199
|
-
export function
|
|
200
|
-
_assertClass(
|
|
201
|
-
const ret = wasm.
|
|
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 {
|
|
250
|
-
* @returns {
|
|
277
|
+
* @param {PublicSigKey} pk
|
|
278
|
+
* @returns {Uint8Array}
|
|
251
279
|
*/
|
|
252
|
-
export function
|
|
253
|
-
|
|
254
|
-
const
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
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
|
-
*
|
|
264
|
-
*
|
|
265
|
-
*
|
|
266
|
-
* @param {
|
|
267
|
-
* @
|
|
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
|
|
270
|
-
const ptr0 =
|
|
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
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
return
|
|
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
|
-
*
|
|
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
|
|
305
|
-
const
|
|
306
|
-
|
|
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
|
-
* @
|
|
330
|
-
* @returns {ServerIdAddr[]}
|
|
315
|
+
* @returns {number}
|
|
331
316
|
*/
|
|
332
|
-
export function
|
|
333
|
-
|
|
334
|
-
|
|
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
|
-
*
|
|
342
|
-
*
|
|
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
|
|
345
|
-
|
|
346
|
-
const
|
|
347
|
-
|
|
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
|
-
*
|
|
352
|
-
*
|
|
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
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
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
|
|
372
|
-
const
|
|
373
|
-
|
|
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 {
|
|
397
|
+
* @returns {PrivateSigKey}
|
|
419
398
|
*/
|
|
420
|
-
export function
|
|
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.
|
|
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
|
|
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
|
-
*
|
|
432
|
-
*
|
|
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
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
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
|
-
|
|
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
|
-
*
|
|
446
|
-
*
|
|
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
|
|
452
|
-
|
|
453
|
-
const
|
|
454
|
-
|
|
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
|
-
*
|
|
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
|
|
470
|
-
const
|
|
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
|
-
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
return
|
|
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
|
-
*
|
|
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
|
-
* * `
|
|
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
|
-
* * `
|
|
594
|
+
* * `client_address_hex` - the client (wallet) address in hex,
|
|
595
|
+
* must be prefixed with "0x".
|
|
580
596
|
*
|
|
581
|
-
* * `
|
|
582
|
-
*
|
|
583
|
-
* @param {
|
|
584
|
-
* @param {
|
|
585
|
-
* @param {
|
|
586
|
-
* @
|
|
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
|
|
593
|
-
|
|
594
|
-
|
|
595
|
-
|
|
596
|
-
|
|
597
|
-
|
|
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
|
-
|
|
607
|
-
|
|
608
|
-
|
|
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
|
-
|
|
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
|