Struct snarkvm_wasm::algorithms::Poseidon
pub struct Poseidon<E, const RATE: usize>where
E: Environment,{ /* private fields */ }Implementations§
§impl<E, const RATE: usize> Poseidon<E, RATE>where
E: Environment,
impl<E, const RATE: usize> Poseidon<E, RATE>where
E: Environment,
pub fn setup(domain: &str) -> Result<Poseidon<E, RATE>, Error>
pub fn setup(domain: &str) -> Result<Poseidon<E, RATE>, Error>
Initializes a new instance of Poseidon.
pub fn parameters(
&self
) -> &Arc<PoseidonParameters<<E as Environment>::Field, RATE, _>>
pub fn parameters(
&self
) -> &Arc<PoseidonParameters<<E as Environment>::Field, RATE, _>>
Returns the Poseidon parameters for hashing.
Trait Implementations§
§impl<E, const RATE: usize> Clone for Poseidon<E, RATE>where
E: Clone + Environment,
<E as Environment>::Field: Clone,
impl<E, const RATE: usize> Clone for Poseidon<E, RATE>where
E: Clone + Environment,
<E as Environment>::Field: Clone,
§impl<E, const RATE: usize> Hash for Poseidon<E, RATE>where
E: Environment,
impl<E, const RATE: usize> Hash for Poseidon<E, RATE>where
E: Environment,
§impl<E, const RATE: usize> HashMany for Poseidon<E, RATE>where
E: Environment,
impl<E, const RATE: usize> HashMany for Poseidon<E, RATE>where
E: Environment,
§fn hash_many(
&self,
input: &[<Poseidon<E, RATE> as HashMany>::Input],
num_outputs: u16
) -> Vec<<Poseidon<E, RATE> as HashMany>::Output, Global> ⓘ
fn hash_many(
&self,
input: &[<Poseidon<E, RATE> as HashMany>::Input],
num_outputs: u16
) -> Vec<<Poseidon<E, RATE> as HashMany>::Output, Global> ⓘ
Returns the cryptographic hash for a list of field elements as input, and returns the specified number of field elements as output.
type Input = Field<E>
type Output = Field<E>
§impl<E, const RATE: usize> HashToGroup for Poseidon<E, RATE>where
E: Environment,
impl<E, const RATE: usize> HashToGroup for Poseidon<E, RATE>where
E: Environment,
§impl<E, const RATE: usize> HashToScalar for Poseidon<E, RATE>where
E: Environment,
impl<E, const RATE: usize> HashToScalar for Poseidon<E, RATE>where
E: Environment,
§fn hash_to_scalar(
&self,
input: &[<Poseidon<E, RATE> as HashToScalar>::Input]
) -> Result<<Poseidon<E, RATE> as HashToScalar>::Output, Error>
fn hash_to_scalar(
&self,
input: &[<Poseidon<E, RATE> as HashToScalar>::Input]
) -> Result<<Poseidon<E, RATE> as HashToScalar>::Output, Error>
Returns a scalar from hashing the input. This method uses truncation (up to data bits) to project onto the scalar field.
type Input = Field<E>
type Output = Scalar<E>
§impl<E, const RATE: usize> LeafHash for Poseidon<E, RATE>where
E: Environment,
impl<E, const RATE: usize> LeafHash for Poseidon<E, RATE>where
E: Environment,
§impl<E, const RATE: usize> PRF for Poseidon<E, RATE>where
E: Environment,
impl<E, const RATE: usize> PRF for Poseidon<E, RATE>where
E: Environment,
§impl<E, const RATE: usize> PathHash for Poseidon<E, RATE>where
E: Environment,
impl<E, const RATE: usize> PathHash for Poseidon<E, RATE>where
E: Environment,
§fn hash_children(
&self,
left: &<Poseidon<E, RATE> as PathHash>::Hash,
right: &<Poseidon<E, RATE> as PathHash>::Hash
) -> Result<<Poseidon<E, RATE> as PathHash>::Hash, Error>
fn hash_children(
&self,
left: &<Poseidon<E, RATE> as PathHash>::Hash,
right: &<Poseidon<E, RATE> as PathHash>::Hash
) -> Result<<Poseidon<E, RATE> as PathHash>::Hash, Error>
Returns the hash of the given child nodes.
type Hash = Field<E>
§fn hash_empty(&self) -> Result<Self::Hash, Error>
fn hash_empty(&self) -> Result<Self::Hash, Error>
Returns the empty hash.