Crate openvm_poseidon2_air

Source
Expand description

This is a wrapper around the Plonky3 p3_poseidon2_air used only for integration convenience to get around some complications with field-specific generics associated with Poseidon2. Currently it is only intended for use in OpenVM with BabyBear.

We do not recommend external use of this crate, and suggest using the p3_poseidon2_air crate directly.

Re-exports§

pub use openvm_stark_sdk::p3_baby_bear;
pub use p3_poseidon2;
pub use p3_poseidon2_air;
pub use p3_symmetric;

Structs§

BABYBEAR_BEGIN_EXT_CONSTS
BABYBEAR_END_EXT_CONSTS
BABYBEAR_PARTIAL_CONSTS
BabyBearPoseidon2LinearLayers
This type needs to implement GenericPoseidon2LinearLayers generic in F so that our Poseidon2SubAir can also be generic in F, but in reality each implementation of this struct’s functions should be field specific. To circumvent this, Poseidon2LinearLayers is generic in F but currently requires that F is BabyBear.
Poseidon2Air
Assumes the field size is at least 16 bits.
Poseidon2Config
Poseidon2Constants
Poseidon2ExternalLayer
Poseidon2InternalLayer
Poseidon2SubChip
SBOX_REGISTERS affects the max constraint degree of the AIR. See p3_poseidon2_air for more details.

Enums§

Poseidon2Executor
Poseidon2SubAir

Constants§

BABY_BEAR_POSEIDON2_FULL_ROUNDS
BABY_BEAR_POSEIDON2_HALF_FULL_ROUNDS
BABY_BEAR_POSEIDON2_PARTIAL_ROUNDS
BABY_BEAR_POSEIDON2_SBOX_DEGREE
POSEIDON2_WIDTH

Traits§

Permutation
A permutation in the mathematical sense.
Poseidon2MatrixConfig

Type Aliases§

Plonky3Poseidon2Air
Plonky3Poseidon2Executor
Plonky3RoundConstants
Poseidon2SubCols