From da07898fed945bd4b0c84dbb2403b75c7acdf76d Mon Sep 17 00:00:00 2001 From: Janmajaya Mall Date: Fri, 5 Jul 2024 12:24:34 +0530 Subject: [PATCH] make build work with no features --- src/bool/evaluator.rs | 2 +- src/bool/mod.rs | 5 ++++- src/bool/mp_api.rs | 3 --- src/bool/parameters.rs | 35 +++++++++++------------------------ src/decomposer.rs | 8 ++++---- src/lib.rs | 2 ++ src/rgsw/keygen.rs | 2 +- 7 files changed, 23 insertions(+), 34 deletions(-) diff --git a/src/bool/evaluator.rs b/src/bool/evaluator.rs index 1d53eb3..6b3f0b9 100644 --- a/src/bool/evaluator.rs +++ b/src/bool/evaluator.rs @@ -1642,7 +1642,7 @@ where // TODO: check whether parameters support `total_users` let nttop = self.pbs_info().nttop_rlweq(); let rlwe_modop = self.pbs_info().modop_rlweq(); - let ring_size = self.pbs_info().rlwe_n(); + // let ring_size = self.pbs_info().rlwe_n(); let rlwe_q = self.parameters().rlwe_q(); let sk_rlwe = client_key.sk_rlwe(); diff --git a/src/bool/mod.rs b/src/bool/mod.rs index 77ad7e5..9567b09 100644 --- a/src/bool/mod.rs +++ b/src/bool/mod.rs @@ -16,6 +16,7 @@ pub use mp_api::*; use crate::RowEntity; pub type ClientKey = keys::ClientKey<[u8; 32], u64>; +#[cfg(any(feature = "interactive_mp", feature = "non_interactive_mp"))] pub type FheBool = impl_bool_frontend::FheBool>; pub(crate) trait BooleanGates { @@ -69,6 +70,7 @@ pub(crate) trait BooleanGates { fn not(&self, c: &Self::Ciphertext) -> Self::Ciphertext; } +#[cfg(any(feature = "interactive_mp", feature = "non_interactive_mp"))] mod impl_bool_frontend { use crate::MultiPartyDecryptor; @@ -193,6 +195,7 @@ mod impl_bool_frontend { } } +#[cfg(any(feature = "interactive_mp", feature = "non_interactive_mp"))] mod common_mp_enc_dec { use itertools::Itertools; @@ -200,7 +203,7 @@ mod common_mp_enc_dec { use crate::{ pbs::{sample_extract, PbsInfo}, utils::WithLocal, - Matrix, MultiPartyDecryptor, RowEntity, SampleExtractor, + Matrix, RowEntity, SampleExtractor, }; type Mat = Vec>; diff --git a/src/bool/mp_api.rs b/src/bool/mp_api.rs index f0dca1e..c8296bf 100644 --- a/src/bool/mp_api.rs +++ b/src/bool/mp_api.rs @@ -43,9 +43,6 @@ pub fn set_parameter_set(select: ParameterSelector) { ParameterSelector::InteractiveLTE8Party => { BOOL_EVALUATOR.with_borrow_mut(|v| *v = Some(BoolEvaluator::new(I_8P))); } - _ => { - panic!("Paramerter not supported") - } } } diff --git a/src/bool/parameters.rs b/src/bool/parameters.rs index c6373e7..7d7beab 100644 --- a/src/bool/parameters.rs +++ b/src/bool/parameters.rs @@ -725,27 +725,14 @@ pub(crate) const SP_TEST_BOOL_PARAMS: BoolParameters = BoolParameters:: { - pub(crate) fn default_rlwe_modop(&self) -> ModularOpsU64> { - ModularOpsU64::new(self.rlwe_q) - } - pub(crate) fn default_rlwe_nttop(&self) -> NttBackendU64 { - NttBackendU64::new(&self.rlwe_q, self.rlwe_n.0) - } - } - - use crate::{utils::generate_prime, ModInit, ModularOpsU64, Ntt, NttBackendU64, NttInit}; - - use super::{BoolParameters, CiphertextModulus}; - - #[test] - fn find_prime() { - let bits = 60; - let ring_size = 1 << 11; - let prime = generate_prime(bits, ring_size * 2, 1 << bits).unwrap(); - dbg!(prime); - } -} +// #[cfg(test)] +// mod tests { + +// #[test] +// fn find_prime() { +// let bits = 60; +// let ring_size = 1 << 11; +// let prime = crate::utils::generate_prime(bits, ring_size * 2, 1 << +// bits).unwrap(); dbg!(prime); +// } +// } diff --git a/src/decomposer.rs b/src/decomposer.rs index 4ffcf4a..d50ae7f 100644 --- a/src/decomposer.rs +++ b/src/decomposer.rs @@ -1,4 +1,4 @@ -use itertools::{assert_equal, izip, Itertools}; +use itertools::{izip, Itertools}; use num_traits::{FromPrimitive, PrimInt, ToPrimitive, WrappingAdd, WrappingSub}; use std::fmt::{Debug, Display}; @@ -311,13 +311,13 @@ fn round_value(value: T, ignore_bits: usize) -> T { #[cfg(test)] mod tests { - use itertools::{izip, Itertools}; + use itertools::Itertools; use rand::{thread_rng, Rng}; use crate::{ - backend::{ModInit, ModularOpsU64, Modulus}, + backend::{ModInit, ModularOpsU64}, decomposer::round_value, - utils::{generate_prime, tests::Stats}, + utils::generate_prime, }; use super::{Decomposer, DefaultDecomposer}; diff --git a/src/lib.rs b/src/lib.rs index c4e5b66..8c7b6f1 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -10,6 +10,7 @@ mod ntt; mod pbs; mod random; mod rgsw; +#[cfg(any(feature = "interactive_mp", feature = "non_interactive_mp"))] mod shortint; mod utils; @@ -19,6 +20,7 @@ pub use backend::{ pub use bool::*; pub use ntt::{Ntt, NttBackendU64, NttInit}; +#[cfg(any(feature = "interactive_mp", feature = "non_interactive_mp"))] pub use shortint::{div_zero_error_flag, reset_error_flags, FheUint8}; pub use decomposer::{Decomposer, DecomposerIter, DefaultDecomposer}; diff --git a/src/rgsw/keygen.rs b/src/rgsw/keygen.rs index 9d69161..777ee9a 100644 --- a/src/rgsw/keygen.rs +++ b/src/rgsw/keygen.rs @@ -625,7 +625,7 @@ pub(crate) fn decrypt_rlwe< } // Measures maximum noise in degree 1 RLWE ciphertext against message `want_m` -pub(crate) fn measure_max_noise< +fn measure_max_noise< Mmut: MatrixMut + Matrix, ModOp: VectorOps + GetModulus, NttOp: Ntt,