tfhe 0.3.0 → 0.3.1
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/README.md +44 -68
- package/package.json +1 -1
- package/tfhe.d.ts +46 -37
- package/tfhe.js +38 -34
- package/tfhe_bg.wasm +0 -0
package/README.md
CHANGED
|
@@ -31,7 +31,9 @@ implementation. The goal is to have a stable, simple, high-performance, and
|
|
|
31
31
|
production-ready library for all the advanced features of TFHE.
|
|
32
32
|
|
|
33
33
|
## Getting Started
|
|
34
|
+
The steps to run a first example are described below.
|
|
34
35
|
|
|
36
|
+
### Cargo.toml configuration
|
|
35
37
|
To use the latest version of `TFHE-rs` in your project, you first need to add it as a dependency in your `Cargo.toml`:
|
|
36
38
|
|
|
37
39
|
+ For x86_64-based machines running Unix-like OSes:
|
|
@@ -57,95 +59,69 @@ tfhe = { version = "*", features = ["boolean", "shortint", "integer", "x86_64"]
|
|
|
57
59
|
|
|
58
60
|
Note: aarch64-based machines are not yet supported for Windows as it's currently missing an entropy source to be able to seed the [CSPRNGs](https://en.wikipedia.org/wiki/Cryptographically_secure_pseudorandom_number_generator) used in TFHE-rs
|
|
59
61
|
|
|
60
|
-
Note that when running code that uses `tfhe-rs`, it is highly recommended
|
|
61
|
-
to run in release mode with cargo's `--release` flag to have the best performances possible,
|
|
62
|
-
eg: `cargo run --release`.
|
|
63
62
|
|
|
64
|
-
|
|
63
|
+
## A simple example
|
|
65
64
|
|
|
66
|
-
|
|
67
|
-
use tfhe::boolean::prelude::*;
|
|
65
|
+
Here is a full example:
|
|
68
66
|
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
67
|
+
``` rust
|
|
68
|
+
use tfhe::prelude::*;
|
|
69
|
+
use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheUint32, FheUint8};
|
|
72
70
|
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
let
|
|
71
|
+
fn main() -> Result<(), Box<dyn std::error::Error>> {
|
|
72
|
+
// Basic configuration to use homomorphic integers
|
|
73
|
+
let config = ConfigBuilder::all_disabled()
|
|
74
|
+
.enable_default_integers()
|
|
75
|
+
.build();
|
|
76
76
|
|
|
77
|
-
//
|
|
78
|
-
|
|
79
|
-
let ct_3 = server_key.not(&ct_2);
|
|
80
|
-
let ct_4 = server_key.and(&ct_1, &ct_2);
|
|
81
|
-
let ct_5 = server_key.nand(&ct_3, &ct_4);
|
|
82
|
-
let ct_6 = server_key.mux(&ct_5, &ct_3, &ct_4);
|
|
77
|
+
// Key generation
|
|
78
|
+
let (client_key, server_keys) = generate_keys(config);
|
|
83
79
|
|
|
84
|
-
|
|
85
|
-
let
|
|
86
|
-
|
|
87
|
-
}
|
|
88
|
-
```
|
|
80
|
+
let clear_a = 1344u32;
|
|
81
|
+
let clear_b = 5u32;
|
|
82
|
+
let clear_c = 7u8;
|
|
89
83
|
|
|
90
|
-
|
|
84
|
+
// Encrypting the input data using the (private) client_key
|
|
85
|
+
// FheUint32: Encrypted equivalent to u32
|
|
86
|
+
let mut encrypted_a = FheUint32::try_encrypt(clear_a, &client_key)?;
|
|
87
|
+
let encrypted_b = FheUint32::try_encrypt(clear_b, &client_key)?;
|
|
91
88
|
|
|
92
|
-
|
|
93
|
-
|
|
89
|
+
// FheUint8: Encrypted equivalent to u8
|
|
90
|
+
let encrypted_c = FheUint8::try_encrypt(clear_c, &client_key)?;
|
|
94
91
|
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
// with 2 bits of message and 2 bits of carry
|
|
98
|
-
let (client_key, server_key) = gen_keys(PARAM_MESSAGE_2_CARRY_2_KS_PBS);
|
|
92
|
+
// On the server side:
|
|
93
|
+
set_server_key(server_keys);
|
|
99
94
|
|
|
100
|
-
|
|
101
|
-
let
|
|
95
|
+
// Clear equivalent computations: 1344 * 8 = 10752
|
|
96
|
+
let encrypted_res_mul = &encrypted_a * &encrypted_b;
|
|
102
97
|
|
|
103
|
-
//
|
|
104
|
-
|
|
105
|
-
let ct_2 = client_key.encrypt(msg2);
|
|
98
|
+
// Clear equivalent computations: 1344 >> 8 = 42
|
|
99
|
+
encrypted_a = &encrypted_res_mul >> &encrypted_b;
|
|
106
100
|
|
|
107
|
-
//
|
|
108
|
-
let
|
|
101
|
+
// Clear equivalent computations: let casted_a = a as u8;
|
|
102
|
+
let casted_a: FheUint8 = encrypted_a.cast_into();
|
|
109
103
|
|
|
110
|
-
//
|
|
111
|
-
|
|
112
|
-
let f = |x:u64| x.count_ones() as u64;
|
|
104
|
+
// Clear equivalent computations: min(42, 7) = 7
|
|
105
|
+
let encrypted_res_min = &casted_a.min(&encrypted_c);
|
|
113
106
|
|
|
114
|
-
//
|
|
115
|
-
|
|
107
|
+
// Operation between clear and encrypted data:
|
|
108
|
+
// Clear equivalent computations: 7 & 1 = 1
|
|
109
|
+
let encrypted_res = encrypted_res_min & 1_u8;
|
|
116
110
|
|
|
117
|
-
//
|
|
118
|
-
let
|
|
111
|
+
// Decrypting on the client side:
|
|
112
|
+
let clear_res: u8 = encrypted_res.decrypt(&client_key);
|
|
113
|
+
assert_eq!(clear_res, 1_u8);
|
|
119
114
|
|
|
120
|
-
|
|
121
|
-
let output = client_key.decrypt(&ct_res);
|
|
122
|
-
assert_eq!(output, f(msg1 + msg2));
|
|
115
|
+
Ok(())
|
|
123
116
|
}
|
|
124
117
|
```
|
|
125
118
|
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
```rust
|
|
129
|
-
use tfhe::integer::gen_keys_radix;
|
|
130
|
-
use tfhe::shortint::parameters::PARAM_MESSAGE_2_CARRY_2_KS_PBS;
|
|
131
|
-
|
|
132
|
-
fn main() {
|
|
133
|
-
// We create keys to create 16 bits integers
|
|
134
|
-
// using 8 blocks of 2 bits
|
|
135
|
-
let (cks, sks) = gen_keys_radix(PARAM_MESSAGE_2_CARRY_2_KS_PBS, 8);
|
|
119
|
+
To run this code, use the following command:
|
|
120
|
+
<p align="center"> <code> cargo run --release </code> </p>
|
|
136
121
|
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
let mut a = cks.encrypt(clear_a as u64);
|
|
141
|
-
let mut b = cks.encrypt(clear_b as u64);
|
|
142
|
-
|
|
143
|
-
let encrypted_max = sks.smart_max_parallelized(&mut a, &mut b);
|
|
144
|
-
let decrypted_max: u64 = cks.decrypt(&encrypted_max);
|
|
122
|
+
Note that when running code that uses `tfhe-rs`, it is highly recommended
|
|
123
|
+
to run in release mode with cargo's `--release` flag to have the best performances possible,
|
|
145
124
|
|
|
146
|
-
assert_eq!(decrypted_max as u16, clear_a.max(clear_b))
|
|
147
|
-
}
|
|
148
|
-
```
|
|
149
125
|
|
|
150
126
|
## Contributing
|
|
151
127
|
|
package/package.json
CHANGED
package/tfhe.d.ts
CHANGED
|
@@ -5,6 +5,20 @@
|
|
|
5
5
|
export function init_panic_hook(): void;
|
|
6
6
|
/**
|
|
7
7
|
*/
|
|
8
|
+
export enum BooleanParameterSet {
|
|
9
|
+
Default = 0,
|
|
10
|
+
TfheLib = 1,
|
|
11
|
+
DefaultKsPbs = 2,
|
|
12
|
+
TfheLibKsPbs = 3,
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
*/
|
|
16
|
+
export enum BooleanEncryptionKeyChoice {
|
|
17
|
+
Big = 0,
|
|
18
|
+
Small = 1,
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
*/
|
|
8
22
|
export enum ShortintEncryptionKeyChoice {
|
|
9
23
|
Big = 0,
|
|
10
24
|
Small = 1,
|
|
@@ -150,12 +164,6 @@ export enum ShortintParametersName {
|
|
|
150
164
|
}
|
|
151
165
|
/**
|
|
152
166
|
*/
|
|
153
|
-
export enum BooleanParameterSet {
|
|
154
|
-
Default = 0,
|
|
155
|
-
TfheLib = 1,
|
|
156
|
-
}
|
|
157
|
-
/**
|
|
158
|
-
*/
|
|
159
167
|
export class Boolean {
|
|
160
168
|
free(): void;
|
|
161
169
|
/**
|
|
@@ -173,9 +181,10 @@ export class Boolean {
|
|
|
173
181
|
* @param {number} pbs_level
|
|
174
182
|
* @param {number} ks_base_log
|
|
175
183
|
* @param {number} ks_level
|
|
184
|
+
* @param {number} encryption_key_choice
|
|
176
185
|
* @returns {BooleanParameters}
|
|
177
186
|
*/
|
|
178
|
-
static new_parameters(lwe_dimension: number, glwe_dimension: number, polynomial_size: number, lwe_modular_std_dev: number, glwe_modular_std_dev: number, pbs_base_log: number, pbs_level: number, ks_base_log: number, ks_level: number): BooleanParameters;
|
|
187
|
+
static new_parameters(lwe_dimension: number, glwe_dimension: number, polynomial_size: number, lwe_modular_std_dev: number, glwe_modular_std_dev: number, pbs_base_log: number, pbs_level: number, ks_base_log: number, ks_level: number, encryption_key_choice: number): BooleanParameters;
|
|
179
188
|
/**
|
|
180
189
|
* @param {bigint} seed_high_bytes
|
|
181
190
|
* @param {bigint} seed_low_bytes
|
|
@@ -1367,6 +1376,36 @@ export type InitInput = RequestInfo | URL | Response | BufferSource | WebAssembl
|
|
|
1367
1376
|
|
|
1368
1377
|
export interface InitOutput {
|
|
1369
1378
|
readonly memory: WebAssembly.Memory;
|
|
1379
|
+
readonly __wbg_booleanciphertext_free: (a: number) => void;
|
|
1380
|
+
readonly __wbg_booleancompressedciphertext_free: (a: number) => void;
|
|
1381
|
+
readonly __wbg_booleanclientkey_free: (a: number) => void;
|
|
1382
|
+
readonly __wbg_booleanpublickey_free: (a: number) => void;
|
|
1383
|
+
readonly __wbg_booleancompressedserverkey_free: (a: number) => void;
|
|
1384
|
+
readonly __wbg_booleanparameters_free: (a: number) => void;
|
|
1385
|
+
readonly boolean_get_parameters: (a: number, b: number) => void;
|
|
1386
|
+
readonly boolean_new_parameters: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number, j: number) => number;
|
|
1387
|
+
readonly boolean_new_client_key_from_seed_and_parameters: (a: number, b: number, c: number) => number;
|
|
1388
|
+
readonly boolean_new_client_key: (a: number) => number;
|
|
1389
|
+
readonly boolean_new_public_key: (a: number) => number;
|
|
1390
|
+
readonly boolean_new_compressed_server_key: (a: number) => number;
|
|
1391
|
+
readonly boolean_encrypt: (a: number, b: number) => number;
|
|
1392
|
+
readonly boolean_encrypt_compressed: (a: number, b: number) => number;
|
|
1393
|
+
readonly boolean_decompress_ciphertext: (a: number) => number;
|
|
1394
|
+
readonly boolean_encrypt_with_public_key: (a: number, b: number) => number;
|
|
1395
|
+
readonly boolean_trivial_encrypt: (a: number, b: number) => number;
|
|
1396
|
+
readonly boolean_decrypt: (a: number, b: number) => number;
|
|
1397
|
+
readonly boolean_serialize_ciphertext: (a: number, b: number) => void;
|
|
1398
|
+
readonly boolean_deserialize_ciphertext: (a: number, b: number, c: number) => void;
|
|
1399
|
+
readonly boolean_serialize_compressed_ciphertext: (a: number, b: number) => void;
|
|
1400
|
+
readonly boolean_deserialize_compressed_ciphertext: (a: number, b: number, c: number) => void;
|
|
1401
|
+
readonly boolean_serialize_client_key: (a: number, b: number) => void;
|
|
1402
|
+
readonly boolean_deserialize_client_key: (a: number, b: number, c: number) => void;
|
|
1403
|
+
readonly boolean_serialize_public_key: (a: number, b: number) => void;
|
|
1404
|
+
readonly boolean_deserialize_public_key: (a: number, b: number, c: number) => void;
|
|
1405
|
+
readonly boolean_serialize_compressed_server_key: (a: number, b: number) => void;
|
|
1406
|
+
readonly boolean_deserialize_compressed_server_key: (a: number, b: number, c: number) => void;
|
|
1407
|
+
readonly __wbg_boolean_free: (a: number) => void;
|
|
1408
|
+
readonly __wbg_tfhe_free: (a: number) => void;
|
|
1370
1409
|
readonly __wbg_fheuint128_free: (a: number) => void;
|
|
1371
1410
|
readonly fheuint128_encrypt_with_client_key: (a: number, b: number, c: number) => void;
|
|
1372
1411
|
readonly fheuint128_encrypt_with_public_key: (a: number, b: number, c: number) => void;
|
|
@@ -1575,36 +1614,6 @@ export interface InitOutput {
|
|
|
1575
1614
|
readonly shortint_serialize_compressed_server_key: (a: number, b: number) => void;
|
|
1576
1615
|
readonly shortint_deserialize_compressed_server_key: (a: number, b: number, c: number) => void;
|
|
1577
1616
|
readonly __wbg_shortint_free: (a: number) => void;
|
|
1578
|
-
readonly __wbg_booleanciphertext_free: (a: number) => void;
|
|
1579
|
-
readonly __wbg_booleancompressedciphertext_free: (a: number) => void;
|
|
1580
|
-
readonly __wbg_booleanclientkey_free: (a: number) => void;
|
|
1581
|
-
readonly __wbg_booleanpublickey_free: (a: number) => void;
|
|
1582
|
-
readonly __wbg_booleancompressedserverkey_free: (a: number) => void;
|
|
1583
|
-
readonly __wbg_booleanparameters_free: (a: number) => void;
|
|
1584
|
-
readonly boolean_get_parameters: (a: number, b: number) => void;
|
|
1585
|
-
readonly boolean_new_parameters: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number) => number;
|
|
1586
|
-
readonly boolean_new_client_key_from_seed_and_parameters: (a: number, b: number, c: number) => number;
|
|
1587
|
-
readonly boolean_new_client_key: (a: number) => number;
|
|
1588
|
-
readonly boolean_new_public_key: (a: number) => number;
|
|
1589
|
-
readonly boolean_new_compressed_server_key: (a: number) => number;
|
|
1590
|
-
readonly boolean_encrypt: (a: number, b: number) => number;
|
|
1591
|
-
readonly boolean_encrypt_compressed: (a: number, b: number) => number;
|
|
1592
|
-
readonly boolean_decompress_ciphertext: (a: number) => number;
|
|
1593
|
-
readonly boolean_encrypt_with_public_key: (a: number, b: number) => number;
|
|
1594
|
-
readonly boolean_trivial_encrypt: (a: number, b: number) => number;
|
|
1595
|
-
readonly boolean_decrypt: (a: number, b: number) => number;
|
|
1596
|
-
readonly boolean_serialize_ciphertext: (a: number, b: number) => void;
|
|
1597
|
-
readonly boolean_deserialize_ciphertext: (a: number, b: number, c: number) => void;
|
|
1598
|
-
readonly boolean_serialize_compressed_ciphertext: (a: number, b: number) => void;
|
|
1599
|
-
readonly boolean_deserialize_compressed_ciphertext: (a: number, b: number, c: number) => void;
|
|
1600
|
-
readonly boolean_serialize_client_key: (a: number, b: number) => void;
|
|
1601
|
-
readonly boolean_deserialize_client_key: (a: number, b: number, c: number) => void;
|
|
1602
|
-
readonly boolean_serialize_public_key: (a: number, b: number) => void;
|
|
1603
|
-
readonly boolean_deserialize_public_key: (a: number, b: number, c: number) => void;
|
|
1604
|
-
readonly boolean_serialize_compressed_server_key: (a: number, b: number) => void;
|
|
1605
|
-
readonly boolean_deserialize_compressed_server_key: (a: number, b: number, c: number) => void;
|
|
1606
|
-
readonly __wbg_boolean_free: (a: number) => void;
|
|
1607
|
-
readonly __wbg_tfhe_free: (a: number) => void;
|
|
1608
1617
|
readonly __wbindgen_malloc: (a: number, b: number) => number;
|
|
1609
1618
|
readonly __wbindgen_realloc: (a: number, b: number, c: number, d: number) => number;
|
|
1610
1619
|
readonly __wbindgen_add_to_stack_pointer: (a: number) => number;
|
package/tfhe.js
CHANGED
|
@@ -4,15 +4,20 @@ const heap = new Array(128).fill(undefined);
|
|
|
4
4
|
|
|
5
5
|
heap.push(undefined, null, true, false);
|
|
6
6
|
|
|
7
|
+
function getObject(idx) { return heap[idx]; }
|
|
8
|
+
|
|
7
9
|
let heap_next = heap.length;
|
|
8
10
|
|
|
9
|
-
function
|
|
10
|
-
if (
|
|
11
|
-
|
|
12
|
-
heap_next =
|
|
11
|
+
function dropObject(idx) {
|
|
12
|
+
if (idx < 132) return;
|
|
13
|
+
heap[idx] = heap_next;
|
|
14
|
+
heap_next = idx;
|
|
15
|
+
}
|
|
13
16
|
|
|
14
|
-
|
|
15
|
-
|
|
17
|
+
function takeObject(idx) {
|
|
18
|
+
const ret = getObject(idx);
|
|
19
|
+
dropObject(idx);
|
|
20
|
+
return ret;
|
|
16
21
|
}
|
|
17
22
|
|
|
18
23
|
const cachedTextDecoder = (typeof TextDecoder !== 'undefined' ? new TextDecoder('utf-8', { ignoreBOM: true, fatal: true }) : { decode: () => { throw Error('TextDecoder not available') } } );
|
|
@@ -33,18 +38,13 @@ function getStringFromWasm0(ptr, len) {
|
|
|
33
38
|
return cachedTextDecoder.decode(getUint8Memory0().subarray(ptr, ptr + len));
|
|
34
39
|
}
|
|
35
40
|
|
|
36
|
-
function
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
heap[idx] = heap_next;
|
|
41
|
-
heap_next = idx;
|
|
42
|
-
}
|
|
41
|
+
function addHeapObject(obj) {
|
|
42
|
+
if (heap_next === heap.length) heap.push(heap.length + 1);
|
|
43
|
+
const idx = heap_next;
|
|
44
|
+
heap_next = heap[idx];
|
|
43
45
|
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
dropObject(idx);
|
|
47
|
-
return ret;
|
|
46
|
+
heap[idx] = obj;
|
|
47
|
+
return idx;
|
|
48
48
|
}
|
|
49
49
|
|
|
50
50
|
function isLikeNone(x) {
|
|
@@ -291,13 +291,16 @@ function handleError(f, args) {
|
|
|
291
291
|
}
|
|
292
292
|
/**
|
|
293
293
|
*/
|
|
294
|
-
export const
|
|
294
|
+
export const BooleanParameterSet = Object.freeze({ Default:0,"0":"Default",TfheLib:1,"1":"TfheLib",DefaultKsPbs:2,"2":"DefaultKsPbs",TfheLibKsPbs:3,"3":"TfheLibKsPbs", });
|
|
295
295
|
/**
|
|
296
296
|
*/
|
|
297
|
-
export const ShortintParametersName = Object.freeze({ PARAM_MESSAGE_1_CARRY_0_KS_PBS:0,"0":"PARAM_MESSAGE_1_CARRY_0_KS_PBS",PARAM_MESSAGE_1_CARRY_1_KS_PBS:1,"1":"PARAM_MESSAGE_1_CARRY_1_KS_PBS",PARAM_MESSAGE_2_CARRY_0_KS_PBS:2,"2":"PARAM_MESSAGE_2_CARRY_0_KS_PBS",PARAM_MESSAGE_1_CARRY_2_KS_PBS:3,"3":"PARAM_MESSAGE_1_CARRY_2_KS_PBS",PARAM_MESSAGE_2_CARRY_1_KS_PBS:4,"4":"PARAM_MESSAGE_2_CARRY_1_KS_PBS",PARAM_MESSAGE_3_CARRY_0_KS_PBS:5,"5":"PARAM_MESSAGE_3_CARRY_0_KS_PBS",PARAM_MESSAGE_1_CARRY_3_KS_PBS:6,"6":"PARAM_MESSAGE_1_CARRY_3_KS_PBS",PARAM_MESSAGE_2_CARRY_2_KS_PBS:7,"7":"PARAM_MESSAGE_2_CARRY_2_KS_PBS",PARAM_MESSAGE_3_CARRY_1_KS_PBS:8,"8":"PARAM_MESSAGE_3_CARRY_1_KS_PBS",PARAM_MESSAGE_4_CARRY_0_KS_PBS:9,"9":"PARAM_MESSAGE_4_CARRY_0_KS_PBS",PARAM_MESSAGE_1_CARRY_4_KS_PBS:10,"10":"PARAM_MESSAGE_1_CARRY_4_KS_PBS",PARAM_MESSAGE_2_CARRY_3_KS_PBS:11,"11":"PARAM_MESSAGE_2_CARRY_3_KS_PBS",PARAM_MESSAGE_3_CARRY_2_KS_PBS:12,"12":"PARAM_MESSAGE_3_CARRY_2_KS_PBS",PARAM_MESSAGE_4_CARRY_1_KS_PBS:13,"13":"PARAM_MESSAGE_4_CARRY_1_KS_PBS",PARAM_MESSAGE_5_CARRY_0_KS_PBS:14,"14":"PARAM_MESSAGE_5_CARRY_0_KS_PBS",PARAM_MESSAGE_1_CARRY_5_KS_PBS:15,"15":"PARAM_MESSAGE_1_CARRY_5_KS_PBS",PARAM_MESSAGE_2_CARRY_4_KS_PBS:16,"16":"PARAM_MESSAGE_2_CARRY_4_KS_PBS",PARAM_MESSAGE_3_CARRY_3_KS_PBS:17,"17":"PARAM_MESSAGE_3_CARRY_3_KS_PBS",PARAM_MESSAGE_4_CARRY_2_KS_PBS:18,"18":"PARAM_MESSAGE_4_CARRY_2_KS_PBS",PARAM_MESSAGE_5_CARRY_1_KS_PBS:19,"19":"PARAM_MESSAGE_5_CARRY_1_KS_PBS",PARAM_MESSAGE_6_CARRY_0_KS_PBS:20,"20":"PARAM_MESSAGE_6_CARRY_0_KS_PBS",PARAM_MESSAGE_1_CARRY_6_KS_PBS:21,"21":"PARAM_MESSAGE_1_CARRY_6_KS_PBS",PARAM_MESSAGE_2_CARRY_5_KS_PBS:22,"22":"PARAM_MESSAGE_2_CARRY_5_KS_PBS",PARAM_MESSAGE_3_CARRY_4_KS_PBS:23,"23":"PARAM_MESSAGE_3_CARRY_4_KS_PBS",PARAM_MESSAGE_4_CARRY_3_KS_PBS:24,"24":"PARAM_MESSAGE_4_CARRY_3_KS_PBS",PARAM_MESSAGE_5_CARRY_2_KS_PBS:25,"25":"PARAM_MESSAGE_5_CARRY_2_KS_PBS",PARAM_MESSAGE_6_CARRY_1_KS_PBS:26,"26":"PARAM_MESSAGE_6_CARRY_1_KS_PBS",PARAM_MESSAGE_7_CARRY_0_KS_PBS:27,"27":"PARAM_MESSAGE_7_CARRY_0_KS_PBS",PARAM_MESSAGE_1_CARRY_7_KS_PBS:28,"28":"PARAM_MESSAGE_1_CARRY_7_KS_PBS",PARAM_MESSAGE_2_CARRY_6_KS_PBS:29,"29":"PARAM_MESSAGE_2_CARRY_6_KS_PBS",PARAM_MESSAGE_3_CARRY_5_KS_PBS:30,"30":"PARAM_MESSAGE_3_CARRY_5_KS_PBS",PARAM_MESSAGE_4_CARRY_4_KS_PBS:31,"31":"PARAM_MESSAGE_4_CARRY_4_KS_PBS",PARAM_MESSAGE_5_CARRY_3_KS_PBS:32,"32":"PARAM_MESSAGE_5_CARRY_3_KS_PBS",PARAM_MESSAGE_6_CARRY_2_KS_PBS:33,"33":"PARAM_MESSAGE_6_CARRY_2_KS_PBS",PARAM_MESSAGE_7_CARRY_1_KS_PBS:34,"34":"PARAM_MESSAGE_7_CARRY_1_KS_PBS",PARAM_MESSAGE_8_CARRY_0_KS_PBS:35,"35":"PARAM_MESSAGE_8_CARRY_0_KS_PBS",PARAM_MESSAGE_1_CARRY_1_PBS_KS:36,"36":"PARAM_MESSAGE_1_CARRY_1_PBS_KS",PARAM_MESSAGE_2_CARRY_2_PBS_KS:37,"37":"PARAM_MESSAGE_2_CARRY_2_PBS_KS",PARAM_MESSAGE_3_CARRY_3_PBS_KS:38,"38":"PARAM_MESSAGE_3_CARRY_3_PBS_KS",PARAM_MESSAGE_4_CARRY_4_PBS_KS:39,"39":"PARAM_MESSAGE_4_CARRY_4_PBS_KS",PARAM_MESSAGE_1_CARRY_2_COMPACT_PK_KS_PBS:40,"40":"PARAM_MESSAGE_1_CARRY_2_COMPACT_PK_KS_PBS",PARAM_MESSAGE_1_CARRY_3_COMPACT_PK_KS_PBS:41,"41":"PARAM_MESSAGE_1_CARRY_3_COMPACT_PK_KS_PBS",PARAM_MESSAGE_1_CARRY_4_COMPACT_PK_KS_PBS:42,"42":"PARAM_MESSAGE_1_CARRY_4_COMPACT_PK_KS_PBS",PARAM_MESSAGE_1_CARRY_5_COMPACT_PK_KS_PBS:43,"43":"PARAM_MESSAGE_1_CARRY_5_COMPACT_PK_KS_PBS",PARAM_MESSAGE_1_CARRY_6_COMPACT_PK_KS_PBS:44,"44":"PARAM_MESSAGE_1_CARRY_6_COMPACT_PK_KS_PBS",PARAM_MESSAGE_1_CARRY_7_COMPACT_PK_KS_PBS:45,"45":"PARAM_MESSAGE_1_CARRY_7_COMPACT_PK_KS_PBS",PARAM_MESSAGE_2_CARRY_1_COMPACT_PK_KS_PBS:46,"46":"PARAM_MESSAGE_2_CARRY_1_COMPACT_PK_KS_PBS",PARAM_MESSAGE_2_CARRY_2_COMPACT_PK_KS_PBS:47,"47":"PARAM_MESSAGE_2_CARRY_2_COMPACT_PK_KS_PBS",PARAM_MESSAGE_2_CARRY_3_COMPACT_PK_KS_PBS:48,"48":"PARAM_MESSAGE_2_CARRY_3_COMPACT_PK_KS_PBS",PARAM_MESSAGE_2_CARRY_4_COMPACT_PK_KS_PBS:49,"49":"PARAM_MESSAGE_2_CARRY_4_COMPACT_PK_KS_PBS",PARAM_MESSAGE_2_CARRY_5_COMPACT_PK_KS_PBS:50,"50":"PARAM_MESSAGE_2_CARRY_5_COMPACT_PK_KS_PBS",PARAM_MESSAGE_2_CARRY_6_COMPACT_PK_KS_PBS:51,"51":"PARAM_MESSAGE_2_CARRY_6_COMPACT_PK_KS_PBS",PARAM_MESSAGE_3_CARRY_1_COMPACT_PK_KS_PBS:52,"52":"PARAM_MESSAGE_3_CARRY_1_COMPACT_PK_KS_PBS",PARAM_MESSAGE_3_CARRY_2_COMPACT_PK_KS_PBS:53,"53":"PARAM_MESSAGE_3_CARRY_2_COMPACT_PK_KS_PBS",PARAM_MESSAGE_3_CARRY_3_COMPACT_PK_KS_PBS:54,"54":"PARAM_MESSAGE_3_CARRY_3_COMPACT_PK_KS_PBS",PARAM_MESSAGE_3_CARRY_4_COMPACT_PK_KS_PBS:55,"55":"PARAM_MESSAGE_3_CARRY_4_COMPACT_PK_KS_PBS",PARAM_MESSAGE_3_CARRY_5_COMPACT_PK_KS_PBS:56,"56":"PARAM_MESSAGE_3_CARRY_5_COMPACT_PK_KS_PBS",PARAM_MESSAGE_4_CARRY_1_COMPACT_PK_KS_PBS:57,"57":"PARAM_MESSAGE_4_CARRY_1_COMPACT_PK_KS_PBS",PARAM_MESSAGE_4_CARRY_2_COMPACT_PK_KS_PBS:58,"58":"PARAM_MESSAGE_4_CARRY_2_COMPACT_PK_KS_PBS",PARAM_MESSAGE_4_CARRY_3_COMPACT_PK_KS_PBS:59,"59":"PARAM_MESSAGE_4_CARRY_3_COMPACT_PK_KS_PBS",PARAM_MESSAGE_4_CARRY_4_COMPACT_PK_KS_PBS:60,"60":"PARAM_MESSAGE_4_CARRY_4_COMPACT_PK_KS_PBS",PARAM_MESSAGE_5_CARRY_1_COMPACT_PK_KS_PBS:61,"61":"PARAM_MESSAGE_5_CARRY_1_COMPACT_PK_KS_PBS",PARAM_MESSAGE_5_CARRY_2_COMPACT_PK_KS_PBS:62,"62":"PARAM_MESSAGE_5_CARRY_2_COMPACT_PK_KS_PBS",PARAM_MESSAGE_5_CARRY_3_COMPACT_PK_KS_PBS:63,"63":"PARAM_MESSAGE_5_CARRY_3_COMPACT_PK_KS_PBS",PARAM_MESSAGE_6_CARRY_1_COMPACT_PK_KS_PBS:64,"64":"PARAM_MESSAGE_6_CARRY_1_COMPACT_PK_KS_PBS",PARAM_MESSAGE_6_CARRY_2_COMPACT_PK_KS_PBS:65,"65":"PARAM_MESSAGE_6_CARRY_2_COMPACT_PK_KS_PBS",PARAM_MESSAGE_7_CARRY_1_COMPACT_PK_KS_PBS:66,"66":"PARAM_MESSAGE_7_CARRY_1_COMPACT_PK_KS_PBS",PARAM_MESSAGE_1_CARRY_1_COMPACT_PK_PBS_KS:67,"67":"PARAM_MESSAGE_1_CARRY_1_COMPACT_PK_PBS_KS",PARAM_MESSAGE_1_CARRY_2_COMPACT_PK_PBS_KS:68,"68":"PARAM_MESSAGE_1_CARRY_2_COMPACT_PK_PBS_KS",PARAM_MESSAGE_1_CARRY_3_COMPACT_PK_PBS_KS:69,"69":"PARAM_MESSAGE_1_CARRY_3_COMPACT_PK_PBS_KS",PARAM_MESSAGE_1_CARRY_4_COMPACT_PK_PBS_KS:70,"70":"PARAM_MESSAGE_1_CARRY_4_COMPACT_PK_PBS_KS",PARAM_MESSAGE_1_CARRY_5_COMPACT_PK_PBS_KS:71,"71":"PARAM_MESSAGE_1_CARRY_5_COMPACT_PK_PBS_KS",PARAM_MESSAGE_1_CARRY_6_COMPACT_PK_PBS_KS:72,"72":"PARAM_MESSAGE_1_CARRY_6_COMPACT_PK_PBS_KS",PARAM_MESSAGE_1_CARRY_7_COMPACT_PK_PBS_KS:73,"73":"PARAM_MESSAGE_1_CARRY_7_COMPACT_PK_PBS_KS",PARAM_MESSAGE_2_CARRY_1_COMPACT_PK_PBS_KS:74,"74":"PARAM_MESSAGE_2_CARRY_1_COMPACT_PK_PBS_KS",PARAM_MESSAGE_2_CARRY_2_COMPACT_PK_PBS_KS:75,"75":"PARAM_MESSAGE_2_CARRY_2_COMPACT_PK_PBS_KS",PARAM_MESSAGE_2_CARRY_3_COMPACT_PK_PBS_KS:76,"76":"PARAM_MESSAGE_2_CARRY_3_COMPACT_PK_PBS_KS",PARAM_MESSAGE_2_CARRY_4_COMPACT_PK_PBS_KS:77,"77":"PARAM_MESSAGE_2_CARRY_4_COMPACT_PK_PBS_KS",PARAM_MESSAGE_2_CARRY_5_COMPACT_PK_PBS_KS:78,"78":"PARAM_MESSAGE_2_CARRY_5_COMPACT_PK_PBS_KS",PARAM_MESSAGE_2_CARRY_6_COMPACT_PK_PBS_KS:79,"79":"PARAM_MESSAGE_2_CARRY_6_COMPACT_PK_PBS_KS",PARAM_MESSAGE_3_CARRY_1_COMPACT_PK_PBS_KS:80,"80":"PARAM_MESSAGE_3_CARRY_1_COMPACT_PK_PBS_KS",PARAM_MESSAGE_3_CARRY_2_COMPACT_PK_PBS_KS:81,"81":"PARAM_MESSAGE_3_CARRY_2_COMPACT_PK_PBS_KS",PARAM_MESSAGE_3_CARRY_3_COMPACT_PK_PBS_KS:82,"82":"PARAM_MESSAGE_3_CARRY_3_COMPACT_PK_PBS_KS",PARAM_MESSAGE_3_CARRY_4_COMPACT_PK_PBS_KS:83,"83":"PARAM_MESSAGE_3_CARRY_4_COMPACT_PK_PBS_KS",PARAM_MESSAGE_3_CARRY_5_COMPACT_PK_PBS_KS:84,"84":"PARAM_MESSAGE_3_CARRY_5_COMPACT_PK_PBS_KS",PARAM_MESSAGE_4_CARRY_1_COMPACT_PK_PBS_KS:85,"85":"PARAM_MESSAGE_4_CARRY_1_COMPACT_PK_PBS_KS",PARAM_MESSAGE_4_CARRY_2_COMPACT_PK_PBS_KS:86,"86":"PARAM_MESSAGE_4_CARRY_2_COMPACT_PK_PBS_KS",PARAM_MESSAGE_4_CARRY_3_COMPACT_PK_PBS_KS:87,"87":"PARAM_MESSAGE_4_CARRY_3_COMPACT_PK_PBS_KS",PARAM_MESSAGE_4_CARRY_4_COMPACT_PK_PBS_KS:88,"88":"PARAM_MESSAGE_4_CARRY_4_COMPACT_PK_PBS_KS",PARAM_MESSAGE_5_CARRY_1_COMPACT_PK_PBS_KS:89,"89":"PARAM_MESSAGE_5_CARRY_1_COMPACT_PK_PBS_KS",PARAM_MESSAGE_5_CARRY_2_COMPACT_PK_PBS_KS:90,"90":"PARAM_MESSAGE_5_CARRY_2_COMPACT_PK_PBS_KS",PARAM_MESSAGE_5_CARRY_3_COMPACT_PK_PBS_KS:91,"91":"PARAM_MESSAGE_5_CARRY_3_COMPACT_PK_PBS_KS",PARAM_MESSAGE_6_CARRY_1_COMPACT_PK_PBS_KS:92,"92":"PARAM_MESSAGE_6_CARRY_1_COMPACT_PK_PBS_KS",PARAM_MESSAGE_6_CARRY_2_COMPACT_PK_PBS_KS:93,"93":"PARAM_MESSAGE_6_CARRY_2_COMPACT_PK_PBS_KS",PARAM_MESSAGE_7_CARRY_1_COMPACT_PK_PBS_KS:94,"94":"PARAM_MESSAGE_7_CARRY_1_COMPACT_PK_PBS_KS",PARAM_MESSAGE_1_CARRY_0:95,"95":"PARAM_MESSAGE_1_CARRY_0",PARAM_MESSAGE_1_CARRY_1:96,"96":"PARAM_MESSAGE_1_CARRY_1",PARAM_MESSAGE_2_CARRY_0:97,"97":"PARAM_MESSAGE_2_CARRY_0",PARAM_MESSAGE_1_CARRY_2:98,"98":"PARAM_MESSAGE_1_CARRY_2",PARAM_MESSAGE_2_CARRY_1:99,"99":"PARAM_MESSAGE_2_CARRY_1",PARAM_MESSAGE_3_CARRY_0:100,"100":"PARAM_MESSAGE_3_CARRY_0",PARAM_MESSAGE_1_CARRY_3:101,"101":"PARAM_MESSAGE_1_CARRY_3",PARAM_MESSAGE_2_CARRY_2:102,"102":"PARAM_MESSAGE_2_CARRY_2",PARAM_MESSAGE_3_CARRY_1:103,"103":"PARAM_MESSAGE_3_CARRY_1",PARAM_MESSAGE_4_CARRY_0:104,"104":"PARAM_MESSAGE_4_CARRY_0",PARAM_MESSAGE_1_CARRY_4:105,"105":"PARAM_MESSAGE_1_CARRY_4",PARAM_MESSAGE_2_CARRY_3:106,"106":"PARAM_MESSAGE_2_CARRY_3",PARAM_MESSAGE_3_CARRY_2:107,"107":"PARAM_MESSAGE_3_CARRY_2",PARAM_MESSAGE_4_CARRY_1:108,"108":"PARAM_MESSAGE_4_CARRY_1",PARAM_MESSAGE_5_CARRY_0:109,"109":"PARAM_MESSAGE_5_CARRY_0",PARAM_MESSAGE_1_CARRY_5:110,"110":"PARAM_MESSAGE_1_CARRY_5",PARAM_MESSAGE_2_CARRY_4:111,"111":"PARAM_MESSAGE_2_CARRY_4",PARAM_MESSAGE_3_CARRY_3:112,"112":"PARAM_MESSAGE_3_CARRY_3",PARAM_MESSAGE_4_CARRY_2:113,"113":"PARAM_MESSAGE_4_CARRY_2",PARAM_MESSAGE_5_CARRY_1:114,"114":"PARAM_MESSAGE_5_CARRY_1",PARAM_MESSAGE_6_CARRY_0:115,"115":"PARAM_MESSAGE_6_CARRY_0",PARAM_MESSAGE_1_CARRY_6:116,"116":"PARAM_MESSAGE_1_CARRY_6",PARAM_MESSAGE_2_CARRY_5:117,"117":"PARAM_MESSAGE_2_CARRY_5",PARAM_MESSAGE_3_CARRY_4:118,"118":"PARAM_MESSAGE_3_CARRY_4",PARAM_MESSAGE_4_CARRY_3:119,"119":"PARAM_MESSAGE_4_CARRY_3",PARAM_MESSAGE_5_CARRY_2:120,"120":"PARAM_MESSAGE_5_CARRY_2",PARAM_MESSAGE_6_CARRY_1:121,"121":"PARAM_MESSAGE_6_CARRY_1",PARAM_MESSAGE_7_CARRY_0:122,"122":"PARAM_MESSAGE_7_CARRY_0",PARAM_MESSAGE_1_CARRY_7:123,"123":"PARAM_MESSAGE_1_CARRY_7",PARAM_MESSAGE_2_CARRY_6:124,"124":"PARAM_MESSAGE_2_CARRY_6",PARAM_MESSAGE_3_CARRY_5:125,"125":"PARAM_MESSAGE_3_CARRY_5",PARAM_MESSAGE_4_CARRY_4:126,"126":"PARAM_MESSAGE_4_CARRY_4",PARAM_MESSAGE_5_CARRY_3:127,"127":"PARAM_MESSAGE_5_CARRY_3",PARAM_MESSAGE_6_CARRY_2:128,"128":"PARAM_MESSAGE_6_CARRY_2",PARAM_MESSAGE_7_CARRY_1:129,"129":"PARAM_MESSAGE_7_CARRY_1",PARAM_MESSAGE_8_CARRY_0:130,"130":"PARAM_MESSAGE_8_CARRY_0",PARAM_SMALL_MESSAGE_1_CARRY_1:131,"131":"PARAM_SMALL_MESSAGE_1_CARRY_1",PARAM_SMALL_MESSAGE_2_CARRY_2:132,"132":"PARAM_SMALL_MESSAGE_2_CARRY_2",PARAM_SMALL_MESSAGE_3_CARRY_3:133,"133":"PARAM_SMALL_MESSAGE_3_CARRY_3",PARAM_SMALL_MESSAGE_4_CARRY_4:134,"134":"PARAM_SMALL_MESSAGE_4_CARRY_4", });
|
|
297
|
+
export const BooleanEncryptionKeyChoice = Object.freeze({ Big:0,"0":"Big",Small:1,"1":"Small", });
|
|
298
|
+
/**
|
|
299
|
+
*/
|
|
300
|
+
export const ShortintEncryptionKeyChoice = Object.freeze({ Big:0,"0":"Big",Small:1,"1":"Small", });
|
|
298
301
|
/**
|
|
299
302
|
*/
|
|
300
|
-
export const BooleanParameterSet = Object.freeze({ Default:0,"0":"Default",TfheLib:1,"1":"TfheLib", });
|
|
303
|
+
export const ShortintParametersName = Object.freeze({ PARAM_MESSAGE_1_CARRY_0_KS_PBS:0,"0":"PARAM_MESSAGE_1_CARRY_0_KS_PBS",PARAM_MESSAGE_1_CARRY_1_KS_PBS:1,"1":"PARAM_MESSAGE_1_CARRY_1_KS_PBS",PARAM_MESSAGE_2_CARRY_0_KS_PBS:2,"2":"PARAM_MESSAGE_2_CARRY_0_KS_PBS",PARAM_MESSAGE_1_CARRY_2_KS_PBS:3,"3":"PARAM_MESSAGE_1_CARRY_2_KS_PBS",PARAM_MESSAGE_2_CARRY_1_KS_PBS:4,"4":"PARAM_MESSAGE_2_CARRY_1_KS_PBS",PARAM_MESSAGE_3_CARRY_0_KS_PBS:5,"5":"PARAM_MESSAGE_3_CARRY_0_KS_PBS",PARAM_MESSAGE_1_CARRY_3_KS_PBS:6,"6":"PARAM_MESSAGE_1_CARRY_3_KS_PBS",PARAM_MESSAGE_2_CARRY_2_KS_PBS:7,"7":"PARAM_MESSAGE_2_CARRY_2_KS_PBS",PARAM_MESSAGE_3_CARRY_1_KS_PBS:8,"8":"PARAM_MESSAGE_3_CARRY_1_KS_PBS",PARAM_MESSAGE_4_CARRY_0_KS_PBS:9,"9":"PARAM_MESSAGE_4_CARRY_0_KS_PBS",PARAM_MESSAGE_1_CARRY_4_KS_PBS:10,"10":"PARAM_MESSAGE_1_CARRY_4_KS_PBS",PARAM_MESSAGE_2_CARRY_3_KS_PBS:11,"11":"PARAM_MESSAGE_2_CARRY_3_KS_PBS",PARAM_MESSAGE_3_CARRY_2_KS_PBS:12,"12":"PARAM_MESSAGE_3_CARRY_2_KS_PBS",PARAM_MESSAGE_4_CARRY_1_KS_PBS:13,"13":"PARAM_MESSAGE_4_CARRY_1_KS_PBS",PARAM_MESSAGE_5_CARRY_0_KS_PBS:14,"14":"PARAM_MESSAGE_5_CARRY_0_KS_PBS",PARAM_MESSAGE_1_CARRY_5_KS_PBS:15,"15":"PARAM_MESSAGE_1_CARRY_5_KS_PBS",PARAM_MESSAGE_2_CARRY_4_KS_PBS:16,"16":"PARAM_MESSAGE_2_CARRY_4_KS_PBS",PARAM_MESSAGE_3_CARRY_3_KS_PBS:17,"17":"PARAM_MESSAGE_3_CARRY_3_KS_PBS",PARAM_MESSAGE_4_CARRY_2_KS_PBS:18,"18":"PARAM_MESSAGE_4_CARRY_2_KS_PBS",PARAM_MESSAGE_5_CARRY_1_KS_PBS:19,"19":"PARAM_MESSAGE_5_CARRY_1_KS_PBS",PARAM_MESSAGE_6_CARRY_0_KS_PBS:20,"20":"PARAM_MESSAGE_6_CARRY_0_KS_PBS",PARAM_MESSAGE_1_CARRY_6_KS_PBS:21,"21":"PARAM_MESSAGE_1_CARRY_6_KS_PBS",PARAM_MESSAGE_2_CARRY_5_KS_PBS:22,"22":"PARAM_MESSAGE_2_CARRY_5_KS_PBS",PARAM_MESSAGE_3_CARRY_4_KS_PBS:23,"23":"PARAM_MESSAGE_3_CARRY_4_KS_PBS",PARAM_MESSAGE_4_CARRY_3_KS_PBS:24,"24":"PARAM_MESSAGE_4_CARRY_3_KS_PBS",PARAM_MESSAGE_5_CARRY_2_KS_PBS:25,"25":"PARAM_MESSAGE_5_CARRY_2_KS_PBS",PARAM_MESSAGE_6_CARRY_1_KS_PBS:26,"26":"PARAM_MESSAGE_6_CARRY_1_KS_PBS",PARAM_MESSAGE_7_CARRY_0_KS_PBS:27,"27":"PARAM_MESSAGE_7_CARRY_0_KS_PBS",PARAM_MESSAGE_1_CARRY_7_KS_PBS:28,"28":"PARAM_MESSAGE_1_CARRY_7_KS_PBS",PARAM_MESSAGE_2_CARRY_6_KS_PBS:29,"29":"PARAM_MESSAGE_2_CARRY_6_KS_PBS",PARAM_MESSAGE_3_CARRY_5_KS_PBS:30,"30":"PARAM_MESSAGE_3_CARRY_5_KS_PBS",PARAM_MESSAGE_4_CARRY_4_KS_PBS:31,"31":"PARAM_MESSAGE_4_CARRY_4_KS_PBS",PARAM_MESSAGE_5_CARRY_3_KS_PBS:32,"32":"PARAM_MESSAGE_5_CARRY_3_KS_PBS",PARAM_MESSAGE_6_CARRY_2_KS_PBS:33,"33":"PARAM_MESSAGE_6_CARRY_2_KS_PBS",PARAM_MESSAGE_7_CARRY_1_KS_PBS:34,"34":"PARAM_MESSAGE_7_CARRY_1_KS_PBS",PARAM_MESSAGE_8_CARRY_0_KS_PBS:35,"35":"PARAM_MESSAGE_8_CARRY_0_KS_PBS",PARAM_MESSAGE_1_CARRY_1_PBS_KS:36,"36":"PARAM_MESSAGE_1_CARRY_1_PBS_KS",PARAM_MESSAGE_2_CARRY_2_PBS_KS:37,"37":"PARAM_MESSAGE_2_CARRY_2_PBS_KS",PARAM_MESSAGE_3_CARRY_3_PBS_KS:38,"38":"PARAM_MESSAGE_3_CARRY_3_PBS_KS",PARAM_MESSAGE_4_CARRY_4_PBS_KS:39,"39":"PARAM_MESSAGE_4_CARRY_4_PBS_KS",PARAM_MESSAGE_1_CARRY_2_COMPACT_PK_KS_PBS:40,"40":"PARAM_MESSAGE_1_CARRY_2_COMPACT_PK_KS_PBS",PARAM_MESSAGE_1_CARRY_3_COMPACT_PK_KS_PBS:41,"41":"PARAM_MESSAGE_1_CARRY_3_COMPACT_PK_KS_PBS",PARAM_MESSAGE_1_CARRY_4_COMPACT_PK_KS_PBS:42,"42":"PARAM_MESSAGE_1_CARRY_4_COMPACT_PK_KS_PBS",PARAM_MESSAGE_1_CARRY_5_COMPACT_PK_KS_PBS:43,"43":"PARAM_MESSAGE_1_CARRY_5_COMPACT_PK_KS_PBS",PARAM_MESSAGE_1_CARRY_6_COMPACT_PK_KS_PBS:44,"44":"PARAM_MESSAGE_1_CARRY_6_COMPACT_PK_KS_PBS",PARAM_MESSAGE_1_CARRY_7_COMPACT_PK_KS_PBS:45,"45":"PARAM_MESSAGE_1_CARRY_7_COMPACT_PK_KS_PBS",PARAM_MESSAGE_2_CARRY_1_COMPACT_PK_KS_PBS:46,"46":"PARAM_MESSAGE_2_CARRY_1_COMPACT_PK_KS_PBS",PARAM_MESSAGE_2_CARRY_2_COMPACT_PK_KS_PBS:47,"47":"PARAM_MESSAGE_2_CARRY_2_COMPACT_PK_KS_PBS",PARAM_MESSAGE_2_CARRY_3_COMPACT_PK_KS_PBS:48,"48":"PARAM_MESSAGE_2_CARRY_3_COMPACT_PK_KS_PBS",PARAM_MESSAGE_2_CARRY_4_COMPACT_PK_KS_PBS:49,"49":"PARAM_MESSAGE_2_CARRY_4_COMPACT_PK_KS_PBS",PARAM_MESSAGE_2_CARRY_5_COMPACT_PK_KS_PBS:50,"50":"PARAM_MESSAGE_2_CARRY_5_COMPACT_PK_KS_PBS",PARAM_MESSAGE_2_CARRY_6_COMPACT_PK_KS_PBS:51,"51":"PARAM_MESSAGE_2_CARRY_6_COMPACT_PK_KS_PBS",PARAM_MESSAGE_3_CARRY_1_COMPACT_PK_KS_PBS:52,"52":"PARAM_MESSAGE_3_CARRY_1_COMPACT_PK_KS_PBS",PARAM_MESSAGE_3_CARRY_2_COMPACT_PK_KS_PBS:53,"53":"PARAM_MESSAGE_3_CARRY_2_COMPACT_PK_KS_PBS",PARAM_MESSAGE_3_CARRY_3_COMPACT_PK_KS_PBS:54,"54":"PARAM_MESSAGE_3_CARRY_3_COMPACT_PK_KS_PBS",PARAM_MESSAGE_3_CARRY_4_COMPACT_PK_KS_PBS:55,"55":"PARAM_MESSAGE_3_CARRY_4_COMPACT_PK_KS_PBS",PARAM_MESSAGE_3_CARRY_5_COMPACT_PK_KS_PBS:56,"56":"PARAM_MESSAGE_3_CARRY_5_COMPACT_PK_KS_PBS",PARAM_MESSAGE_4_CARRY_1_COMPACT_PK_KS_PBS:57,"57":"PARAM_MESSAGE_4_CARRY_1_COMPACT_PK_KS_PBS",PARAM_MESSAGE_4_CARRY_2_COMPACT_PK_KS_PBS:58,"58":"PARAM_MESSAGE_4_CARRY_2_COMPACT_PK_KS_PBS",PARAM_MESSAGE_4_CARRY_3_COMPACT_PK_KS_PBS:59,"59":"PARAM_MESSAGE_4_CARRY_3_COMPACT_PK_KS_PBS",PARAM_MESSAGE_4_CARRY_4_COMPACT_PK_KS_PBS:60,"60":"PARAM_MESSAGE_4_CARRY_4_COMPACT_PK_KS_PBS",PARAM_MESSAGE_5_CARRY_1_COMPACT_PK_KS_PBS:61,"61":"PARAM_MESSAGE_5_CARRY_1_COMPACT_PK_KS_PBS",PARAM_MESSAGE_5_CARRY_2_COMPACT_PK_KS_PBS:62,"62":"PARAM_MESSAGE_5_CARRY_2_COMPACT_PK_KS_PBS",PARAM_MESSAGE_5_CARRY_3_COMPACT_PK_KS_PBS:63,"63":"PARAM_MESSAGE_5_CARRY_3_COMPACT_PK_KS_PBS",PARAM_MESSAGE_6_CARRY_1_COMPACT_PK_KS_PBS:64,"64":"PARAM_MESSAGE_6_CARRY_1_COMPACT_PK_KS_PBS",PARAM_MESSAGE_6_CARRY_2_COMPACT_PK_KS_PBS:65,"65":"PARAM_MESSAGE_6_CARRY_2_COMPACT_PK_KS_PBS",PARAM_MESSAGE_7_CARRY_1_COMPACT_PK_KS_PBS:66,"66":"PARAM_MESSAGE_7_CARRY_1_COMPACT_PK_KS_PBS",PARAM_MESSAGE_1_CARRY_1_COMPACT_PK_PBS_KS:67,"67":"PARAM_MESSAGE_1_CARRY_1_COMPACT_PK_PBS_KS",PARAM_MESSAGE_1_CARRY_2_COMPACT_PK_PBS_KS:68,"68":"PARAM_MESSAGE_1_CARRY_2_COMPACT_PK_PBS_KS",PARAM_MESSAGE_1_CARRY_3_COMPACT_PK_PBS_KS:69,"69":"PARAM_MESSAGE_1_CARRY_3_COMPACT_PK_PBS_KS",PARAM_MESSAGE_1_CARRY_4_COMPACT_PK_PBS_KS:70,"70":"PARAM_MESSAGE_1_CARRY_4_COMPACT_PK_PBS_KS",PARAM_MESSAGE_1_CARRY_5_COMPACT_PK_PBS_KS:71,"71":"PARAM_MESSAGE_1_CARRY_5_COMPACT_PK_PBS_KS",PARAM_MESSAGE_1_CARRY_6_COMPACT_PK_PBS_KS:72,"72":"PARAM_MESSAGE_1_CARRY_6_COMPACT_PK_PBS_KS",PARAM_MESSAGE_1_CARRY_7_COMPACT_PK_PBS_KS:73,"73":"PARAM_MESSAGE_1_CARRY_7_COMPACT_PK_PBS_KS",PARAM_MESSAGE_2_CARRY_1_COMPACT_PK_PBS_KS:74,"74":"PARAM_MESSAGE_2_CARRY_1_COMPACT_PK_PBS_KS",PARAM_MESSAGE_2_CARRY_2_COMPACT_PK_PBS_KS:75,"75":"PARAM_MESSAGE_2_CARRY_2_COMPACT_PK_PBS_KS",PARAM_MESSAGE_2_CARRY_3_COMPACT_PK_PBS_KS:76,"76":"PARAM_MESSAGE_2_CARRY_3_COMPACT_PK_PBS_KS",PARAM_MESSAGE_2_CARRY_4_COMPACT_PK_PBS_KS:77,"77":"PARAM_MESSAGE_2_CARRY_4_COMPACT_PK_PBS_KS",PARAM_MESSAGE_2_CARRY_5_COMPACT_PK_PBS_KS:78,"78":"PARAM_MESSAGE_2_CARRY_5_COMPACT_PK_PBS_KS",PARAM_MESSAGE_2_CARRY_6_COMPACT_PK_PBS_KS:79,"79":"PARAM_MESSAGE_2_CARRY_6_COMPACT_PK_PBS_KS",PARAM_MESSAGE_3_CARRY_1_COMPACT_PK_PBS_KS:80,"80":"PARAM_MESSAGE_3_CARRY_1_COMPACT_PK_PBS_KS",PARAM_MESSAGE_3_CARRY_2_COMPACT_PK_PBS_KS:81,"81":"PARAM_MESSAGE_3_CARRY_2_COMPACT_PK_PBS_KS",PARAM_MESSAGE_3_CARRY_3_COMPACT_PK_PBS_KS:82,"82":"PARAM_MESSAGE_3_CARRY_3_COMPACT_PK_PBS_KS",PARAM_MESSAGE_3_CARRY_4_COMPACT_PK_PBS_KS:83,"83":"PARAM_MESSAGE_3_CARRY_4_COMPACT_PK_PBS_KS",PARAM_MESSAGE_3_CARRY_5_COMPACT_PK_PBS_KS:84,"84":"PARAM_MESSAGE_3_CARRY_5_COMPACT_PK_PBS_KS",PARAM_MESSAGE_4_CARRY_1_COMPACT_PK_PBS_KS:85,"85":"PARAM_MESSAGE_4_CARRY_1_COMPACT_PK_PBS_KS",PARAM_MESSAGE_4_CARRY_2_COMPACT_PK_PBS_KS:86,"86":"PARAM_MESSAGE_4_CARRY_2_COMPACT_PK_PBS_KS",PARAM_MESSAGE_4_CARRY_3_COMPACT_PK_PBS_KS:87,"87":"PARAM_MESSAGE_4_CARRY_3_COMPACT_PK_PBS_KS",PARAM_MESSAGE_4_CARRY_4_COMPACT_PK_PBS_KS:88,"88":"PARAM_MESSAGE_4_CARRY_4_COMPACT_PK_PBS_KS",PARAM_MESSAGE_5_CARRY_1_COMPACT_PK_PBS_KS:89,"89":"PARAM_MESSAGE_5_CARRY_1_COMPACT_PK_PBS_KS",PARAM_MESSAGE_5_CARRY_2_COMPACT_PK_PBS_KS:90,"90":"PARAM_MESSAGE_5_CARRY_2_COMPACT_PK_PBS_KS",PARAM_MESSAGE_5_CARRY_3_COMPACT_PK_PBS_KS:91,"91":"PARAM_MESSAGE_5_CARRY_3_COMPACT_PK_PBS_KS",PARAM_MESSAGE_6_CARRY_1_COMPACT_PK_PBS_KS:92,"92":"PARAM_MESSAGE_6_CARRY_1_COMPACT_PK_PBS_KS",PARAM_MESSAGE_6_CARRY_2_COMPACT_PK_PBS_KS:93,"93":"PARAM_MESSAGE_6_CARRY_2_COMPACT_PK_PBS_KS",PARAM_MESSAGE_7_CARRY_1_COMPACT_PK_PBS_KS:94,"94":"PARAM_MESSAGE_7_CARRY_1_COMPACT_PK_PBS_KS",PARAM_MESSAGE_1_CARRY_0:95,"95":"PARAM_MESSAGE_1_CARRY_0",PARAM_MESSAGE_1_CARRY_1:96,"96":"PARAM_MESSAGE_1_CARRY_1",PARAM_MESSAGE_2_CARRY_0:97,"97":"PARAM_MESSAGE_2_CARRY_0",PARAM_MESSAGE_1_CARRY_2:98,"98":"PARAM_MESSAGE_1_CARRY_2",PARAM_MESSAGE_2_CARRY_1:99,"99":"PARAM_MESSAGE_2_CARRY_1",PARAM_MESSAGE_3_CARRY_0:100,"100":"PARAM_MESSAGE_3_CARRY_0",PARAM_MESSAGE_1_CARRY_3:101,"101":"PARAM_MESSAGE_1_CARRY_3",PARAM_MESSAGE_2_CARRY_2:102,"102":"PARAM_MESSAGE_2_CARRY_2",PARAM_MESSAGE_3_CARRY_1:103,"103":"PARAM_MESSAGE_3_CARRY_1",PARAM_MESSAGE_4_CARRY_0:104,"104":"PARAM_MESSAGE_4_CARRY_0",PARAM_MESSAGE_1_CARRY_4:105,"105":"PARAM_MESSAGE_1_CARRY_4",PARAM_MESSAGE_2_CARRY_3:106,"106":"PARAM_MESSAGE_2_CARRY_3",PARAM_MESSAGE_3_CARRY_2:107,"107":"PARAM_MESSAGE_3_CARRY_2",PARAM_MESSAGE_4_CARRY_1:108,"108":"PARAM_MESSAGE_4_CARRY_1",PARAM_MESSAGE_5_CARRY_0:109,"109":"PARAM_MESSAGE_5_CARRY_0",PARAM_MESSAGE_1_CARRY_5:110,"110":"PARAM_MESSAGE_1_CARRY_5",PARAM_MESSAGE_2_CARRY_4:111,"111":"PARAM_MESSAGE_2_CARRY_4",PARAM_MESSAGE_3_CARRY_3:112,"112":"PARAM_MESSAGE_3_CARRY_3",PARAM_MESSAGE_4_CARRY_2:113,"113":"PARAM_MESSAGE_4_CARRY_2",PARAM_MESSAGE_5_CARRY_1:114,"114":"PARAM_MESSAGE_5_CARRY_1",PARAM_MESSAGE_6_CARRY_0:115,"115":"PARAM_MESSAGE_6_CARRY_0",PARAM_MESSAGE_1_CARRY_6:116,"116":"PARAM_MESSAGE_1_CARRY_6",PARAM_MESSAGE_2_CARRY_5:117,"117":"PARAM_MESSAGE_2_CARRY_5",PARAM_MESSAGE_3_CARRY_4:118,"118":"PARAM_MESSAGE_3_CARRY_4",PARAM_MESSAGE_4_CARRY_3:119,"119":"PARAM_MESSAGE_4_CARRY_3",PARAM_MESSAGE_5_CARRY_2:120,"120":"PARAM_MESSAGE_5_CARRY_2",PARAM_MESSAGE_6_CARRY_1:121,"121":"PARAM_MESSAGE_6_CARRY_1",PARAM_MESSAGE_7_CARRY_0:122,"122":"PARAM_MESSAGE_7_CARRY_0",PARAM_MESSAGE_1_CARRY_7:123,"123":"PARAM_MESSAGE_1_CARRY_7",PARAM_MESSAGE_2_CARRY_6:124,"124":"PARAM_MESSAGE_2_CARRY_6",PARAM_MESSAGE_3_CARRY_5:125,"125":"PARAM_MESSAGE_3_CARRY_5",PARAM_MESSAGE_4_CARRY_4:126,"126":"PARAM_MESSAGE_4_CARRY_4",PARAM_MESSAGE_5_CARRY_3:127,"127":"PARAM_MESSAGE_5_CARRY_3",PARAM_MESSAGE_6_CARRY_2:128,"128":"PARAM_MESSAGE_6_CARRY_2",PARAM_MESSAGE_7_CARRY_1:129,"129":"PARAM_MESSAGE_7_CARRY_1",PARAM_MESSAGE_8_CARRY_0:130,"130":"PARAM_MESSAGE_8_CARRY_0",PARAM_SMALL_MESSAGE_1_CARRY_1:131,"131":"PARAM_SMALL_MESSAGE_1_CARRY_1",PARAM_SMALL_MESSAGE_2_CARRY_2:132,"132":"PARAM_SMALL_MESSAGE_2_CARRY_2",PARAM_SMALL_MESSAGE_3_CARRY_3:133,"133":"PARAM_SMALL_MESSAGE_3_CARRY_3",PARAM_SMALL_MESSAGE_4_CARRY_4:134,"134":"PARAM_SMALL_MESSAGE_4_CARRY_4", });
|
|
301
304
|
/**
|
|
302
305
|
*/
|
|
303
306
|
export class Boolean {
|
|
@@ -342,10 +345,11 @@ export class Boolean {
|
|
|
342
345
|
* @param {number} pbs_level
|
|
343
346
|
* @param {number} ks_base_log
|
|
344
347
|
* @param {number} ks_level
|
|
348
|
+
* @param {number} encryption_key_choice
|
|
345
349
|
* @returns {BooleanParameters}
|
|
346
350
|
*/
|
|
347
|
-
static new_parameters(lwe_dimension, glwe_dimension, polynomial_size, lwe_modular_std_dev, glwe_modular_std_dev, pbs_base_log, pbs_level, ks_base_log, ks_level) {
|
|
348
|
-
const ret = wasm.boolean_new_parameters(lwe_dimension, glwe_dimension, polynomial_size, lwe_modular_std_dev, glwe_modular_std_dev, pbs_base_log, pbs_level, ks_base_log, ks_level);
|
|
351
|
+
static new_parameters(lwe_dimension, glwe_dimension, polynomial_size, lwe_modular_std_dev, glwe_modular_std_dev, pbs_base_log, pbs_level, ks_base_log, ks_level, encryption_key_choice) {
|
|
352
|
+
const ret = wasm.boolean_new_parameters(lwe_dimension, glwe_dimension, polynomial_size, lwe_modular_std_dev, glwe_modular_std_dev, pbs_base_log, pbs_level, ks_base_log, ks_level, encryption_key_choice);
|
|
349
353
|
return BooleanParameters.__wrap(ret);
|
|
350
354
|
}
|
|
351
355
|
/**
|
|
@@ -5096,14 +5100,17 @@ async function __wbg_load(module, imports) {
|
|
|
5096
5100
|
function __wbg_get_imports() {
|
|
5097
5101
|
const imports = {};
|
|
5098
5102
|
imports.wbg = {};
|
|
5099
|
-
imports.wbg.
|
|
5100
|
-
|
|
5101
|
-
return addHeapObject(ret);
|
|
5103
|
+
imports.wbg.__wbindgen_object_drop_ref = function(arg0) {
|
|
5104
|
+
takeObject(arg0);
|
|
5102
5105
|
};
|
|
5103
5106
|
imports.wbg.__wbindgen_error_new = function(arg0, arg1) {
|
|
5104
5107
|
const ret = new Error(getStringFromWasm0(arg0, arg1));
|
|
5105
5108
|
return addHeapObject(ret);
|
|
5106
5109
|
};
|
|
5110
|
+
imports.wbg.__wbindgen_bigint_from_u128 = function(arg0, arg1) {
|
|
5111
|
+
const ret = BigInt.asUintN(64, arg0) << BigInt(64) | BigInt.asUintN(64, arg1);
|
|
5112
|
+
return addHeapObject(ret);
|
|
5113
|
+
};
|
|
5107
5114
|
imports.wbg.__wbindgen_bigint_from_u64 = function(arg0) {
|
|
5108
5115
|
const ret = BigInt.asUintN(64, arg0);
|
|
5109
5116
|
return addHeapObject(ret);
|
|
@@ -5112,9 +5119,6 @@ function __wbg_get_imports() {
|
|
|
5112
5119
|
const ret = getObject(arg0) >> getObject(arg1);
|
|
5113
5120
|
return addHeapObject(ret);
|
|
5114
5121
|
};
|
|
5115
|
-
imports.wbg.__wbindgen_object_drop_ref = function(arg0) {
|
|
5116
|
-
takeObject(arg0);
|
|
5117
|
-
};
|
|
5118
5122
|
imports.wbg.__wbindgen_jsval_eq = function(arg0, arg1) {
|
|
5119
5123
|
const ret = getObject(arg0) === getObject(arg1);
|
|
5120
5124
|
return ret;
|
|
@@ -5185,6 +5189,12 @@ function __wbg_get_imports() {
|
|
|
5185
5189
|
wasm.__wbindgen_free(deferred0_0, deferred0_1, 1);
|
|
5186
5190
|
}
|
|
5187
5191
|
};
|
|
5192
|
+
imports.wbg.__wbg_getRandomValues_37fa2ca9e4e07fab = function() { return handleError(function (arg0, arg1) {
|
|
5193
|
+
getObject(arg0).getRandomValues(getObject(arg1));
|
|
5194
|
+
}, arguments) };
|
|
5195
|
+
imports.wbg.__wbg_randomFillSync_dc1e9a60c158336d = function() { return handleError(function (arg0, arg1) {
|
|
5196
|
+
getObject(arg0).randomFillSync(takeObject(arg1));
|
|
5197
|
+
}, arguments) };
|
|
5188
5198
|
imports.wbg.__wbg_crypto_c48a774b022d20ac = function(arg0) {
|
|
5189
5199
|
const ret = getObject(arg0).crypto;
|
|
5190
5200
|
return addHeapObject(ret);
|
|
@@ -5226,12 +5236,6 @@ function __wbg_get_imports() {
|
|
|
5226
5236
|
const ret = getStringFromWasm0(arg0, arg1);
|
|
5227
5237
|
return addHeapObject(ret);
|
|
5228
5238
|
};
|
|
5229
|
-
imports.wbg.__wbg_getRandomValues_37fa2ca9e4e07fab = function() { return handleError(function (arg0, arg1) {
|
|
5230
|
-
getObject(arg0).getRandomValues(getObject(arg1));
|
|
5231
|
-
}, arguments) };
|
|
5232
|
-
imports.wbg.__wbg_randomFillSync_dc1e9a60c158336d = function() { return handleError(function (arg0, arg1) {
|
|
5233
|
-
getObject(arg0).randomFillSync(takeObject(arg1));
|
|
5234
|
-
}, arguments) };
|
|
5235
5239
|
imports.wbg.__wbg_newnoargs_581967eacc0e2604 = function(arg0, arg1) {
|
|
5236
5240
|
const ret = new Function(getStringFromWasm0(arg0, arg1));
|
|
5237
5241
|
return addHeapObject(ret);
|
package/tfhe_bg.wasm
CHANGED
|
Binary file
|