pub struct ComputeKeyNonFft {
pub bs_key: BootstrapKey<u64>,
pub ks_key: LweKeyswitchKey<u64>,
pub auto_key: AutomorphismKey<u64>,
pub ss_key: SchemeSwitchKey<u64>,
}Expand description
A set of keys that can be FFT’d and used during evaluation.
§Remarks
Compute keys are quite large (100s of MB), so you should serialize with a protocol that can efficiently store arrays. Additionally, you should design your protocol around not having to frequently share these.
Fields§
§bs_key: BootstrapKey<u64>The bootstrapping key used internally in circuit bootstrapping operations.
ks_key: LweKeyswitchKey<u64>The keyswitch keys for converting L1 LWE ciphertexts to L0 LWE ciphertexts.
auto_key: AutomorphismKey<u64>An automorphism key used as part of circuit bootstrapping.
ss_key: SchemeSwitchKey<u64>Scheme switching keys used for turning L1 GLEV ciphertexts into L1 GGSW ciphertexts.
Implementations§
Source§impl ComputeKeyNonFft
impl ComputeKeyNonFft
Sourcepub fn generate(secret_key: &SecretKey, params: &Params) -> Self
pub fn generate(secret_key: &SecretKey, params: &Params) -> Self
Generate the compute keys in non-fft form from the given secret keys.
§Remarks
The params passed must be the same as those used during secret key generation.
Sourcepub fn fft(&self, params: &Params) -> ComputeKey
pub fn fft(&self, params: &Params) -> ComputeKey
Takes the fast-fourier transform of the keys, which is used during evaluation.
Sourcepub fn generate_with_default_params(secret_key: &SecretKey) -> Self
pub fn generate_with_default_params(secret_key: &SecretKey) -> Self
Generate the compute keys in non-fft form from the given secret keys with
the default parameters (crate::DEFAULT_128).
§Remarks
The secret key must have also been generated with the default parameters.
Trait Implementations§
Source§impl Clone for ComputeKeyNonFft
impl Clone for ComputeKeyNonFft
Source§fn clone(&self) -> ComputeKeyNonFft
fn clone(&self) -> ComputeKeyNonFft
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl<'de> Deserialize<'de> for ComputeKeyNonFft
impl<'de> Deserialize<'de> for ComputeKeyNonFft
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Source§impl GetSize for ComputeKeyNonFft
impl GetSize for ComputeKeyNonFft
Auto Trait Implementations§
impl Freeze for ComputeKeyNonFft
impl RefUnwindSafe for ComputeKeyNonFft
impl Send for ComputeKeyNonFft
impl Sync for ComputeKeyNonFft
impl Unpin for ComputeKeyNonFft
impl UnwindSafe for ComputeKeyNonFft
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§impl<T> Pointable for T
impl<T> Pointable for T
Source§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
Source§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
self from the equivalent element of its
superset. Read moreSource§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
self is actually part of its subset T (and can be converted to it).Source§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
self.to_subset but without any property checks. Always succeeds.Source§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
self to the equivalent element of its superset.