derive CanonicalSerialize and CanonicalDeserialize

This commit is contained in:
Daniel Tehrani
2024-02-14 09:47:59 -08:00
parent d67f21fe39
commit 133d535faa
2 changed files with 4 additions and 2 deletions

View File

@@ -8,6 +8,7 @@ edition = "2021"
[dependencies]
tiny-keccak = { version = "2.0.2", features = ["keccak"] }
ark-ff = "0.4.2"
ark-serialize = { version = "0.4.2", features = ["derive"] }
[dev-dependencies]
ark-secp256k1 = "0.4.0"

View File

@@ -2,8 +2,9 @@ pub mod constants;
pub mod sponge;
use ark_ff::Field;
use ark_serialize::{CanonicalDeserialize, CanonicalSerialize};
#[derive(Clone)]
#[derive(Clone, CanonicalSerialize, CanonicalDeserialize)]
pub struct PoseidonConstants<F: Field> {
pub round_keys: Vec<F>,
pub mds_matrix: Vec<Vec<F>>,
@@ -13,7 +14,7 @@ pub struct PoseidonConstants<F: Field> {
const CAPACITY: usize = 1; // We fix the capacity to be one.
#[derive(Clone)]
#[derive(Clone, CanonicalDeserialize, CanonicalSerialize)]
pub struct Poseidon<F: Field, const WIDTH: usize> {
pub state: [F; WIDTH],
pub constants: PoseidonConstants<F>,