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