mirror of
https://github.com/zama-ai/tfhe-rs.git
synced 2026-01-08 22:28:01 -05:00
fix(hlapi): clear rerand metadata once rerand is done
This commit is contained in:
@@ -2071,6 +2071,8 @@ impl ReRandomize for FheBool {
|
||||
seed,
|
||||
)?;
|
||||
|
||||
self.re_randomization_metadata_mut().clear();
|
||||
|
||||
Ok(())
|
||||
}
|
||||
#[cfg(feature = "gpu")]
|
||||
|
||||
@@ -1162,6 +1162,8 @@ where
|
||||
seed,
|
||||
)?;
|
||||
|
||||
self.re_randomization_metadata_mut().clear();
|
||||
|
||||
Ok(())
|
||||
}
|
||||
#[cfg(feature = "gpu")]
|
||||
|
||||
@@ -1672,6 +1672,8 @@ where
|
||||
seed,
|
||||
)?;
|
||||
|
||||
self.re_randomization_metadata_mut().clear();
|
||||
|
||||
Ok(())
|
||||
}
|
||||
#[cfg(feature = "gpu")]
|
||||
|
||||
@@ -231,4 +231,8 @@ impl ReRandomizationMetadata {
|
||||
pub fn set_data(&mut self, data: &[u8]) {
|
||||
self.inner.set_data(data);
|
||||
}
|
||||
|
||||
pub fn clear(&mut self) {
|
||||
self.inner.clear();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -174,6 +174,16 @@ impl SmallVec {
|
||||
self.set_data(le_bytes.as_slice());
|
||||
}
|
||||
|
||||
/// Clears the vector, removing all values.
|
||||
///
|
||||
/// Note that this method has no effect on the allocated capacity of the vector.
|
||||
pub fn clear(&mut self) {
|
||||
match self {
|
||||
Self::Stack { bytes: _, len } => *len = 0,
|
||||
Self::Heap(items) => items.clear(),
|
||||
}
|
||||
}
|
||||
|
||||
// Creates a SmallVec from the vec, but, only re-uses the vec
|
||||
// if its len would not fit on the stack part.
|
||||
//
|
||||
|
||||
@@ -78,8 +78,10 @@ fn test_re_rand() {
|
||||
let mut seed_gen = re_rand_context.finalize();
|
||||
|
||||
a.re_randomize(&cpk, seed_gen.next_seed().unwrap()).unwrap();
|
||||
assert!(a.re_randomization_metadata().data().is_empty());
|
||||
|
||||
b.re_randomize(&cpk, seed_gen.next_seed().unwrap()).unwrap();
|
||||
assert!(b.re_randomization_metadata().data().is_empty());
|
||||
|
||||
let c = a + b;
|
||||
let dec: u64 = c.decrypt(&cks);
|
||||
@@ -130,8 +132,10 @@ fn test_re_rand() {
|
||||
let mut seed_gen = re_rand_context.finalize();
|
||||
|
||||
a.re_randomize(&cpk, seed_gen.next_seed().unwrap()).unwrap();
|
||||
assert!(a.re_randomization_metadata().data().is_empty());
|
||||
|
||||
b.re_randomize(&cpk, seed_gen.next_seed().unwrap()).unwrap();
|
||||
assert!(b.re_randomization_metadata().data().is_empty());
|
||||
|
||||
let c = a + b;
|
||||
let dec: i8 = c.decrypt(&cks);
|
||||
@@ -181,8 +185,10 @@ fn test_re_rand() {
|
||||
let mut seed_gen = re_rand_context.finalize();
|
||||
|
||||
a.re_randomize(&cpk, seed_gen.next_seed().unwrap()).unwrap();
|
||||
assert!(a.re_randomization_metadata().data().is_empty());
|
||||
|
||||
b.re_randomize(&cpk, seed_gen.next_seed().unwrap()).unwrap();
|
||||
assert!(b.re_randomization_metadata().data().is_empty());
|
||||
|
||||
let c = a & b;
|
||||
let dec: bool = c.decrypt(&cks);
|
||||
|
||||
Reference in New Issue
Block a user