Trait snarkvm_algorithms::traits::encryption::EncryptionScheme [−][src]
pub trait EncryptionScheme: Sized + Clone + From<Self::Parameters> + SignatureScheme { type Parameters: Clone + Debug + Eq + ToBytes + FromBytes; type PrivateKey: Clone + Debug + Default + Eq + Hash + ToBytes + FromBytes + UniformRand; type PublicKey: Clone + Debug + Default + Eq + ToBytes + FromBytes; type Text: Clone + Debug + Default + Eq + ToBytes + FromBytes; type Randomness: Clone + Debug + Default + Eq + Hash + ToBytes + FromBytes + UniformRand; type BlindingExponent: Clone + Debug + Default + Eq + Hash + ToBytes; fn setup<R: Rng>(rng: &mut R) -> Self; fn generate_private_key<R: Rng>(&self, rng: &mut R) -> Self::PrivateKey; fn generate_public_key(
&self,
private_key: &Self::PrivateKey
) -> Result<Self::PublicKey, EncryptionError>; fn generate_randomness<R: Rng>(
&self,
public_key: &Self::PublicKey,
rng: &mut R
) -> Result<Self::Randomness, EncryptionError>; fn generate_blinding_exponents(
&self,
public_key: &Self::PublicKey,
randomness: &Self::Randomness,
message_length: usize
) -> Result<Vec<Self::BlindingExponent>, EncryptionError>; fn encrypt(
&self,
public_key: &Self::PublicKey,
randomness: &Self::Randomness,
message: &[Self::Text]
) -> Result<Vec<Self::Text>, EncryptionError>; fn decrypt(
&self,
private_key: &Self::PrivateKey,
ciphertext: &[Self::Text]
) -> Result<Vec<Self::Text>, EncryptionError>; fn parameters(&self) -> &Self::Parameters; fn private_key_size_in_bits() -> usize; }
Associated Types
type Parameters: Clone + Debug + Eq + ToBytes + FromBytes
[src]
type PrivateKey: Clone + Debug + Default + Eq + Hash + ToBytes + FromBytes + UniformRand
[src]
type PublicKey: Clone + Debug + Default + Eq + ToBytes + FromBytes
[src]
type Text: Clone + Debug + Default + Eq + ToBytes + FromBytes
[src]
type Randomness: Clone + Debug + Default + Eq + Hash + ToBytes + FromBytes + UniformRand
[src]
type BlindingExponent: Clone + Debug + Default + Eq + Hash + ToBytes
[src]
Required methods
fn setup<R: Rng>(rng: &mut R) -> Self
[src]
fn generate_private_key<R: Rng>(&self, rng: &mut R) -> Self::PrivateKey
[src]
fn generate_public_key(
&self,
private_key: &Self::PrivateKey
) -> Result<Self::PublicKey, EncryptionError>
[src]
&self,
private_key: &Self::PrivateKey
) -> Result<Self::PublicKey, EncryptionError>
fn generate_randomness<R: Rng>(
&self,
public_key: &Self::PublicKey,
rng: &mut R
) -> Result<Self::Randomness, EncryptionError>
[src]
&self,
public_key: &Self::PublicKey,
rng: &mut R
) -> Result<Self::Randomness, EncryptionError>
fn generate_blinding_exponents(
&self,
public_key: &Self::PublicKey,
randomness: &Self::Randomness,
message_length: usize
) -> Result<Vec<Self::BlindingExponent>, EncryptionError>
[src]
&self,
public_key: &Self::PublicKey,
randomness: &Self::Randomness,
message_length: usize
) -> Result<Vec<Self::BlindingExponent>, EncryptionError>
fn encrypt(
&self,
public_key: &Self::PublicKey,
randomness: &Self::Randomness,
message: &[Self::Text]
) -> Result<Vec<Self::Text>, EncryptionError>
[src]
&self,
public_key: &Self::PublicKey,
randomness: &Self::Randomness,
message: &[Self::Text]
) -> Result<Vec<Self::Text>, EncryptionError>
fn decrypt(
&self,
private_key: &Self::PrivateKey,
ciphertext: &[Self::Text]
) -> Result<Vec<Self::Text>, EncryptionError>
[src]
&self,
private_key: &Self::PrivateKey,
ciphertext: &[Self::Text]
) -> Result<Vec<Self::Text>, EncryptionError>
fn parameters(&self) -> &Self::Parameters
[src]
fn private_key_size_in_bits() -> usize
[src]
Implementors
impl<G: Group + ProjectiveCurve, SG: Group + CanonicalSerialize + CanonicalDeserialize, D: Digest + Send + Sync> EncryptionScheme for GroupEncryption<G, SG, D>
[src]
impl<G: Group + ProjectiveCurve, SG: Group + CanonicalSerialize + CanonicalDeserialize, D: Digest + Send + Sync> EncryptionScheme for GroupEncryption<G, SG, D>
[src]type BlindingExponent = <G as Group>::ScalarField
type Parameters = GroupEncryptionParameters<G>
type PrivateKey = <G as Group>::ScalarField
type PublicKey = GroupEncryptionPublicKey<G>
type Randomness = <G as Group>::ScalarField
type Text = G
fn setup<R: Rng>(rng: &mut R) -> Self
[src]
fn generate_private_key<R: Rng>(&self, rng: &mut R) -> Self::PrivateKey
[src]
fn generate_public_key(
&self,
private_key: &Self::PrivateKey
) -> Result<Self::PublicKey, EncryptionError>
[src]
&self,
private_key: &Self::PrivateKey
) -> Result<Self::PublicKey, EncryptionError>
fn generate_randomness<R: Rng>(
&self,
public_key: &Self::PublicKey,
rng: &mut R
) -> Result<Self::Randomness, EncryptionError>
[src]
&self,
public_key: &Self::PublicKey,
rng: &mut R
) -> Result<Self::Randomness, EncryptionError>
fn generate_blinding_exponents(
&self,
public_key: &Self::PublicKey,
randomness: &Self::Randomness,
message_length: usize
) -> Result<Vec<Self::BlindingExponent>, EncryptionError>
[src]
&self,
public_key: &Self::PublicKey,
randomness: &Self::Randomness,
message_length: usize
) -> Result<Vec<Self::BlindingExponent>, EncryptionError>
fn encrypt(
&self,
public_key: &Self::PublicKey,
randomness: &Self::Randomness,
message: &[Self::Text]
) -> Result<Vec<Self::Text>, EncryptionError>
[src]
&self,
public_key: &Self::PublicKey,
randomness: &Self::Randomness,
message: &[Self::Text]
) -> Result<Vec<Self::Text>, EncryptionError>
fn decrypt(
&self,
private_key: &Self::PrivateKey,
ciphertext: &[Self::Text]
) -> Result<Vec<Self::Text>, EncryptionError>
[src]
&self,
private_key: &Self::PrivateKey,
ciphertext: &[Self::Text]
) -> Result<Vec<Self::Text>, EncryptionError>