pub struct PrecomputedCurveElGamalPK { /* private fields */ }
Expand description
Public key with several precomputations to speed-up encryption
Trait Implementations
sourceimpl Associable<PrecomputedCurveElGamalPK> for CurveElGamalCiphertext
impl Associable<PrecomputedCurveElGamalPK> for CurveElGamalCiphertext
sourcefn associate(self, public_key: &PK) -> AssociatedCiphertext<'_, Self, PK>
fn associate(self, public_key: &PK) -> AssociatedCiphertext<'_, Self, PK>
‘Enriches’ a ciphertext by associating it with a corresponding public key. This allows to overlead operators for homomorphic operations.
sourceimpl Debug for PrecomputedCurveElGamalPK
impl Debug for PrecomputedCurveElGamalPK
sourceimpl DecryptionKey<PrecomputedCurveElGamalPK> for CurveElGamalSK
impl DecryptionKey<PrecomputedCurveElGamalPK> for CurveElGamalSK
sourcefn decrypt_raw(
&self,
_public_key: &PrecomputedCurveElGamalPK,
ciphertext: &CurveElGamalCiphertext
) -> RistrettoPoint
fn decrypt_raw(
&self,
_public_key: &PrecomputedCurveElGamalPK,
ciphertext: &CurveElGamalCiphertext
) -> RistrettoPoint
Decrypt the ciphertext using the secret key and its related public key.
sourcefn decrypt(
&self,
ciphertext: &AssociatedCiphertext<'pk, <PK as EncryptionKey>::Ciphertext, PK>
) -> <PK as EncryptionKey>::Plaintext
fn decrypt(
&self,
ciphertext: &AssociatedCiphertext<'pk, <PK as EncryptionKey>::Ciphertext, PK>
) -> <PK as EncryptionKey>::Plaintext
Decrypt the associated ciphertext using the secret key.
sourceimpl EncryptionKey for PrecomputedCurveElGamalPK
impl EncryptionKey for PrecomputedCurveElGamalPK
type Input = Scalar
type Input = Scalar
Input is the type used to multiply additive ciphertexts or exponentiate multiplicative ciphertexts.
type Plaintext = RistrettoPoint
type Plaintext = RistrettoPoint
The type of the plaintext to be encrypted.
type Ciphertext = CurveElGamalCiphertext
type Ciphertext = CurveElGamalCiphertext
The type of an encrypted plaintext, i.e. a ciphertext.
sourcefn encrypt_raw<R>(
&self,
plaintext: &RistrettoPoint,
rng: &mut GeneralRng<R>
) -> CurveElGamalCiphertext where
R: SecureRng,
fn encrypt_raw<R>(
&self,
plaintext: &RistrettoPoint,
rng: &mut GeneralRng<R>
) -> CurveElGamalCiphertext where
R: SecureRng,
Encrypt the plaintext using the public key and a cryptographic RNG.
sourcefn encrypt<R>(
&'pk self,
plaintext: &Self::Plaintext,
rng: &mut GeneralRng<R>
) -> AssociatedCiphertext<'pk, Self::Ciphertext, Self> where
R: SecureRng,
fn encrypt<R>(
&'pk self,
plaintext: &Self::Plaintext,
rng: &mut GeneralRng<R>
) -> AssociatedCiphertext<'pk, Self::Ciphertext, Self> where
R: SecureRng,
Encrypt the plaintext using the public key and a cryptographic RNG and immediately associate it with the public key.
sourceimpl HomomorphicAddition for PrecomputedCurveElGamalPK
impl HomomorphicAddition for PrecomputedCurveElGamalPK
sourcefn add(
&self,
ciphertext_a: <PrecomputedCurveElGamalPK as EncryptionKey>::Ciphertext,
ciphertext_b: <PrecomputedCurveElGamalPK as EncryptionKey>::Ciphertext
) -> <PrecomputedCurveElGamalPK as EncryptionKey>::Ciphertext
fn add(
&self,
ciphertext_a: <PrecomputedCurveElGamalPK as EncryptionKey>::Ciphertext,
ciphertext_b: <PrecomputedCurveElGamalPK as EncryptionKey>::Ciphertext
) -> <PrecomputedCurveElGamalPK as EncryptionKey>::Ciphertext
Combines two ciphertexts so that their decrypted value reflects some addition operation
sourcefn mul(
&self,
ciphertext: <PrecomputedCurveElGamalPK as EncryptionKey>::Ciphertext,
input: <PrecomputedCurveElGamalPK as EncryptionKey>::Input
) -> <PrecomputedCurveElGamalPK as EncryptionKey>::Ciphertext
fn mul(
&self,
ciphertext: <PrecomputedCurveElGamalPK as EncryptionKey>::Ciphertext,
input: <PrecomputedCurveElGamalPK as EncryptionKey>::Input
) -> <PrecomputedCurveElGamalPK as EncryptionKey>::Ciphertext
Applies some operation on a ciphertext so that the decrypted value reflects some multiplication with input
Auto Trait Implementations
impl RefUnwindSafe for PrecomputedCurveElGamalPK
impl Send for PrecomputedCurveElGamalPK
impl Sync for PrecomputedCurveElGamalPK
impl Unpin for PrecomputedCurveElGamalPK
impl UnwindSafe for PrecomputedCurveElGamalPK
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
sourceimpl<T> CheckedAs for T
impl<T> CheckedAs for T
sourcefn checked_as<Dst>(self) -> Option<Dst> where
T: CheckedCast<Dst>,
fn checked_as<Dst>(self) -> Option<Dst> where
T: CheckedCast<Dst>,
Casts the value.
sourceimpl<Src, Dst> CheckedCastFrom<Src> for Dst where
Src: CheckedCast<Dst>,
impl<Src, Dst> CheckedCastFrom<Src> for Dst where
Src: CheckedCast<Dst>,
sourcefn checked_cast_from(src: Src) -> Option<Dst>
fn checked_cast_from(src: Src) -> Option<Dst>
Casts the value.
sourceimpl<T> OverflowingAs for T
impl<T> OverflowingAs for T
sourcefn overflowing_as<Dst>(self) -> (Dst, bool) where
T: OverflowingCast<Dst>,
fn overflowing_as<Dst>(self) -> (Dst, bool) where
T: OverflowingCast<Dst>,
Casts the value.
sourceimpl<Src, Dst> OverflowingCastFrom<Src> for Dst where
Src: OverflowingCast<Dst>,
impl<Src, Dst> OverflowingCastFrom<Src> for Dst where
Src: OverflowingCast<Dst>,
sourcefn overflowing_cast_from(src: Src) -> (Dst, bool)
fn overflowing_cast_from(src: Src) -> (Dst, bool)
OverflowingCasts the value.
sourceimpl<T> SaturatingAs for T
impl<T> SaturatingAs for T
sourcefn saturating_as<Dst>(self) -> Dst where
T: SaturatingCast<Dst>,
fn saturating_as<Dst>(self) -> Dst where
T: SaturatingCast<Dst>,
Casts the value.
sourceimpl<Src, Dst> SaturatingCastFrom<Src> for Dst where
Src: SaturatingCast<Dst>,
impl<Src, Dst> SaturatingCastFrom<Src> for Dst where
Src: SaturatingCast<Dst>,
sourcefn saturating_cast_from(src: Src) -> Dst
fn saturating_cast_from(src: Src) -> Dst
Casts the value.
sourceimpl<T> UnwrappedAs for T
impl<T> UnwrappedAs for T
sourcefn unwrapped_as<Dst>(self) -> Dst where
T: UnwrappedCast<Dst>,
fn unwrapped_as<Dst>(self) -> Dst where
T: UnwrappedCast<Dst>,
Casts the value.
sourceimpl<Src, Dst> UnwrappedCastFrom<Src> for Dst where
Src: UnwrappedCast<Dst>,
impl<Src, Dst> UnwrappedCastFrom<Src> for Dst where
Src: UnwrappedCast<Dst>,
sourcefn unwrapped_cast_from(src: Src) -> Dst
fn unwrapped_cast_from(src: Src) -> Dst
UnwrappedCasts the value.
sourceimpl<T> WrappingAs for T
impl<T> WrappingAs for T
sourcefn wrapping_as<Dst>(self) -> Dst where
T: WrappingCast<Dst>,
fn wrapping_as<Dst>(self) -> Dst where
T: WrappingCast<Dst>,
Casts the value.
sourceimpl<Src, Dst> WrappingCastFrom<Src> for Dst where
Src: WrappingCast<Dst>,
impl<Src, Dst> WrappingCastFrom<Src> for Dst where
Src: WrappingCast<Dst>,
sourcefn wrapping_cast_from(src: Src) -> Dst
fn wrapping_cast_from(src: Src) -> Dst
WrappingCasts the value.