@enclave-e3/wasm 0.1.8 → 0.1.9

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.
@@ -103,11 +103,16 @@ export function bfv_verifiable_encrypt_vector(data: BigUint64Array, public_key:
103
103
  */
104
104
  export function compute_pk_commitment(public_key: Uint8Array, degree: number, plaintext_modulus: bigint, moduli: BigUint64Array): Uint8Array;
105
105
 
106
+ /**
107
+ * Generate a public key from JavaScript.
108
+ */
109
+ export function generate_public_key(degree: number, plaintext_modulus: bigint, moduli: BigUint64Array): Uint8Array;
110
+
106
111
  /**
107
112
  * Retrieves a BFV parameter set by name.
108
113
  *
109
114
  * # Parameters
110
- * * `name` - Parameter set identifier (e.g., "SECURE_THRESHOLD_BFV_8192")
115
+ * * `name` - Parameter set identifier (e.g., "SECURE_THRESHOLD_8192")
111
116
  *
112
117
  * # Returns
113
118
  * A JavaScript object with the following structure:
@@ -130,7 +135,7 @@ export function get_bfv_params(name: string): any;
130
135
  *
131
136
  * # Returns
132
137
  * Array of parameter set names that can be passed to `get_bfv_params()`.
133
- * Includes both production-ready sets (e.g., "SECURE_THRESHOLD_BFV_8192") and
138
+ * Includes both production-ready sets (e.g., "SECURE_THRESHOLD_8192") and
134
139
  * insecure sets for testing (prefixed with "INSECURE_").
135
140
  */
136
141
  export function get_bfv_params_list(): string[];
@@ -200,11 +200,31 @@ function compute_pk_commitment(public_key, degree, plaintext_modulus, moduli) {
200
200
  }
201
201
  exports.compute_pk_commitment = compute_pk_commitment;
202
202
 
203
+ /**
204
+ * Generate a public key from JavaScript.
205
+ * @param {number} degree
206
+ * @param {bigint} plaintext_modulus
207
+ * @param {BigUint64Array} moduli
208
+ * @returns {Uint8Array}
209
+ */
210
+ function generate_public_key(degree, plaintext_modulus, moduli) {
211
+ const ptr0 = passArray64ToWasm0(moduli, wasm.__wbindgen_malloc);
212
+ const len0 = WASM_VECTOR_LEN;
213
+ const ret = wasm.generate_public_key(degree, plaintext_modulus, ptr0, len0);
214
+ if (ret[3]) {
215
+ throw takeFromExternrefTable0(ret[2]);
216
+ }
217
+ var v2 = getArrayU8FromWasm0(ret[0], ret[1]).slice();
218
+ wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);
219
+ return v2;
220
+ }
221
+ exports.generate_public_key = generate_public_key;
222
+
203
223
  /**
204
224
  * Retrieves a BFV parameter set by name.
205
225
  *
206
226
  * # Parameters
207
- * * `name` - Parameter set identifier (e.g., "SECURE_THRESHOLD_BFV_8192")
227
+ * * `name` - Parameter set identifier (e.g., "SECURE_THRESHOLD_8192")
208
228
  *
209
229
  * # Returns
210
230
  * A JavaScript object with the following structure:
@@ -238,7 +258,7 @@ exports.get_bfv_params = get_bfv_params;
238
258
  *
239
259
  * # Returns
240
260
  * Array of parameter set names that can be passed to `get_bfv_params()`.
241
- * Includes both production-ready sets (e.g., "SECURE_THRESHOLD_BFV_8192") and
261
+ * Includes both production-ready sets (e.g., "SECURE_THRESHOLD_8192") and
242
262
  * insecure sets for testing (prefixed with "INSECURE_").
243
263
  * @returns {string[]}
244
264
  */
Binary file
@@ -2,6 +2,7 @@
2
2
  /* eslint-disable */
3
3
  export const memory: WebAssembly.Memory;
4
4
  export const bfv_encrypt_number: (a: bigint, b: number, c: number, d: number, e: bigint, f: number, g: number) => [number, number, number, number];
5
+ export const generate_public_key: (a: number, b: bigint, c: number, d: number) => [number, number, number, number];
5
6
  export const compute_pk_commitment: (a: number, b: number, c: number, d: bigint, e: number, f: number) => [number, number, number, number];
6
7
  export const bfv_encrypt_vector: (a: number, b: number, c: number, d: number, e: number, f: bigint, g: number, h: number) => [number, number, number, number];
7
8
  export const bfv_verifiable_encrypt_number: (a: bigint, b: number, c: number, d: number, e: bigint, f: number, g: number) => [number, number, number, number];
