Struct ocelot::oprf::kkrt::Sender

source ·
pub struct Sender<OT: OtReceiver + SemiHonest> { /* private fields */ }
Expand description

KKRT oblivious PRF sender.

Implementations§

source§

impl<OT: OtReceiver<Msg = Block> + SemiHonest> Sender<OT>

source

pub fn encode( &self, input: <Sender<OT> as ObliviousPrf>::Input, output: &mut <Sender<OT> as ObliviousPrf>::Output )

Encode input into output. This is not the same as the compute method as it does not integrate the OPRF seed. However, it is useful for optimization purposes (e.g., when the same seed is used on multiple encoded inputs).

Trait Implementations§

source§

impl<OT: OtReceiver<Msg = Block> + SemiHonest> ObliviousPrf for Sender<OT>

§

type Seed = Block512

PRF seed.
§

type Input = Block

PRF input.
§

type Output = Block512

PRF output.
source§

impl<OT: OtReceiver<Msg = Block> + SemiHonest> Sender for Sender<OT>

source§

fn init<C, RNG>(channel: &mut C, rng: &mut RNG) -> Result<Self, Error>
where C: AbstractChannel, RNG: CryptoRng + Rng,

Runs any one-time initialization.
source§

fn send<C, RNG>( &mut self, channel: &mut C, m: usize, _: &mut RNG ) -> Result<Vec<Self::Seed>, Error>
where C: AbstractChannel, RNG: CryptoRng + Rng,

Runs m OPRF instances as the sender, returning the OPRF seeds.
source§

fn compute(&self, seed: Self::Seed, input: Self::Input) -> Self::Output

Computes the oblivious PRF on seed seed and input input.
source§

impl<OT: OtReceiver<Msg = Block> + SemiHonest> SemiHonest for Sender<OT>

Auto Trait Implementations§

§

impl<OT> Freeze for Sender<OT>

§

impl<OT> RefUnwindSafe for Sender<OT>
where OT: RefUnwindSafe,

§

impl<OT> Send for Sender<OT>
where OT: Send,

§

impl<OT> Sync for Sender<OT>
where OT: Sync,

§

impl<OT> Unpin for Sender<OT>
where OT: Unpin,

§

impl<OT> UnwindSafe for Sender<OT>
where OT: UnwindSafe,

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for T
where U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> Same for T

§

type Output = T

Should always be Self
source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

§

fn vzip(self) -> V