pub struct BHPHasher<E: Environment, const NUM_WINDOWS: u8, const WINDOW_SIZE: u8> { /* private fields */ }
Expand description
BHP is a collision-resistant hash function that takes a variable-length input. The BHP hasher is used to process one internal iteration of the BHP hash function.
Implementations§
Trait Implementations§
Source§impl<E: Clone + Environment, const NUM_WINDOWS: u8, const WINDOW_SIZE: u8> Clone for BHPHasher<E, NUM_WINDOWS, WINDOW_SIZE>
impl<E: Clone + Environment, const NUM_WINDOWS: u8, const WINDOW_SIZE: u8> Clone for BHPHasher<E, NUM_WINDOWS, WINDOW_SIZE>
Source§impl<E: Debug + Environment, const NUM_WINDOWS: u8, const WINDOW_SIZE: u8> Debug for BHPHasher<E, NUM_WINDOWS, WINDOW_SIZE>
impl<E: Debug + Environment, const NUM_WINDOWS: u8, const WINDOW_SIZE: u8> Debug for BHPHasher<E, NUM_WINDOWS, WINDOW_SIZE>
Source§impl<E: Environment, const NUM_WINDOWS: u8, const WINDOW_SIZE: u8> HashUncompressed for BHPHasher<E, NUM_WINDOWS, WINDOW_SIZE>
impl<E: Environment, const NUM_WINDOWS: u8, const WINDOW_SIZE: u8> HashUncompressed for BHPHasher<E, NUM_WINDOWS, WINDOW_SIZE>
Source§fn hash_uncompressed(&self, input: &[Self::Input]) -> Result<Self::Output>
fn hash_uncompressed(&self, input: &[Self::Input]) -> Result<Self::Output>
Returns the BHP hash of the given input as an affine group element.
This uncompressed variant of the BHP hash function is provided to support the BHP commitment scheme, as it is typically not used by applications.
type Input = bool
type Output = Group<E>
Source§impl<E: PartialEq + Environment, const NUM_WINDOWS: u8, const WINDOW_SIZE: u8> PartialEq for BHPHasher<E, NUM_WINDOWS, WINDOW_SIZE>
impl<E: PartialEq + Environment, const NUM_WINDOWS: u8, const WINDOW_SIZE: u8> PartialEq for BHPHasher<E, NUM_WINDOWS, WINDOW_SIZE>
impl<E: Environment, const NUM_WINDOWS: u8, const WINDOW_SIZE: u8> StructuralPartialEq for BHPHasher<E, NUM_WINDOWS, WINDOW_SIZE>
Auto Trait Implementations§
impl<E, const NUM_WINDOWS: u8, const WINDOW_SIZE: u8> Freeze for BHPHasher<E, NUM_WINDOWS, WINDOW_SIZE>
impl<E, const NUM_WINDOWS: u8, const WINDOW_SIZE: u8> RefUnwindSafe for BHPHasher<E, NUM_WINDOWS, WINDOW_SIZE>
impl<E, const NUM_WINDOWS: u8, const WINDOW_SIZE: u8> Send for BHPHasher<E, NUM_WINDOWS, WINDOW_SIZE>
impl<E, const NUM_WINDOWS: u8, const WINDOW_SIZE: u8> Sync for BHPHasher<E, NUM_WINDOWS, WINDOW_SIZE>
impl<E, const NUM_WINDOWS: u8, const WINDOW_SIZE: u8> Unpin for BHPHasher<E, NUM_WINDOWS, WINDOW_SIZE>
impl<E, const NUM_WINDOWS: u8, const WINDOW_SIZE: u8> UnwindSafe for BHPHasher<E, NUM_WINDOWS, WINDOW_SIZE>
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
Converts
self
into a Left
variant of Either<Self, Self>
if into_left
is true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
Converts
self
into a Left
variant of Either<Self, Self>
if into_left(&self)
returns true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read more