Trait snarkvm_marlin::fiat_shamir::traits::AlgebraicSpongeVar [−][src]
pub trait AlgebraicSpongeVar<BaseField: PrimeField, PS: AlgebraicSponge<BaseField>>: Clone { fn new<CS: ConstraintSystem<BaseField>>(cs: CS) -> Self; fn constant<CS: ConstraintSystem<BaseField>>(cs: CS, ps: &PS) -> Self; fn absorb<CS: ConstraintSystem<BaseField>>(
&mut self,
cs: CS,
elems: &[FpGadget<BaseField>]
) -> Result<(), SynthesisError>; fn squeeze<CS: ConstraintSystem<BaseField>>(
&mut self,
cs: CS,
num: usize
) -> Result<Vec<FpGadget<BaseField>>, SynthesisError>; }
Expand description
Trait for an algebraic sponge such as Poseidon.
Required methods
fn new<CS: ConstraintSystem<BaseField>>(cs: CS) -> Self
[src]
fn new<CS: ConstraintSystem<BaseField>>(cs: CS) -> Self
[src]Create the new sponge.
fn constant<CS: ConstraintSystem<BaseField>>(cs: CS, ps: &PS) -> Self
[src]
fn constant<CS: ConstraintSystem<BaseField>>(cs: CS, ps: &PS) -> Self
[src]Instantiate from a plaintext sponge.
fn absorb<CS: ConstraintSystem<BaseField>>(
&mut self,
cs: CS,
elems: &[FpGadget<BaseField>]
) -> Result<(), SynthesisError>
[src]
fn absorb<CS: ConstraintSystem<BaseField>>(
&mut self,
cs: CS,
elems: &[FpGadget<BaseField>]
) -> Result<(), SynthesisError>
[src]Take in field elements.
fn squeeze<CS: ConstraintSystem<BaseField>>(
&mut self,
cs: CS,
num: usize
) -> Result<Vec<FpGadget<BaseField>>, SynthesisError>
[src]
fn squeeze<CS: ConstraintSystem<BaseField>>(
&mut self,
cs: CS,
num: usize
) -> Result<Vec<FpGadget<BaseField>>, SynthesisError>
[src]Output field elements.
Implementors
fn absorb<CS: ConstraintSystem<F>>(
&mut self,
cs: CS,
elems: &[FpGadget<F>]
) -> Result<(), SynthesisError>
[src]fn squeeze<CS: ConstraintSystem<F>>(
&mut self,
cs: CS,
num: usize
) -> Result<Vec<FpGadget<F>>, SynthesisError>
[src]