[][src]Trait r1cs::BlockCipher

pub trait BlockCipher<F: Field> {
    fn encrypt(
        &self,
        builder: &mut GadgetBuilder<F>,
        key: &Expression<F>,
        input: &Expression<F>
    ) -> Expression<F>;
fn decrypt(
        &self,
        builder: &mut GadgetBuilder<F>,
        key: &Expression<F>,
        output: &Expression<F>
    ) -> Expression<F>; fn encrypt_evaluate(
        &self,
        key: &Element<F>,
        input: &Element<F>
    ) -> Element<F> { ... }
fn decrypt_evaluate(
        &self,
        key: &Element<F>,
        output: &Element<F>
    ) -> Element<F> { ... } }

A symmetric-key block cipher.

Required methods

fn encrypt(
    &self,
    builder: &mut GadgetBuilder<F>,
    key: &Expression<F>,
    input: &Expression<F>
) -> Expression<F>

Encrypt the given input using the given key.

fn decrypt(
    &self,
    builder: &mut GadgetBuilder<F>,
    key: &Expression<F>,
    output: &Expression<F>
) -> Expression<F>

Decrypt the given output using the given key.

Loading content...

Provided methods

fn encrypt_evaluate(&self, key: &Element<F>, input: &Element<F>) -> Element<F>

Like encrypt, but actually evaluates the encryption function rather than just adding it to a GadgetBuilder.

fn decrypt_evaluate(&self, key: &Element<F>, output: &Element<F>) -> Element<F>

Like decrypt, but actually evaluates the decryption function rather than just adding it to a GadgetBuilder.

Loading content...

Implementors

impl<F: Field> BlockCipher<F> for MiMCBlockCipher<F>[src]

Loading content...