Barretenberg
The ZK-SNARK library at the core of Aztec
Loading...
Searching...
No Matches
pure_poseidon2.cpp
Go to the documentation of this file.
2
5
6namespace bb::avm2::simulation {
7
10
11std::array<FF, 4> PurePoseidon2::permutation(const std::array<FF, 4>& input)
12{
13 return Poseidon2Perm::permutation(input);
14}
15
16FF PurePoseidon2::hash(const std::vector<FF>& input)
17{
18 return Poseidon2Hash::hash(input);
19}
20
22{
23 // TODO: Validate inputs (type, range)
24 const std::array<FF, 4> input = {
25 memory.get(src_address).as_ff(),
26 memory.get(src_address + 1).as_ff(),
27 memory.get(src_address + 2).as_ff(),
28 memory.get(src_address + 3).as_ff(),
29 };
30 const std::array<FF, 4> output = Poseidon2Perm::permutation(input);
31 for (uint32_t i = 0; i < 4; i++) {
32 memory.set(dst_address + i, MemoryValue::from<FF>(output[i]));
33 }
34}
35
36} // namespace bb::avm2::simulation
FF hash(const std::vector< FF > &input) override
std::array< FF, 4 > permutation(const std::array< FF, 4 > &input) override
static FF hash(const std::vector< FF > &input)
Hashes a vector of field elements.
Applies the Poseidon2 permutation function from https://eprint.iacr.org/2023/323 ....
static constexpr State permutation(const State &input)
Native form of Poseidon2 permutation from https://eprint.iacr.org/2023/323.
uint32_t MemoryAddress
AvmFlavorSettings::FF FF
Definition field.hpp:10