Struct ocelot::edabits::FComProver
source · pub struct FComProver<FE: FiniteField> { /* private fields */ }
Expand description
F_com protocol for the Prover
Implementations§
source§impl<FE: FiniteField> FComProver<FE>
impl<FE: FiniteField> FComProver<FE>
sourcepub fn init<C: AbstractChannel, RNG: CryptoRng + Rng>(
channel: &mut C,
rng: &mut RNG,
lpn_setup: LpnParams,
lpn_extend: LpnParams
) -> Result<Self, Error>
pub fn init<C: AbstractChannel, RNG: CryptoRng + Rng>( channel: &mut C, rng: &mut RNG, lpn_setup: LpnParams, lpn_extend: LpnParams ) -> Result<Self, Error>
Initialize the functionality.
sourcepub fn duplicate<C: AbstractChannel, RNG: CryptoRng + Rng>(
&mut self,
channel: &mut C,
rng: &mut RNG
) -> Result<Self, Error>
pub fn duplicate<C: AbstractChannel, RNG: CryptoRng + Rng>( &mut self, channel: &mut C, rng: &mut RNG ) -> Result<Self, Error>
Duplicate the functionality.
sourcepub fn random<C: AbstractChannel, RNG: CryptoRng + Rng>(
&mut self,
channel: &mut C,
rng: &mut RNG
) -> Result<MacProver<FE>, Error>
pub fn random<C: AbstractChannel, RNG: CryptoRng + Rng>( &mut self, channel: &mut C, rng: &mut RNG ) -> Result<MacProver<FE>, Error>
Returns a random mac.
sourcepub fn input<C: AbstractChannel, RNG: CryptoRng + Rng>(
&mut self,
channel: &mut C,
rng: &mut RNG,
x: &[FE::PrimeField]
) -> Result<Vec<FE>, Error>
pub fn input<C: AbstractChannel, RNG: CryptoRng + Rng>( &mut self, channel: &mut C, rng: &mut RNG, x: &[FE::PrimeField] ) -> Result<Vec<FE>, Error>
Input a slice of values and returns a vector of its macs.
sourcepub fn input_low_level<C: AbstractChannel, RNG: CryptoRng + Rng>(
&mut self,
channel: &mut C,
rng: &mut RNG,
x: &[FE::PrimeField],
out: &mut Vec<FE>
) -> Result<(), Error>
pub fn input_low_level<C: AbstractChannel, RNG: CryptoRng + Rng>( &mut self, channel: &mut C, rng: &mut RNG, x: &[FE::PrimeField], out: &mut Vec<FE> ) -> Result<(), Error>
lower level implementation of input
with pre-defined out vector.
sourcepub fn input1<C: AbstractChannel, RNG: CryptoRng + Rng>(
&mut self,
channel: &mut C,
rng: &mut RNG,
x: FE::PrimeField
) -> Result<FE, Error>
pub fn input1<C: AbstractChannel, RNG: CryptoRng + Rng>( &mut self, channel: &mut C, rng: &mut RNG, x: FE::PrimeField ) -> Result<FE, Error>
Input a single value and returns its mac.
sourcepub fn affine_add_cst(
&self,
cst: FE::PrimeField,
x: MacProver<FE>
) -> MacProver<FE>
pub fn affine_add_cst( &self, cst: FE::PrimeField, x: MacProver<FE> ) -> MacProver<FE>
Add a constant to a Mac.
sourcepub fn affine_mult_cst(
&self,
cst: FE::PrimeField,
x: MacProver<FE>
) -> MacProver<FE>
pub fn affine_mult_cst( &self, cst: FE::PrimeField, x: MacProver<FE> ) -> MacProver<FE>
Multiply by a constant a Mac.
sourcepub fn sub(&self, a: MacProver<FE>, b: MacProver<FE>) -> MacProver<FE>
pub fn sub(&self, a: MacProver<FE>, b: MacProver<FE>) -> MacProver<FE>
Subtraction of two Macs.
sourcepub fn check_zero<C: AbstractChannel>(
&mut self,
channel: &mut C,
x_mac_batch: &[MacProver<FE>]
) -> Result<(), Error>
pub fn check_zero<C: AbstractChannel>( &mut self, channel: &mut C, x_mac_batch: &[MacProver<FE>] ) -> Result<(), Error>
Check that a batch of Macs are zero.
sourcepub fn open<C: AbstractChannel>(
&mut self,
channel: &mut C,
batch: &[MacProver<FE>]
) -> Result<(), Error>
pub fn open<C: AbstractChannel>( &mut self, channel: &mut C, batch: &[MacProver<FE>] ) -> Result<(), Error>
Open Macs.
Auto Trait Implementations§
impl<FE> Freeze for FComProver<FE>where
<<<<FE as FiniteField>::PrimeField as IsSubFieldOf<FE>>::DegreeModulo as AnyArrayLength>::OutputArrayLength<FE> as ArrayLength<FE>>::ArrayType: Freeze,
impl<FE> RefUnwindSafe for FComProver<FE>where
FE: RefUnwindSafe,
<<<<FE as FiniteField>::PrimeField as IsSubFieldOf<FE>>::DegreeModulo as AnyArrayLength>::OutputArrayLength<FE> as ArrayLength<FE>>::ArrayType: RefUnwindSafe,
<FE as FiniteField>::PrimeField: RefUnwindSafe,
impl<FE> Send for FComProver<FE>
impl<FE> Sync for FComProver<FE>
impl<FE> Unpin for FComProver<FE>
impl<FE> UnwindSafe for FComProver<FE>where
FE: UnwindSafe,
<<<<FE as FiniteField>::PrimeField as IsSubFieldOf<FE>>::DegreeModulo as AnyArrayLength>::OutputArrayLength<FE> as ArrayLength<FE>>::ArrayType: UnwindSafe,
<FE as FiniteField>::PrimeField: UnwindSafe,
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