Struct ocelot::edabits::FComVerifier
source · pub struct FComVerifier<FE: FiniteField> { /* private fields */ }
Expand description
F_com protocol for the Verififier
Implementations§
source§impl<FE: FiniteField> FComVerifier<FE>
impl<FE: FiniteField> FComVerifier<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<MacVerifier<FE>, Error>
pub fn random<C: AbstractChannel, RNG: CryptoRng + Rng>( &mut self, channel: &mut C, rng: &mut RNG ) -> Result<MacVerifier<FE>, Error>
Returns a random mac.
sourcepub fn input<C: AbstractChannel, RNG: CryptoRng + Rng>(
&mut self,
channel: &mut C,
rng: &mut RNG,
num: usize
) -> Result<Vec<MacVerifier<FE>>, Error>
pub fn input<C: AbstractChannel, RNG: CryptoRng + Rng>( &mut self, channel: &mut C, rng: &mut RNG, num: usize ) -> Result<Vec<MacVerifier<FE>>, Error>
Input a number of values and returns the associated macs.
sourcepub fn input_low_level<C: AbstractChannel, RNG: CryptoRng + Rng>(
&mut self,
channel: &mut C,
rng: &mut RNG,
num: usize,
out: &mut Vec<MacVerifier<FE>>
) -> Result<(), Error>
pub fn input_low_level<C: AbstractChannel, RNG: CryptoRng + Rng>( &mut self, channel: &mut C, rng: &mut RNG, num: usize, out: &mut Vec<MacVerifier<FE>> ) -> Result<(), Error>
lower level implementation of input
for predefined out vector.
sourcepub fn input1<C: AbstractChannel, RNG: CryptoRng + Rng>(
&mut self,
channel: &mut C,
rng: &mut RNG
) -> Result<MacVerifier<FE>, Error>
pub fn input1<C: AbstractChannel, RNG: CryptoRng + Rng>( &mut self, channel: &mut C, rng: &mut RNG ) -> Result<MacVerifier<FE>, Error>
Input a single value and returns its associated Mac.
sourcepub fn affine_add_cst(
&self,
cst: FE::PrimeField,
x_mac: MacVerifier<FE>
) -> MacVerifier<FE>
pub fn affine_add_cst( &self, cst: FE::PrimeField, x_mac: MacVerifier<FE> ) -> MacVerifier<FE>
Add a constant to a Mac.
sourcepub fn affine_mult_cst(
&self,
cst: FE::PrimeField,
x_mac: MacVerifier<FE>
) -> MacVerifier<FE>
pub fn affine_mult_cst( &self, cst: FE::PrimeField, x_mac: MacVerifier<FE> ) -> MacVerifier<FE>
Multiply a Mac by a constant.
sourcepub fn add(&self, a: MacVerifier<FE>, b: MacVerifier<FE>) -> MacVerifier<FE>
pub fn add(&self, a: MacVerifier<FE>, b: MacVerifier<FE>) -> MacVerifier<FE>
Add two Macs.
sourcepub fn neg(&self, a: MacVerifier<FE>) -> MacVerifier<FE>
pub fn neg(&self, a: MacVerifier<FE>) -> MacVerifier<FE>
Negative of a Mac.
sourcepub fn sub(&self, a: MacVerifier<FE>, b: MacVerifier<FE>) -> MacVerifier<FE>
pub fn sub(&self, a: MacVerifier<FE>, b: MacVerifier<FE>) -> MacVerifier<FE>
Subtraction of two Macs.
sourcepub fn check_zero<C: AbstractChannel, RNG: CryptoRng + Rng>(
&mut self,
channel: &mut C,
rng: &mut RNG,
key_batch: &[MacVerifier<FE>]
) -> Result<(), Error>
pub fn check_zero<C: AbstractChannel, RNG: CryptoRng + Rng>( &mut self, channel: &mut C, rng: &mut RNG, key_batch: &[MacVerifier<FE>] ) -> Result<(), Error>
Check that a batch of Macs are zero.
sourcepub fn open<C: AbstractChannel>(
&mut self,
channel: &mut C,
keys: &[MacVerifier<FE>],
out: &mut Vec<FE::PrimeField>
) -> Result<(), Error>
pub fn open<C: AbstractChannel>( &mut self, channel: &mut C, keys: &[MacVerifier<FE>], out: &mut Vec<FE::PrimeField> ) -> Result<(), Error>
Open Macs.
sourcepub fn quicksilver_check_multiply<C: AbstractChannel, RNG: CryptoRng + Rng>(
&mut self,
channel: &mut C,
rng: &mut RNG,
triples: &[(MacVerifier<FE>, MacVerifier<FE>, MacVerifier<FE>)]
) -> Result<(), Error>
pub fn quicksilver_check_multiply<C: AbstractChannel, RNG: CryptoRng + Rng>( &mut self, channel: &mut C, rng: &mut RNG, triples: &[(MacVerifier<FE>, MacVerifier<FE>, MacVerifier<FE>)] ) -> Result<(), Error>
Quicksilver multiplication check.
sourcepub fn wolverine_check_multiply<C: AbstractChannel, RNG: CryptoRng + Rng>(
&mut self,
channel: &mut C,
rng: &mut RNG,
triples: &[(MacVerifier<FE>, MacVerifier<FE>, MacVerifier<FE>)],
aux: &[(MacVerifier<FE>, MacVerifier<FE>, MacVerifier<FE>)]
) -> Result<(), Error>
pub fn wolverine_check_multiply<C: AbstractChannel, RNG: CryptoRng + Rng>( &mut self, channel: &mut C, rng: &mut RNG, triples: &[(MacVerifier<FE>, MacVerifier<FE>, MacVerifier<FE>)], aux: &[(MacVerifier<FE>, MacVerifier<FE>, MacVerifier<FE>)] ) -> Result<(), Error>
Wolverine multiplication check
Auto Trait Implementations§
impl<FE> Freeze for FComVerifier<FE>
impl<FE> RefUnwindSafe for FComVerifier<FE>where
FE: RefUnwindSafe,
<<<<FE as FiniteField>::PrimeField as IsSubFieldOf<FE>>::DegreeModulo as AnyArrayLength>::OutputArrayLength<FE> as ArrayLength<FE>>::ArrayType: RefUnwindSafe,
impl<FE> Send for FComVerifier<FE>
impl<FE> Sync for FComVerifier<FE>
impl<FE> Unpin for FComVerifier<FE>
impl<FE> UnwindSafe for FComVerifier<FE>where
FE: UnwindSafe,
<<<<FE as FiniteField>::PrimeField as IsSubFieldOf<FE>>::DegreeModulo as AnyArrayLength>::OutputArrayLength<FE> as ArrayLength<FE>>::ArrayType: 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