tkms 0.12.4 → 0.12.7
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 +111 -111
- package/kms_lib.js +269 -268
- package/kms_lib_bg.wasm +0 -0
- package/package.json +1 -1
package/kms_lib.d.ts
CHANGED
|
@@ -1,49 +1,5 @@
|
|
|
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;
|
|
6
|
-
export function u8vec_to_public_sig_key(v: Uint8Array): PublicSigKey;
|
|
7
|
-
export function private_sig_key_to_u8vec(sk: PrivateSigKey): Uint8Array;
|
|
8
|
-
export function u8vec_to_private_sig_key(v: Uint8Array): PrivateSigKey;
|
|
9
|
-
/**
|
|
10
|
-
* Create a new [ServerIdAddr] structure that holds an ID and an address
|
|
11
|
-
* which must be a valid EIP-55 address, notably prefixed with "0x".
|
|
12
|
-
*/
|
|
13
|
-
export function new_server_id_addr(id: number, addr: string): ServerIdAddr;
|
|
14
|
-
/**
|
|
15
|
-
* Instantiate a new client.
|
|
16
|
-
*
|
|
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].
|
|
19
|
-
*
|
|
20
|
-
* * `client_address_hex` - the client (wallet) address in hex,
|
|
21
|
-
* must be prefixed with "0x".
|
|
22
|
-
*
|
|
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.
|
|
25
|
-
*/
|
|
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[];
|
|
28
|
-
export function get_client_secret_key(client: Client): PrivateSigKey | undefined;
|
|
29
|
-
export function get_client_address(client: Client): string;
|
|
30
|
-
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
|
-
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
3
|
/**
|
|
48
4
|
* Process the user_decryption response from JavaScript objects.
|
|
49
5
|
* The returned result is a byte array representing a plaintext of any length,
|
|
@@ -106,6 +62,32 @@ export function ml_kem_pke_decrypt(ct: Uint8Array, my_sk: PrivateEncKeyMlKem512)
|
|
|
106
62
|
* It is insecure if `verify = false`!
|
|
107
63
|
*/
|
|
108
64
|
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[];
|
|
65
|
+
export function ml_kem_pke_keygen(): PrivateEncKeyMlKem512;
|
|
66
|
+
/**
|
|
67
|
+
* Create a new [ServerIdAddr] structure that holds an ID and an address
|
|
68
|
+
* which must be a valid EIP-55 address, notably prefixed with "0x".
|
|
69
|
+
*/
|
|
70
|
+
export function new_server_id_addr(id: number, addr: string): ServerIdAddr;
|
|
71
|
+
export function private_sig_key_to_u8vec(sk: PrivateSigKey): Uint8Array;
|
|
72
|
+
export function ml_kem_pke_get_pk(sk: PrivateEncKeyMlKem512): PublicEncKeyMlKem512;
|
|
73
|
+
export function u8vec_to_ml_kem_pke_pk(v: Uint8Array): PublicEncKeyMlKem512;
|
|
74
|
+
export function ml_kem_pke_sk_len(): number;
|
|
75
|
+
/**
|
|
76
|
+
* This function is *not* used by relayer-sdk because the decryption
|
|
77
|
+
* is handled by [process_user_decryption_resp].
|
|
78
|
+
* It's just here for completeness and tests.
|
|
79
|
+
*/
|
|
80
|
+
export function ml_kem_pke_decrypt(ct: Uint8Array, my_sk: PrivateEncKeyMlKem512): Uint8Array;
|
|
81
|
+
export function u8vec_to_public_sig_key(v: Uint8Array): PublicSigKey;
|
|
82
|
+
export function ml_kem_pke_sk_to_u8vec(sk: PrivateEncKeyMlKem512): Uint8Array;
|
|
83
|
+
export function ml_kem_pke_pk_to_u8vec(pk: PublicEncKeyMlKem512): Uint8Array;
|
|
84
|
+
export function u8vec_to_ml_kem_pke_sk(v: Uint8Array): PrivateEncKeyMlKem512;
|
|
85
|
+
export function ml_kem_pke_pk_len(): number;
|
|
86
|
+
/**
|
|
87
|
+
* This function is *not* used by relayer-sdk because the encryption
|
|
88
|
+
* happens on the KMS side. It's just here for completeness and tests.
|
|
89
|
+
*/
|
|
90
|
+
export function ml_kem_pke_encrypt(msg: Uint8Array, their_pk: PublicEncKeyMlKem512): Uint8Array;
|
|
109
91
|
/**
|
|
110
92
|
* Process the user_decryption response from Rust objects.
|
|
111
93
|
* Consider using [process_user_decryption_resp_from_js]
|
|
@@ -130,6 +112,24 @@ export function process_user_decryption_resp_from_js(client: Client, request: an
|
|
|
130
112
|
* It is insecure if `verify = false`!
|
|
131
113
|
*/
|
|
132
114
|
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[];
|
|
115
|
+
export function public_sig_key_to_u8vec(pk: PublicSigKey): Uint8Array;
|
|
116
|
+
export function get_server_addrs(client: Client): ServerIdAddr[];
|
|
117
|
+
export function u8vec_to_private_sig_key(v: Uint8Array): PrivateSigKey;
|
|
118
|
+
export function get_client_address(client: Client): string;
|
|
119
|
+
/**
|
|
120
|
+
* Instantiate a new client.
|
|
121
|
+
*
|
|
122
|
+
* * `server_addrs` - a list of KMS server ID with EIP-55 addresses,
|
|
123
|
+
* the elements in the list can be created using [new_server_id_addr].
|
|
124
|
+
*
|
|
125
|
+
* * `client_address_hex` - the client (wallet) address in hex,
|
|
126
|
+
* must be prefixed with "0x".
|
|
127
|
+
*
|
|
128
|
+
* * `fhe_parameter` - the parameter choice, which can be either `"test"` or `"default"`.
|
|
129
|
+
* The "default" parameter choice is selected if no matching string is found.
|
|
130
|
+
*/
|
|
131
|
+
export function new_client(server_addrs: ServerIdAddr[], client_address_hex: string, fhe_parameter: string): Client;
|
|
132
|
+
export function get_client_secret_key(client: Client): PrivateSigKey | undefined;
|
|
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;
|
package/kms_lib.js
CHANGED
|
@@ -166,21 +166,6 @@ 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;
|
|
175
|
-
}
|
|
176
|
-
|
|
177
|
-
/**
|
|
178
|
-
* @returns {number}
|
|
179
|
-
*/
|
|
180
|
-
export function ml_kem_pke_sk_len() {
|
|
181
|
-
const ret = wasm.ml_kem_pke_sk_len();
|
|
182
|
-
return ret >>> 0;
|
|
183
|
-
}
|
|
184
169
|
|
|
185
170
|
function _assertClass(instance, klass) {
|
|
186
171
|
if (!(instance instanceof klass)) {
|
|
@@ -188,75 +173,110 @@ function _assertClass(instance, klass) {
|
|
|
188
173
|
}
|
|
189
174
|
}
|
|
190
175
|
|
|
191
|
-
function getArrayU8FromWasm0(ptr, len) {
|
|
192
|
-
ptr = ptr >>> 0;
|
|
193
|
-
return getUint8ArrayMemory0().subarray(ptr / 1, ptr / 1 + len);
|
|
194
|
-
}
|
|
195
|
-
/**
|
|
196
|
-
* @param {PublicSigKey} pk
|
|
197
|
-
* @returns {Uint8Array}
|
|
198
|
-
*/
|
|
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);
|
|
202
|
-
var v1 = getArrayU8FromWasm0(ret[0], ret[1]).slice();
|
|
203
|
-
wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);
|
|
204
|
-
return v1;
|
|
205
|
-
}
|
|
206
|
-
|
|
207
|
-
function passArray8ToWasm0(arg, malloc) {
|
|
208
|
-
const ptr = malloc(arg.length * 1, 1) >>> 0;
|
|
209
|
-
getUint8ArrayMemory0().set(arg, ptr / 1);
|
|
210
|
-
WASM_VECTOR_LEN = arg.length;
|
|
211
|
-
return ptr;
|
|
212
|
-
}
|
|
213
|
-
|
|
214
176
|
function takeFromExternrefTable0(idx) {
|
|
215
177
|
const value = wasm.__wbindgen_export_4.get(idx);
|
|
216
178
|
wasm.__externref_table_dealloc(idx);
|
|
217
179
|
return value;
|
|
218
180
|
}
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
const ret = wasm.u8vec_to_public_sig_key(ptr0, len0);
|
|
227
|
-
if (ret[2]) {
|
|
228
|
-
throw takeFromExternrefTable0(ret[1]);
|
|
181
|
+
|
|
182
|
+
function getArrayJsValueFromWasm0(ptr, len) {
|
|
183
|
+
ptr = ptr >>> 0;
|
|
184
|
+
const mem = getDataViewMemory0();
|
|
185
|
+
const result = [];
|
|
186
|
+
for (let i = ptr; i < ptr + 4 * len; i += 4) {
|
|
187
|
+
result.push(wasm.__wbindgen_export_4.get(mem.getUint32(i, true)));
|
|
229
188
|
}
|
|
230
|
-
|
|
189
|
+
wasm.__externref_drop_slice(ptr, len);
|
|
190
|
+
return result;
|
|
231
191
|
}
|
|
232
|
-
|
|
233
192
|
/**
|
|
234
|
-
*
|
|
235
|
-
*
|
|
193
|
+
* Process the user_decryption response from JavaScript objects.
|
|
194
|
+
* The returned result is a byte array representing a plaintext of any length,
|
|
195
|
+
* postprocessing is returned to turn it into an integer.
|
|
196
|
+
*
|
|
197
|
+
* * `client` - client that wants to perform user_decryption.
|
|
198
|
+
*
|
|
199
|
+
* * `request` - the initial user_decryption request JS object.
|
|
200
|
+
* It can be set to null if `verify` is false.
|
|
201
|
+
* Otherwise the caller needs to give the following JS object.
|
|
202
|
+
* Note that `client_address` and `eip712_verifying_contract` follow EIP-55.
|
|
203
|
+
* The signature field is not needed.
|
|
204
|
+
* ```
|
|
205
|
+
* {
|
|
206
|
+
* signature: undefined,
|
|
207
|
+
* client_address: '0x17853A630aAe15AED549B2B874de08B73C0F59c5',
|
|
208
|
+
* enc_key: '2000000000000000df2fcacb774f03187f3802a27259f45c06d33cefa68d9c53426b15ad531aa822',
|
|
209
|
+
* ciphertext_handles: [ '0748b542afe2353c86cb707e3d21044b0be1fd18efc7cbaa6a415af055bfb358' ]
|
|
210
|
+
* eip712_verifying_contract: '0x66f9664f97F2b50F62D13eA064982f936dE76657'
|
|
211
|
+
* }
|
|
212
|
+
* ```
|
|
213
|
+
*
|
|
214
|
+
* * `eip712_domain` - the EIP-712 domain JS object.
|
|
215
|
+
* It can be set to null if `verify` is false.
|
|
216
|
+
* Otherwise the caller needs to give the following JS object.
|
|
217
|
+
* Note that `salt` is optional and `verifying_contract` follows EIP-55,
|
|
218
|
+
* additionally, `chain_id` is an array of u8.
|
|
219
|
+
* ```
|
|
220
|
+
* {
|
|
221
|
+
* name: 'Authorization token',
|
|
222
|
+
* version: '1',
|
|
223
|
+
* chain_id: [
|
|
224
|
+
* 70, 31, 0, 0, 0, 0, 0, 0, 0,
|
|
225
|
+
* 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
226
|
+
* 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
227
|
+
* 0, 0, 0, 0, 0
|
|
228
|
+
* ],
|
|
229
|
+
* verifying_contract: '0x66f9664f97F2b50F62D13eA064982f936dE76657',
|
|
230
|
+
* salt: []
|
|
231
|
+
* }
|
|
232
|
+
* ```
|
|
233
|
+
*
|
|
234
|
+
* * `agg_resp` - the response JS object from the gateway.
|
|
235
|
+
* It has two fields like so, both are hex encoded byte arrays.
|
|
236
|
+
* ```
|
|
237
|
+
* [
|
|
238
|
+
* {
|
|
239
|
+
* signature: '69e7e040cab157aa819015b321c012dccb1545ffefd325b359b492653f0347517e28e66c572cdc299e259024329859ff9fcb0096e1ce072af0b6e1ca1fe25ec6',
|
|
240
|
+
* payload: '0100000029...',
|
|
241
|
+
* extra_data: '01234...',
|
|
242
|
+
* }
|
|
243
|
+
* ]
|
|
244
|
+
* ```
|
|
245
|
+
*
|
|
246
|
+
* * `enc_pk` - The ephemeral public key.
|
|
247
|
+
*
|
|
248
|
+
* * `enc_sk` - The ephemeral secret key.
|
|
249
|
+
*
|
|
250
|
+
* * `verify` - Whether to perform signature verification for the response.
|
|
251
|
+
* It is insecure if `verify = false`!
|
|
252
|
+
* @param {Client} client
|
|
253
|
+
* @param {any} request
|
|
254
|
+
* @param {any} eip712_domain
|
|
255
|
+
* @param {any} agg_resp
|
|
256
|
+
* @param {PublicEncKeyMlKem512} enc_pk
|
|
257
|
+
* @param {PrivateEncKeyMlKem512} enc_sk
|
|
258
|
+
* @param {boolean} verify
|
|
259
|
+
* @returns {TypedPlaintext[]}
|
|
236
260
|
*/
|
|
237
|
-
export function
|
|
238
|
-
_assertClass(
|
|
239
|
-
|
|
261
|
+
export function process_user_decryption_resp_from_js(client, request, eip712_domain, agg_resp, enc_pk, enc_sk, verify) {
|
|
262
|
+
_assertClass(client, Client);
|
|
263
|
+
_assertClass(enc_pk, PublicEncKeyMlKem512);
|
|
264
|
+
_assertClass(enc_sk, PrivateEncKeyMlKem512);
|
|
265
|
+
const ret = wasm.process_user_decryption_resp_from_js(client.__wbg_ptr, request, eip712_domain, agg_resp, enc_pk.__wbg_ptr, enc_sk.__wbg_ptr, verify);
|
|
240
266
|
if (ret[3]) {
|
|
241
267
|
throw takeFromExternrefTable0(ret[2]);
|
|
242
268
|
}
|
|
243
|
-
var v1 =
|
|
244
|
-
wasm.__wbindgen_free(ret[0], ret[1] *
|
|
269
|
+
var v1 = getArrayJsValueFromWasm0(ret[0], ret[1]).slice();
|
|
270
|
+
wasm.__wbindgen_free(ret[0], ret[1] * 4, 4);
|
|
245
271
|
return v1;
|
|
246
272
|
}
|
|
247
273
|
|
|
248
274
|
/**
|
|
249
|
-
* @
|
|
250
|
-
* @returns {PrivateSigKey}
|
|
275
|
+
* @returns {PrivateEncKeyMlKem512}
|
|
251
276
|
*/
|
|
252
|
-
export function
|
|
253
|
-
const
|
|
254
|
-
|
|
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]);
|
|
277
|
+
export function ml_kem_pke_keygen() {
|
|
278
|
+
const ret = wasm.ml_kem_pke_keygen();
|
|
279
|
+
return PrivateEncKeyMlKem512.__wrap(ret);
|
|
260
280
|
}
|
|
261
281
|
|
|
262
282
|
/**
|
|
@@ -276,120 +296,102 @@ export function new_server_id_addr(id, addr) {
|
|
|
276
296
|
return ServerIdAddr.__wrap(ret[0]);
|
|
277
297
|
}
|
|
278
298
|
|
|
279
|
-
function
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
const add = addToExternrefTable0(array[i]);
|
|
283
|
-
getDataViewMemory0().setUint32(ptr + 4 * i, add, true);
|
|
284
|
-
}
|
|
285
|
-
WASM_VECTOR_LEN = array.length;
|
|
286
|
-
return ptr;
|
|
299
|
+
function getArrayU8FromWasm0(ptr, len) {
|
|
300
|
+
ptr = ptr >>> 0;
|
|
301
|
+
return getUint8ArrayMemory0().subarray(ptr / 1, ptr / 1 + len);
|
|
287
302
|
}
|
|
288
303
|
/**
|
|
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}
|
|
304
|
+
* @param {PrivateSigKey} sk
|
|
305
|
+
* @returns {Uint8Array}
|
|
303
306
|
*/
|
|
304
|
-
export function
|
|
305
|
-
|
|
306
|
-
const
|
|
307
|
-
|
|
308
|
-
|
|
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]);
|
|
307
|
+
export function private_sig_key_to_u8vec(sk) {
|
|
308
|
+
_assertClass(sk, PrivateSigKey);
|
|
309
|
+
const ret = wasm.private_sig_key_to_u8vec(sk.__wbg_ptr);
|
|
310
|
+
if (ret[3]) {
|
|
311
|
+
throw takeFromExternrefTable0(ret[2]);
|
|
314
312
|
}
|
|
315
|
-
|
|
313
|
+
var v1 = getArrayU8FromWasm0(ret[0], ret[1]).slice();
|
|
314
|
+
wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);
|
|
315
|
+
return v1;
|
|
316
316
|
}
|
|
317
317
|
|
|
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
318
|
/**
|
|
329
|
-
* @param {
|
|
330
|
-
* @returns {
|
|
319
|
+
* @param {PrivateEncKeyMlKem512} sk
|
|
320
|
+
* @returns {PublicEncKeyMlKem512}
|
|
331
321
|
*/
|
|
332
|
-
export function
|
|
333
|
-
_assertClass(
|
|
334
|
-
const ret = wasm.
|
|
335
|
-
|
|
336
|
-
wasm.__wbindgen_free(ret[0], ret[1] * 4, 4);
|
|
337
|
-
return v1;
|
|
322
|
+
export function ml_kem_pke_get_pk(sk) {
|
|
323
|
+
_assertClass(sk, PrivateEncKeyMlKem512);
|
|
324
|
+
const ret = wasm.ml_kem_pke_get_pk(sk.__wbg_ptr);
|
|
325
|
+
return PublicEncKeyMlKem512.__wrap(ret);
|
|
338
326
|
}
|
|
339
327
|
|
|
328
|
+
function passArray8ToWasm0(arg, malloc) {
|
|
329
|
+
const ptr = malloc(arg.length * 1, 1) >>> 0;
|
|
330
|
+
getUint8ArrayMemory0().set(arg, ptr / 1);
|
|
331
|
+
WASM_VECTOR_LEN = arg.length;
|
|
332
|
+
return ptr;
|
|
333
|
+
}
|
|
340
334
|
/**
|
|
341
|
-
* @param {
|
|
342
|
-
* @returns {
|
|
335
|
+
* @param {Uint8Array} v
|
|
336
|
+
* @returns {PublicEncKeyMlKem512}
|
|
343
337
|
*/
|
|
344
|
-
export function
|
|
345
|
-
|
|
346
|
-
const
|
|
347
|
-
|
|
338
|
+
export function u8vec_to_ml_kem_pke_pk(v) {
|
|
339
|
+
const ptr0 = passArray8ToWasm0(v, wasm.__wbindgen_malloc);
|
|
340
|
+
const len0 = WASM_VECTOR_LEN;
|
|
341
|
+
const ret = wasm.u8vec_to_ml_kem_pke_pk(ptr0, len0);
|
|
342
|
+
if (ret[2]) {
|
|
343
|
+
throw takeFromExternrefTable0(ret[1]);
|
|
344
|
+
}
|
|
345
|
+
return PublicEncKeyMlKem512.__wrap(ret[0]);
|
|
348
346
|
}
|
|
349
347
|
|
|
350
348
|
/**
|
|
351
|
-
* @
|
|
352
|
-
* @returns {string}
|
|
349
|
+
* @returns {number}
|
|
353
350
|
*/
|
|
354
|
-
export function
|
|
355
|
-
|
|
356
|
-
|
|
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);
|
|
365
|
-
}
|
|
351
|
+
export function ml_kem_pke_sk_len() {
|
|
352
|
+
const ret = wasm.ml_kem_pke_sk_len();
|
|
353
|
+
return ret >>> 0;
|
|
366
354
|
}
|
|
367
355
|
|
|
368
356
|
/**
|
|
369
|
-
*
|
|
357
|
+
* This function is *not* used by relayer-sdk because the decryption
|
|
358
|
+
* is handled by [process_user_decryption_resp].
|
|
359
|
+
* It's just here for completeness and tests.
|
|
360
|
+
* @param {Uint8Array} ct
|
|
361
|
+
* @param {PrivateEncKeyMlKem512} my_sk
|
|
362
|
+
* @returns {Uint8Array}
|
|
370
363
|
*/
|
|
371
|
-
export function
|
|
372
|
-
const
|
|
373
|
-
|
|
364
|
+
export function ml_kem_pke_decrypt(ct, my_sk) {
|
|
365
|
+
const ptr0 = passArray8ToWasm0(ct, wasm.__wbindgen_malloc);
|
|
366
|
+
const len0 = WASM_VECTOR_LEN;
|
|
367
|
+
_assertClass(my_sk, PrivateEncKeyMlKem512);
|
|
368
|
+
const ret = wasm.ml_kem_pke_decrypt(ptr0, len0, my_sk.__wbg_ptr);
|
|
369
|
+
var v2 = getArrayU8FromWasm0(ret[0], ret[1]).slice();
|
|
370
|
+
wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);
|
|
371
|
+
return v2;
|
|
374
372
|
}
|
|
375
373
|
|
|
376
374
|
/**
|
|
377
|
-
* @param {
|
|
378
|
-
* @returns {
|
|
375
|
+
* @param {Uint8Array} v
|
|
376
|
+
* @returns {PublicSigKey}
|
|
379
377
|
*/
|
|
380
|
-
export function
|
|
381
|
-
|
|
382
|
-
const
|
|
383
|
-
|
|
378
|
+
export function u8vec_to_public_sig_key(v) {
|
|
379
|
+
const ptr0 = passArray8ToWasm0(v, wasm.__wbindgen_malloc);
|
|
380
|
+
const len0 = WASM_VECTOR_LEN;
|
|
381
|
+
const ret = wasm.u8vec_to_public_sig_key(ptr0, len0);
|
|
382
|
+
if (ret[2]) {
|
|
383
|
+
throw takeFromExternrefTable0(ret[1]);
|
|
384
|
+
}
|
|
385
|
+
return PublicSigKey.__wrap(ret[0]);
|
|
384
386
|
}
|
|
385
387
|
|
|
386
388
|
/**
|
|
387
|
-
* @param {
|
|
389
|
+
* @param {PrivateEncKeyMlKem512} sk
|
|
388
390
|
* @returns {Uint8Array}
|
|
389
391
|
*/
|
|
390
|
-
export function
|
|
391
|
-
_assertClass(
|
|
392
|
-
const ret = wasm.
|
|
392
|
+
export function ml_kem_pke_sk_to_u8vec(sk) {
|
|
393
|
+
_assertClass(sk, PrivateEncKeyMlKem512);
|
|
394
|
+
const ret = wasm.ml_kem_pke_sk_to_u8vec(sk.__wbg_ptr);
|
|
393
395
|
if (ret[3]) {
|
|
394
396
|
throw takeFromExternrefTable0(ret[2]);
|
|
395
397
|
}
|
|
@@ -399,12 +401,12 @@ export function ml_kem_pke_pk_to_u8vec(pk) {
|
|
|
399
401
|
}
|
|
400
402
|
|
|
401
403
|
/**
|
|
402
|
-
* @param {
|
|
404
|
+
* @param {PublicEncKeyMlKem512} pk
|
|
403
405
|
* @returns {Uint8Array}
|
|
404
406
|
*/
|
|
405
|
-
export function
|
|
406
|
-
_assertClass(
|
|
407
|
-
const ret = wasm.
|
|
407
|
+
export function ml_kem_pke_pk_to_u8vec(pk) {
|
|
408
|
+
_assertClass(pk, PublicEncKeyMlKem512);
|
|
409
|
+
const ret = wasm.ml_kem_pke_pk_to_u8vec(pk.__wbg_ptr);
|
|
408
410
|
if (ret[3]) {
|
|
409
411
|
throw takeFromExternrefTable0(ret[2]);
|
|
410
412
|
}
|
|
@@ -413,20 +415,6 @@ export function ml_kem_pke_sk_to_u8vec(sk) {
|
|
|
413
415
|
return v1;
|
|
414
416
|
}
|
|
415
417
|
|
|
416
|
-
/**
|
|
417
|
-
* @param {Uint8Array} v
|
|
418
|
-
* @returns {PublicEncKeyMlKem512}
|
|
419
|
-
*/
|
|
420
|
-
export function u8vec_to_ml_kem_pke_pk(v) {
|
|
421
|
-
const ptr0 = passArray8ToWasm0(v, wasm.__wbindgen_malloc);
|
|
422
|
-
const len0 = WASM_VECTOR_LEN;
|
|
423
|
-
const ret = wasm.u8vec_to_ml_kem_pke_pk(ptr0, len0);
|
|
424
|
-
if (ret[2]) {
|
|
425
|
-
throw takeFromExternrefTable0(ret[1]);
|
|
426
|
-
}
|
|
427
|
-
return PublicEncKeyMlKem512.__wrap(ret[0]);
|
|
428
|
-
}
|
|
429
|
-
|
|
430
418
|
/**
|
|
431
419
|
* @param {Uint8Array} v
|
|
432
420
|
* @returns {PrivateEncKeyMlKem512}
|
|
@@ -441,6 +429,14 @@ export function u8vec_to_ml_kem_pke_sk(v) {
|
|
|
441
429
|
return PrivateEncKeyMlKem512.__wrap(ret[0]);
|
|
442
430
|
}
|
|
443
431
|
|
|
432
|
+
/**
|
|
433
|
+
* @returns {number}
|
|
434
|
+
*/
|
|
435
|
+
export function ml_kem_pke_pk_len() {
|
|
436
|
+
const ret = wasm.ml_kem_pke_pk_len();
|
|
437
|
+
return ret >>> 0;
|
|
438
|
+
}
|
|
439
|
+
|
|
444
440
|
/**
|
|
445
441
|
* This function is *not* used by relayer-sdk because the encryption
|
|
446
442
|
* happens on the KMS side. It's just here for completeness and tests.
|
|
@@ -458,106 +454,15 @@ export function ml_kem_pke_encrypt(msg, their_pk) {
|
|
|
458
454
|
return v2;
|
|
459
455
|
}
|
|
460
456
|
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
*
|
|
466
|
-
* @param {PrivateEncKeyMlKem512} my_sk
|
|
467
|
-
* @returns {Uint8Array}
|
|
468
|
-
*/
|
|
469
|
-
export function ml_kem_pke_decrypt(ct, my_sk) {
|
|
470
|
-
const ptr0 = passArray8ToWasm0(ct, wasm.__wbindgen_malloc);
|
|
471
|
-
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;
|
|
477
|
-
}
|
|
478
|
-
|
|
479
|
-
/**
|
|
480
|
-
* Process the user_decryption response from JavaScript objects.
|
|
481
|
-
* The returned result is a byte array representing a plaintext of any length,
|
|
482
|
-
* postprocessing is returned to turn it into an integer.
|
|
483
|
-
*
|
|
484
|
-
* * `client` - client that wants to perform user_decryption.
|
|
485
|
-
*
|
|
486
|
-
* * `request` - the initial user_decryption request JS object.
|
|
487
|
-
* It can be set to null if `verify` is false.
|
|
488
|
-
* Otherwise the caller needs to give the following JS object.
|
|
489
|
-
* Note that `client_address` and `eip712_verifying_contract` follow EIP-55.
|
|
490
|
-
* The signature field is not needed.
|
|
491
|
-
* ```
|
|
492
|
-
* {
|
|
493
|
-
* signature: undefined,
|
|
494
|
-
* client_address: '0x17853A630aAe15AED549B2B874de08B73C0F59c5',
|
|
495
|
-
* enc_key: '2000000000000000df2fcacb774f03187f3802a27259f45c06d33cefa68d9c53426b15ad531aa822',
|
|
496
|
-
* ciphertext_handles: [ '0748b542afe2353c86cb707e3d21044b0be1fd18efc7cbaa6a415af055bfb358' ]
|
|
497
|
-
* eip712_verifying_contract: '0x66f9664f97F2b50F62D13eA064982f936dE76657'
|
|
498
|
-
* }
|
|
499
|
-
* ```
|
|
500
|
-
*
|
|
501
|
-
* * `eip712_domain` - the EIP-712 domain JS object.
|
|
502
|
-
* It can be set to null if `verify` is false.
|
|
503
|
-
* Otherwise the caller needs to give the following JS object.
|
|
504
|
-
* Note that `salt` is optional and `verifying_contract` follows EIP-55,
|
|
505
|
-
* additionally, `chain_id` is an array of u8.
|
|
506
|
-
* ```
|
|
507
|
-
* {
|
|
508
|
-
* name: 'Authorization token',
|
|
509
|
-
* version: '1',
|
|
510
|
-
* chain_id: [
|
|
511
|
-
* 70, 31, 0, 0, 0, 0, 0, 0, 0,
|
|
512
|
-
* 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
513
|
-
* 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
514
|
-
* 0, 0, 0, 0, 0
|
|
515
|
-
* ],
|
|
516
|
-
* verifying_contract: '0x66f9664f97F2b50F62D13eA064982f936dE76657',
|
|
517
|
-
* salt: []
|
|
518
|
-
* }
|
|
519
|
-
* ```
|
|
520
|
-
*
|
|
521
|
-
* * `agg_resp` - the response JS object from the gateway.
|
|
522
|
-
* It has two fields like so, both are hex encoded byte arrays.
|
|
523
|
-
* ```
|
|
524
|
-
* [
|
|
525
|
-
* {
|
|
526
|
-
* signature: '69e7e040cab157aa819015b321c012dccb1545ffefd325b359b492653f0347517e28e66c572cdc299e259024329859ff9fcb0096e1ce072af0b6e1ca1fe25ec6',
|
|
527
|
-
* payload: '0100000029...',
|
|
528
|
-
* extra_data: '01234...',
|
|
529
|
-
* }
|
|
530
|
-
* ]
|
|
531
|
-
* ```
|
|
532
|
-
*
|
|
533
|
-
* * `enc_pk` - The ephemeral public key.
|
|
534
|
-
*
|
|
535
|
-
* * `enc_sk` - The ephemeral secret key.
|
|
536
|
-
*
|
|
537
|
-
* * `verify` - Whether to perform signature verification for the response.
|
|
538
|
-
* It is insecure if `verify = false`!
|
|
539
|
-
* @param {Client} client
|
|
540
|
-
* @param {any} request
|
|
541
|
-
* @param {any} eip712_domain
|
|
542
|
-
* @param {any} agg_resp
|
|
543
|
-
* @param {PublicEncKeyMlKem512} enc_pk
|
|
544
|
-
* @param {PrivateEncKeyMlKem512} enc_sk
|
|
545
|
-
* @param {boolean} verify
|
|
546
|
-
* @returns {TypedPlaintext[]}
|
|
547
|
-
*/
|
|
548
|
-
export function process_user_decryption_resp_from_js(client, request, eip712_domain, agg_resp, enc_pk, enc_sk, verify) {
|
|
549
|
-
_assertClass(client, Client);
|
|
550
|
-
_assertClass(enc_pk, PublicEncKeyMlKem512);
|
|
551
|
-
_assertClass(enc_sk, PrivateEncKeyMlKem512);
|
|
552
|
-
const ret = wasm.process_user_decryption_resp_from_js(client.__wbg_ptr, request, eip712_domain, agg_resp, enc_pk.__wbg_ptr, enc_sk.__wbg_ptr, verify);
|
|
553
|
-
if (ret[3]) {
|
|
554
|
-
throw takeFromExternrefTable0(ret[2]);
|
|
457
|
+
function passArrayJsValueToWasm0(array, malloc) {
|
|
458
|
+
const ptr = malloc(array.length * 4, 4) >>> 0;
|
|
459
|
+
for (let i = 0; i < array.length; i++) {
|
|
460
|
+
const add = addToExternrefTable0(array[i]);
|
|
461
|
+
getDataViewMemory0().setUint32(ptr + 4 * i, add, true);
|
|
555
462
|
}
|
|
556
|
-
|
|
557
|
-
|
|
558
|
-
return v1;
|
|
463
|
+
WASM_VECTOR_LEN = array.length;
|
|
464
|
+
return ptr;
|
|
559
465
|
}
|
|
560
|
-
|
|
561
466
|
/**
|
|
562
467
|
* Process the user_decryption response from Rust objects.
|
|
563
468
|
* Consider using [process_user_decryption_resp_from_js]
|
|
@@ -614,6 +519,102 @@ export function process_user_decryption_resp(client, request, eip712_domain, agg
|
|
|
614
519
|
return v4;
|
|
615
520
|
}
|
|
616
521
|
|
|
522
|
+
/**
|
|
523
|
+
* @param {PublicSigKey} pk
|
|
524
|
+
* @returns {Uint8Array}
|
|
525
|
+
*/
|
|
526
|
+
export function public_sig_key_to_u8vec(pk) {
|
|
527
|
+
_assertClass(pk, PublicSigKey);
|
|
528
|
+
const ret = wasm.public_sig_key_to_u8vec(pk.__wbg_ptr);
|
|
529
|
+
var v1 = getArrayU8FromWasm0(ret[0], ret[1]).slice();
|
|
530
|
+
wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);
|
|
531
|
+
return v1;
|
|
532
|
+
}
|
|
533
|
+
|
|
534
|
+
/**
|
|
535
|
+
* @param {Client} client
|
|
536
|
+
* @returns {ServerIdAddr[]}
|
|
537
|
+
*/
|
|
538
|
+
export function get_server_addrs(client) {
|
|
539
|
+
_assertClass(client, Client);
|
|
540
|
+
const ret = wasm.get_server_addrs(client.__wbg_ptr);
|
|
541
|
+
var v1 = getArrayJsValueFromWasm0(ret[0], ret[1]).slice();
|
|
542
|
+
wasm.__wbindgen_free(ret[0], ret[1] * 4, 4);
|
|
543
|
+
return v1;
|
|
544
|
+
}
|
|
545
|
+
|
|
546
|
+
/**
|
|
547
|
+
* @param {Uint8Array} v
|
|
548
|
+
* @returns {PrivateSigKey}
|
|
549
|
+
*/
|
|
550
|
+
export function u8vec_to_private_sig_key(v) {
|
|
551
|
+
const ptr0 = passArray8ToWasm0(v, wasm.__wbindgen_malloc);
|
|
552
|
+
const len0 = WASM_VECTOR_LEN;
|
|
553
|
+
const ret = wasm.u8vec_to_private_sig_key(ptr0, len0);
|
|
554
|
+
if (ret[2]) {
|
|
555
|
+
throw takeFromExternrefTable0(ret[1]);
|
|
556
|
+
}
|
|
557
|
+
return PrivateSigKey.__wrap(ret[0]);
|
|
558
|
+
}
|
|
559
|
+
|
|
560
|
+
/**
|
|
561
|
+
* @param {Client} client
|
|
562
|
+
* @returns {string}
|
|
563
|
+
*/
|
|
564
|
+
export function get_client_address(client) {
|
|
565
|
+
let deferred1_0;
|
|
566
|
+
let deferred1_1;
|
|
567
|
+
try {
|
|
568
|
+
_assertClass(client, Client);
|
|
569
|
+
const ret = wasm.get_client_address(client.__wbg_ptr);
|
|
570
|
+
deferred1_0 = ret[0];
|
|
571
|
+
deferred1_1 = ret[1];
|
|
572
|
+
return getStringFromWasm0(ret[0], ret[1]);
|
|
573
|
+
} finally {
|
|
574
|
+
wasm.__wbindgen_free(deferred1_0, deferred1_1, 1);
|
|
575
|
+
}
|
|
576
|
+
}
|
|
577
|
+
|
|
578
|
+
/**
|
|
579
|
+
* Instantiate a new client.
|
|
580
|
+
*
|
|
581
|
+
* * `server_addrs` - a list of KMS server ID with EIP-55 addresses,
|
|
582
|
+
* the elements in the list can be created using [new_server_id_addr].
|
|
583
|
+
*
|
|
584
|
+
* * `client_address_hex` - the client (wallet) address in hex,
|
|
585
|
+
* must be prefixed with "0x".
|
|
586
|
+
*
|
|
587
|
+
* * `fhe_parameter` - the parameter choice, which can be either `"test"` or `"default"`.
|
|
588
|
+
* The "default" parameter choice is selected if no matching string is found.
|
|
589
|
+
* @param {ServerIdAddr[]} server_addrs
|
|
590
|
+
* @param {string} client_address_hex
|
|
591
|
+
* @param {string} fhe_parameter
|
|
592
|
+
* @returns {Client}
|
|
593
|
+
*/
|
|
594
|
+
export function new_client(server_addrs, client_address_hex, fhe_parameter) {
|
|
595
|
+
const ptr0 = passArrayJsValueToWasm0(server_addrs, wasm.__wbindgen_malloc);
|
|
596
|
+
const len0 = WASM_VECTOR_LEN;
|
|
597
|
+
const ptr1 = passStringToWasm0(client_address_hex, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
|
|
598
|
+
const len1 = WASM_VECTOR_LEN;
|
|
599
|
+
const ptr2 = passStringToWasm0(fhe_parameter, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
|
|
600
|
+
const len2 = WASM_VECTOR_LEN;
|
|
601
|
+
const ret = wasm.new_client(ptr0, len0, ptr1, len1, ptr2, len2);
|
|
602
|
+
if (ret[2]) {
|
|
603
|
+
throw takeFromExternrefTable0(ret[1]);
|
|
604
|
+
}
|
|
605
|
+
return Client.__wrap(ret[0]);
|
|
606
|
+
}
|
|
607
|
+
|
|
608
|
+
/**
|
|
609
|
+
* @param {Client} client
|
|
610
|
+
* @returns {PrivateSigKey | undefined}
|
|
611
|
+
*/
|
|
612
|
+
export function get_client_secret_key(client) {
|
|
613
|
+
_assertClass(client, Client);
|
|
614
|
+
const ret = wasm.get_client_secret_key(client.__wbg_ptr);
|
|
615
|
+
return ret === 0 ? undefined : PrivateSigKey.__wrap(ret);
|
|
616
|
+
}
|
|
617
|
+
|
|
617
618
|
const CiphertextHandleFinalization = (typeof FinalizationRegistry === 'undefined')
|
|
618
619
|
? { register: () => {}, unregister: () => {} }
|
|
619
620
|
: new FinalizationRegistry(ptr => wasm.__wbg_ciphertexthandle_free(ptr >>> 0, 1));
|
package/kms_lib_bg.wasm
CHANGED
|
Binary file
|