@@ -103,11 +103,16 @@ export function bfv_verifiable_encrypt_vector(data: BigUint64Array, public_key:
103
103
  */
104
104
  export function compute_pk_commitment(public_key: Uint8Array, degree: number, plaintext_modulus: bigint, moduli: BigUint64Array): Uint8Array;
105
105
 
106
+ /**
107
+ * Generate a public key from JavaScript.
108
+ */
109
+ export function generate_public_key(degree: number, plaintext_modulus: bigint, moduli: BigUint64Array): Uint8Array;
110
+
106
111
  /**
107
112
  * Retrieves a BFV parameter set by name.
108
113
  *
109
114
  * # Parameters
110
- * * `name` - Parameter set identifier (e.g., "SECURE_THRESHOLD_BFV_8192")
115
+ * * `name` - Parameter set identifier (e.g., "SECURE_THRESHOLD_8192")
111
116
  *
112
117
  * # Returns
113
118
  * A JavaScript object with the following structure:
@@ -130,7 +135,7 @@ export function get_bfv_params(name: string): any;
130
135
  *
131
136
  * # Returns
132
137
  * Array of parameter set names that can be passed to `get_bfv_params()`.
133
- * Includes both production-ready sets (e.g., "SECURE_THRESHOLD_BFV_8192") and
138
+ * Includes both production-ready sets (e.g., "SECURE_THRESHOLD_8192") and
134
139
  * insecure sets for testing (prefixed with "INSECURE_").
135
140
  */
136
141
  export function get_bfv_params_list(): string[];
@@ -140,6 +145,7 @@ export type InitInput = RequestInfo | URL | Response | BufferSource | WebAssembl
140
145
  export interface InitOutput {
141
146
  readonly memory: WebAssembly.Memory;
142
147
  readonly bfv_encrypt_number: (a: bigint, b: number, c: number, d: number, e: bigint, f: number, g: number) => [number, number, number, number];
148
+ readonly generate_public_key: (a: number, b: bigint, c: number, d: number) => [number, number, number, number];
143
149
  readonly compute_pk_commitment: (a: number, b: number, c: number, d: bigint, e: number, f: number) => [number, number, number, number];
144
150
  readonly bfv_encrypt_vector: (a: number, b: number, c: number, d: number, e: number, f: bigint, g: number, h: number) => [number, number, number, number];
145
151
  readonly bfv_verifiable_encrypt_number: (a: bigint, b: number, c: number, d: number, e: bigint, f: number, g: number) => [number, number, number, number];
@@ -195,11 +195,30 @@ export function compute_pk_commitment(public_key, degree, plaintext_modulus, mod
195
195
  return v3;
196
196
  }
197
197
 
198
+ /**
199
+ * Generate a public key from JavaScript.
200
+ * @param {number} degree
201
+ * @param {bigint} plaintext_modulus
202
+ * @param {BigUint64Array} moduli
203
+ * @returns {Uint8Array}
204
+ */
205
+ export function generate_public_key(degree, plaintext_modulus, moduli) {
206
+ const ptr0 = passArray64ToWasm0(moduli, wasm.__wbindgen_malloc);
207
+ const len0 = WASM_VECTOR_LEN;
208
+ const ret = wasm.generate_public_key(degree, plaintext_modulus, ptr0, len0);
209
+ if (ret[3]) {
210
+ throw takeFromExternrefTable0(ret[2]);
211
+ }
212
+ var v2 = getArrayU8FromWasm0(ret[0], ret[1]).slice();
213
+ wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);
214
+ return v2;
215
+ }
216
+
198
217
  /**
199
218
  * Retrieves a BFV parameter set by name.
200
219
  *
201
220
  * # Parameters
202
- * * `name` - Parameter set identifier (e.g., "SECURE_THRESHOLD_BFV_8192")
221
+ * * `name` - Parameter set identifier (e.g., "SECURE_THRESHOLD_8192")
203
222
  *
204
223
  * # Returns
205
224
  * A JavaScript object with the following structure:
@@ -232,7 +251,7 @@ export function get_bfv_params(name) {
232
251
  *
233
252
  * # Returns
234
253
  * Array of parameter set names that can be passed to `get_bfv_params()`.
235
- * Includes both production-ready sets (e.g., "SECURE_THRESHOLD_BFV_8192") and
254
+ * Includes both production-ready sets (e.g., "SECURE_THRESHOLD_8192") and
236
255
  * insecure sets for testing (prefixed with "INSECURE_").
237
256
  * @returns {string[]}
238
257
  */