pub struct KS32AtomicPatternServerKey {
pub key_switching_key: LweKeyswitchKeyOwned<u32>,
pub bootstrapping_key: ShortintBootstrappingKey<u32>,
pub ciphertext_modulus: CiphertextModulus,
}Expand description
The definition of the server key elements used in the
KeySwitch32 atomic pattern
Fields§
§key_switching_key: LweKeyswitchKeyOwned<u32>§bootstrapping_key: ShortintBootstrappingKey<u32>§ciphertext_modulus: CiphertextModulusImplementations§
Source§impl KS32AtomicPatternServerKey
impl KS32AtomicPatternServerKey
pub fn new( cks: &KS32AtomicPatternClientKey, engine: &mut ShortintEngine, ) -> Self
pub fn from_raw_parts( key_switching_key: LweKeyswitchKeyOwned<u32>, bootstrapping_key: ShortintBootstrappingKey<u32>, ciphertext_modulus: CiphertextModulus, ) -> Self
pub fn intermediate_lwe_dimension(&self) -> LweDimension
Trait Implementations§
Source§impl AtomicPattern for KS32AtomicPatternServerKey
impl AtomicPattern for KS32AtomicPatternServerKey
Source§fn ciphertext_lwe_dimension_for_key(
&self,
key_choice: EncryptionKeyChoice,
) -> LweDimension
fn ciphertext_lwe_dimension_for_key( &self, key_choice: EncryptionKeyChoice, ) -> LweDimension
The LWE dimension of a ciphertext encrypted using the provided key choice
Source§fn ciphertext_modulus_for_key(
&self,
key_choice: EncryptionKeyChoice,
) -> CiphertextModulus
fn ciphertext_modulus_for_key( &self, key_choice: EncryptionKeyChoice, ) -> CiphertextModulus
The modulus of a ciphertext encrypted using the provided key choice
Source§fn ciphertext_decompression_method(&self) -> MsDecompressionType
fn ciphertext_decompression_method(&self) -> MsDecompressionType
Decompression method used to extract cipherexts compressed with the modulus switch
compression
Source§fn apply_lookup_table_assign(&self, ct: &mut Ciphertext, acc: &LookupTableOwned)
fn apply_lookup_table_assign(&self, ct: &mut Ciphertext, acc: &LookupTableOwned)
Performs a full application of the atomic pattern, and modify the input
Ciphertext
in-place. Read moreSource§fn apply_many_lookup_table(
&self,
ct: &Ciphertext,
acc: &ManyLookupTableOwned,
) -> Vec<Ciphertext>
fn apply_many_lookup_table( &self, ct: &Ciphertext, acc: &ManyLookupTableOwned, ) -> Vec<Ciphertext>
Applies many lookup tables on a single ciphertext
Source§fn lookup_table_size(&self) -> LookupTableSize
fn lookup_table_size(&self) -> LookupTableSize
The size of the lookup tables applied by this Atomic Pattern
fn kind(&self) -> AtomicPatternKind
Source§fn deterministic_execution(&self) -> bool
fn deterministic_execution(&self) -> bool
Returns true if the Atomic Pattern will execute deterministically
Source§fn switch_modulus_and_compress(
&self,
ct: &Ciphertext,
) -> CompressedModulusSwitchedCiphertext
fn switch_modulus_and_compress( &self, ct: &Ciphertext, ) -> CompressedModulusSwitchedCiphertext
Compresses a ciphertext to have a smaller serialization size
Source§fn decompress_and_apply_lookup_table(
&self,
compressed_ct: &CompressedModulusSwitchedCiphertext,
lut: &LookupTableOwned,
) -> Ciphertext
fn decompress_and_apply_lookup_table( &self, compressed_ct: &CompressedModulusSwitchedCiphertext, lut: &LookupTableOwned, ) -> Ciphertext
Decompresses a compressed ciphertext
Source§fn ciphertext_lwe_dimension(&self) -> LweDimension
fn ciphertext_lwe_dimension(&self) -> LweDimension
The LWE dimension of the ciphertext used as input and output of the AP
Source§fn ciphertext_modulus(&self) -> CiphertextModulus
fn ciphertext_modulus(&self) -> CiphertextModulus
The modulus of the ciphertext used as input and output of the AP
Source§impl AtomicPatternMut for KS32AtomicPatternServerKey
impl AtomicPatternMut for KS32AtomicPatternServerKey
Source§fn set_deterministic_execution(&mut self, new_deterministic_execution: bool)
fn set_deterministic_execution(&mut self, new_deterministic_execution: bool)
Configures the atomic pattern for deterministic execution
Source§impl Clone for KS32AtomicPatternServerKey
impl Clone for KS32AtomicPatternServerKey
Source§fn clone(&self) -> KS32AtomicPatternServerKey
fn clone(&self) -> KS32AtomicPatternServerKey
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for KS32AtomicPatternServerKey
impl Debug for KS32AtomicPatternServerKey
Source§impl<'de> Deserialize<'de> for KS32AtomicPatternServerKey
impl<'de> Deserialize<'de> for KS32AtomicPatternServerKey
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>,
Deserialize this value from the given Serde deserializer. Read more
Source§impl From<KS32AtomicPatternServerKey> for AtomicPatternServerKey
impl From<KS32AtomicPatternServerKey> for AtomicPatternServerKey
Source§fn from(value: KS32AtomicPatternServerKey) -> Self
fn from(value: KS32AtomicPatternServerKey) -> Self
Converts to this type from the input type.
Source§impl ParameterSetConformant for KS32AtomicPatternServerKey
impl ParameterSetConformant for KS32AtomicPatternServerKey
type ParameterSet = KeySwitch32PBSParameters
fn is_conformant(&self, parameter_set: &Self::ParameterSet) -> bool
impl StructuralPartialEq for KS32AtomicPatternServerKey
Source§impl Unversionize for KS32AtomicPatternServerKeywhere
KS32AtomicPatternServerKeyVersions: VersionsDispatch<Self>,
impl Unversionize for KS32AtomicPatternServerKeywhere
KS32AtomicPatternServerKeyVersions: VersionsDispatch<Self>,
Source§fn unversionize(
versioned: Self::VersionedOwned,
) -> Result<Self, UnversionizeError>
fn unversionize( versioned: Self::VersionedOwned, ) -> Result<Self, UnversionizeError>
Creates an object from a versioned enum, and eventually upgrades from previous
variants.
Source§impl UnversionizeVec for KS32AtomicPatternServerKeywhere
KS32AtomicPatternServerKeyVersions: VersionsDispatch<Self>,
impl UnversionizeVec for KS32AtomicPatternServerKeywhere
KS32AtomicPatternServerKeyVersions: VersionsDispatch<Self>,
fn unversionize_vec( versioned: Self::VersionedVec, ) -> Result<Vec<Self>, UnversionizeError>
Source§impl Version for KS32AtomicPatternServerKey
impl Version for KS32AtomicPatternServerKey
Source§impl Versionize for KS32AtomicPatternServerKeywhere
KS32AtomicPatternServerKeyVersions: VersionsDispatch<Self>,
impl Versionize for KS32AtomicPatternServerKeywhere
KS32AtomicPatternServerKeyVersions: VersionsDispatch<Self>,
Source§type Versioned<'vers> = <KS32AtomicPatternServerKeyVersions as VersionsDispatch<KS32AtomicPatternServerKey>>::Ref<'vers>
type Versioned<'vers> = <KS32AtomicPatternServerKeyVersions as VersionsDispatch<KS32AtomicPatternServerKey>>::Ref<'vers>
The equivalent versioned type. It should have a variant for each version.
It may own the underlying data or only hold a read-only reference to it.
Source§fn versionize(&self) -> Self::Versioned<'_>
fn versionize(&self) -> Self::Versioned<'_>
Wraps the object into a versioned enum with a variant for each version. This will
use references on the underlying types if possible.
Source§impl VersionizeOwned for KS32AtomicPatternServerKeywhere
KS32AtomicPatternServerKeyVersions: VersionsDispatch<Self>,
impl VersionizeOwned for KS32AtomicPatternServerKeywhere
KS32AtomicPatternServerKeyVersions: VersionsDispatch<Self>,
type VersionedOwned = <KS32AtomicPatternServerKeyVersions as VersionsDispatch<KS32AtomicPatternServerKey>>::Owned
Source§fn versionize_owned(self) -> Self::VersionedOwned
fn versionize_owned(self) -> Self::VersionedOwned
Wraps the object into a versioned enum with a variant for each version. This will
clone the underlying types.
Source§impl VersionizeSlice for KS32AtomicPatternServerKeywhere
KS32AtomicPatternServerKeyVersions: VersionsDispatch<Self>,
impl VersionizeSlice for KS32AtomicPatternServerKeywhere
KS32AtomicPatternServerKeyVersions: VersionsDispatch<Self>,
type VersionedSlice<'vers> = Vec<<KS32AtomicPatternServerKey as Versionize>::Versioned<'vers>>
fn versionize_slice(slice: &[Self]) -> Self::VersionedSlice<'_>
Source§impl VersionizeVec for KS32AtomicPatternServerKeywhere
KS32AtomicPatternServerKeyVersions: VersionsDispatch<Self>,
impl VersionizeVec for KS32AtomicPatternServerKeywhere
KS32AtomicPatternServerKeyVersions: VersionsDispatch<Self>,
type VersionedVec = Vec<<KS32AtomicPatternServerKey as VersionizeOwned>::VersionedOwned>
fn versionize_vec(vec: Vec<Self>) -> Self::VersionedVec
Auto Trait Implementations§
impl Freeze for KS32AtomicPatternServerKey
impl RefUnwindSafe for KS32AtomicPatternServerKey
impl Send for KS32AtomicPatternServerKey
impl Sync for KS32AtomicPatternServerKey
impl Unpin for KS32AtomicPatternServerKey
impl UnsafeUnpin for KS32AtomicPatternServerKey
impl UnwindSafe for KS32AtomicPatternServerKey
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
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
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>
Converts
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>
Converts
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 more