pub enum AtomicPatternServerKey {
Standard(StandardAtomicPatternServerKey),
KeySwitch32(KS32AtomicPatternServerKey),
Dynamic(Box<dyn DynamicAtomicPattern>),
}Expand description
The server key materials for all the supported Atomic Patterns
Variants§
Standard(StandardAtomicPatternServerKey)
KeySwitch32(KS32AtomicPatternServerKey)
Dynamic(Box<dyn DynamicAtomicPattern>)
Implementations§
Source§impl AtomicPatternServerKey
impl AtomicPatternServerKey
pub fn new(cks: &ClientKey, engine: &mut ShortintEngine) -> Self
Trait Implementations§
Source§impl AtomicPattern for AtomicPatternServerKey
impl AtomicPattern for AtomicPatternServerKey
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_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(&self) -> CiphertextModulus
fn ciphertext_modulus(&self) -> CiphertextModulus
The modulus of the ciphertext used as input and output of the AP
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,
lut: &ManyLookupTableOwned,
) -> Vec<Ciphertext>
fn apply_many_lookup_table( &self, ct: &Ciphertext, lut: &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 generate_oblivious_pseudo_random(
&self,
seed: Seed,
random_bits_count: u64,
full_bits_count: u64,
) -> (LweCiphertextOwned<u64>, Degree)
fn generate_oblivious_pseudo_random( &self, seed: Seed, random_bits_count: u64, full_bits_count: u64, ) -> (LweCiphertextOwned<u64>, Degree)
Uniformly generates a random encrypted value in
[0, 2^random_bits_count[ Read moreSource§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§impl AtomicPatternMut for AtomicPatternServerKey
impl AtomicPatternMut for AtomicPatternServerKey
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 AtomicPatternServerKey
impl Clone for AtomicPatternServerKey
Source§fn clone(&self) -> AtomicPatternServerKey
fn clone(&self) -> AtomicPatternServerKey
Returns a duplicate of the value. Read more
1.0.0 · 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 AtomicPatternServerKey
impl Debug for AtomicPatternServerKey
Source§impl<'de> Deserialize<'de> for AtomicPatternServerKey
impl<'de> Deserialize<'de> for AtomicPatternServerKey
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 From<StandardAtomicPatternServerKey> for AtomicPatternServerKey
impl From<StandardAtomicPatternServerKey> for AtomicPatternServerKey
Source§fn from(value: StandardAtomicPatternServerKey) -> Self
fn from(value: StandardAtomicPatternServerKey) -> Self
Converts to this type from the input type.
Source§impl ParameterSetConformant for AtomicPatternServerKey
impl ParameterSetConformant for AtomicPatternServerKey
type ParameterSet = AtomicPatternParameters
fn is_conformant(&self, parameter_set: &Self::ParameterSet) -> bool
Source§impl PartialEq for AtomicPatternServerKey
impl PartialEq for AtomicPatternServerKey
Source§impl Serialize for AtomicPatternServerKey
impl Serialize for AtomicPatternServerKey
Source§impl Unversionize for AtomicPatternServerKeywhere
AtomicPatternServerKeyVersions: VersionsDispatch<Self>,
impl Unversionize for AtomicPatternServerKeywhere
AtomicPatternServerKeyVersions: 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 AtomicPatternServerKeywhere
AtomicPatternServerKeyVersions: VersionsDispatch<Self>,
impl UnversionizeVec for AtomicPatternServerKeywhere
AtomicPatternServerKeyVersions: VersionsDispatch<Self>,
fn unversionize_vec( versioned: Self::VersionedVec, ) -> Result<Vec<Self>, UnversionizeError>
Source§impl Version for AtomicPatternServerKey
impl Version for AtomicPatternServerKey
Source§impl Versionize for AtomicPatternServerKeywhere
AtomicPatternServerKeyVersions: VersionsDispatch<Self>,
impl Versionize for AtomicPatternServerKeywhere
AtomicPatternServerKeyVersions: VersionsDispatch<Self>,
Source§type Versioned<'vers> = <AtomicPatternServerKeyVersions as VersionsDispatch<AtomicPatternServerKey>>::Ref<'vers>
type Versioned<'vers> = <AtomicPatternServerKeyVersions as VersionsDispatch<AtomicPatternServerKey>>::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 AtomicPatternServerKeywhere
AtomicPatternServerKeyVersions: VersionsDispatch<Self>,
impl VersionizeOwned for AtomicPatternServerKeywhere
AtomicPatternServerKeyVersions: VersionsDispatch<Self>,
type VersionedOwned = <AtomicPatternServerKeyVersions as VersionsDispatch<AtomicPatternServerKey>>::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 AtomicPatternServerKeywhere
AtomicPatternServerKeyVersions: VersionsDispatch<Self>,
impl VersionizeSlice for AtomicPatternServerKeywhere
AtomicPatternServerKeyVersions: VersionsDispatch<Self>,
type VersionedSlice<'vers> = Vec<<AtomicPatternServerKey as Versionize>::Versioned<'vers>>
fn versionize_slice(slice: &[Self]) -> Self::VersionedSlice<'_>
Source§impl VersionizeVec for AtomicPatternServerKeywhere
AtomicPatternServerKeyVersions: VersionsDispatch<Self>,
impl VersionizeVec for AtomicPatternServerKeywhere
AtomicPatternServerKeyVersions: VersionsDispatch<Self>,
type VersionedVec = Vec<<AtomicPatternServerKey as VersionizeOwned>::VersionedOwned>
fn versionize_vec(vec: Vec<Self>) -> Self::VersionedVec
Source§impl VersionsDispatch<AtomicPatternServerKey> for AtomicPatternServerKeyVersionswhere
AtomicPatternServerKey: Version,
impl VersionsDispatch<AtomicPatternServerKey> for AtomicPatternServerKeyVersionswhere
AtomicPatternServerKey: Version,
impl StructuralPartialEq for AtomicPatternServerKey
Auto Trait Implementations§
impl Freeze for AtomicPatternServerKey
impl RefUnwindSafe for AtomicPatternServerKey
impl Send for AtomicPatternServerKey
impl Sync for AtomicPatternServerKey
impl Unpin for AtomicPatternServerKey
impl UnwindSafe for AtomicPatternServerKey
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,
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