Barretenberg
The ZK-SNARK library at the core of Aztec
Loading...
Searching...
No Matches
StdlibPoseidon2< Builder > Class Template Reference
Inheritance diagram for StdlibPoseidon2< Builder >:

Static Public Member Functions

static field_ct w_hex (Builder &builder, const char *hex)
 
static field_ct w_u64 (Builder &builder, uint64_t v)
 
static std::size_t gate_count (std::size_t N)
 
static void test_hash (size_t num_inputs)
 Call poseidon2 on a vector of inputs.
 
static void test_hash_repeated_pairs (size_t num_inputs)
 Call poseidon2 on two inputs repeatedly.
 
static void test_hash_zeros (size_t num_inputs)
 
static void test_hash_constants ()
 
static void test_hash_aliased_points ()
 Test that bn254 point coordinates with alias values produce different hashes.
 
static void test_padding_collisions ()
 
static void test_against_independent_values ()
 

Private Types

using curve = stdlib::bn254< Builder >
 
using byte_array_ct = stdlib::byte_array< Builder >
 
using field_ct = stdlib::field_t< Builder >
 
using witness_ct = stdlib::witness_t< Builder >
 
using public_witness_ct = stdlib::public_witness_t< Builder >
 
using poseidon2 = typename stdlib::poseidon2< Builder >
 
using native_poseidon2 = crypto::Poseidon2< crypto::Poseidon2Bn254ScalarFieldParams >
 

Detailed Description

template<typename Builder>
class StdlibPoseidon2< Builder >

Definition at line 14 of file poseidon2.test.cpp.

Member Typedef Documentation

◆ byte_array_ct

template<typename Builder >
using StdlibPoseidon2< Builder >::byte_array_ct = stdlib::byte_array<Builder>
private

Definition at line 17 of file poseidon2.test.cpp.

◆ curve

template<typename Builder >
using StdlibPoseidon2< Builder >::curve = stdlib::bn254<Builder>
private

Definition at line 15 of file poseidon2.test.cpp.

◆ field_ct

template<typename Builder >
using StdlibPoseidon2< Builder >::field_ct = stdlib::field_t<Builder>
private

Definition at line 18 of file poseidon2.test.cpp.

◆ native_poseidon2

template<typename Builder >
using StdlibPoseidon2< Builder >::native_poseidon2 = crypto::Poseidon2<crypto::Poseidon2Bn254ScalarFieldParams>
private

Definition at line 22 of file poseidon2.test.cpp.

◆ poseidon2

template<typename Builder >
using StdlibPoseidon2< Builder >::poseidon2 = typename stdlib::poseidon2<Builder>
private

Definition at line 21 of file poseidon2.test.cpp.

◆ public_witness_ct

Definition at line 20 of file poseidon2.test.cpp.

◆ witness_ct

template<typename Builder >
using StdlibPoseidon2< Builder >::witness_ct = stdlib::witness_t<Builder>
private

Definition at line 19 of file poseidon2.test.cpp.

Member Function Documentation

◆ gate_count()

template<typename Builder >
static std::size_t StdlibPoseidon2< Builder >::gate_count ( std::size_t  N)
inlinestatic

Definition at line 28 of file poseidon2.test.cpp.

◆ test_against_independent_values()

template<typename Builder >
static void StdlibPoseidon2< Builder >::test_against_independent_values ( )
inlinestatic

Definition at line 258 of file poseidon2.test.cpp.

◆ test_hash()

template<typename Builder >
static void StdlibPoseidon2< Builder >::test_hash ( size_t  num_inputs)
inlinestatic

Call poseidon2 on a vector of inputs.

Parameters
num_inputs

Definition at line 51 of file poseidon2.test.cpp.

◆ test_hash_aliased_points()

template<typename Builder >
static void StdlibPoseidon2< Builder >::test_hash_aliased_points ( )
inlinestatic

Test that bn254 point coordinates with alias values produce different hashes.

When a bn254 point is deserialized with alias x-coordinate (x + modulus), the resulting hash must be different from the canonical representation. Also verifies consistency between stdlib and native Poseidon2 implementations.

Definition at line 149 of file poseidon2.test.cpp.

◆ test_hash_constants()

template<typename Builder >
static void StdlibPoseidon2< Builder >::test_hash_constants ( )
inlinestatic

Definition at line 123 of file poseidon2.test.cpp.

◆ test_hash_repeated_pairs()

template<typename Builder >
static void StdlibPoseidon2< Builder >::test_hash_repeated_pairs ( size_t  num_inputs)
inlinestatic

Call poseidon2 on two inputs repeatedly.

Parameters
num_inputs

Definition at line 81 of file poseidon2.test.cpp.

◆ test_hash_zeros()

template<typename Builder >
static void StdlibPoseidon2< Builder >::test_hash_zeros ( size_t  num_inputs)
inlinestatic

Definition at line 104 of file poseidon2.test.cpp.

◆ test_padding_collisions()

template<typename Builder >
static void StdlibPoseidon2< Builder >::test_padding_collisions ( )
inlinestatic

Definition at line 233 of file poseidon2.test.cpp.

◆ w_hex()

template<typename Builder >
static field_ct StdlibPoseidon2< Builder >::w_hex ( Builder builder,
const char *  hex 
)
inlinestatic

Definition at line 25 of file poseidon2.test.cpp.

◆ w_u64()

template<typename Builder >
static field_ct StdlibPoseidon2< Builder >::w_u64 ( Builder builder,
uint64_t  v 
)
inlinestatic

Definition at line 26 of file poseidon2.test.cpp.


The documentation for this class was generated from the following file: