Skip to content

Commit e374954

Browse files
authored
Merge pull request #834 from zcash/poseidon-no-std
halo2_poseidon: Add no-std support
2 parents c91cc5c + e6897ef commit e374954

File tree

6 files changed

+23
-8
lines changed

6 files changed

+23
-8
lines changed

halo2_poseidon/Cargo.toml

+2-2
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,8 @@ readme = "README.md"
1515
categories = ["cryptography"]
1616

1717
[dependencies]
18-
bitvec = "1"
19-
ff = "0.13"
18+
bitvec = { version = "1", default-features = false }
19+
ff = { version = "0.13", default-features = false }
2020
group = "0.13"
2121
pasta_curves = "0.5"
2222

halo2_poseidon/src/grain.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
//! The Grain LFSR in self-shrinking mode, as used by Poseidon.
22
3-
use std::marker::PhantomData;
3+
use core::marker::PhantomData;
44

55
use bitvec::prelude::*;
66
use group::ff::{Field, FromUniformBytes, PrimeField};

halo2_poseidon/src/lib.rs

+11-4
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,16 @@
11
//! The Poseidon algebraic hash function.
22
3-
use std::convert::TryInto;
4-
use std::fmt;
5-
use std::iter;
6-
use std::marker::PhantomData;
3+
#![no_std]
4+
5+
#[macro_use]
6+
extern crate alloc;
7+
8+
use alloc::string::String;
9+
use alloc::vec::Vec;
10+
use core::convert::TryInto;
11+
use core::fmt;
12+
use core::iter;
13+
use core::marker::PhantomData;
714

815
use group::ff::{Field, FromUniformBytes, PrimeField};
916

halo2_poseidon/src/mds.rs

+2
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
use alloc::vec::Vec;
2+
13
use ff::FromUniformBytes;
24

35
use super::{grain::Grain, Mds};

halo2_poseidon/src/p128pow5t3.rs

+5-1
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
use alloc::vec::Vec;
2+
13
use ff::Field;
24
use pasta_curves::{pallas::Base as Fp, vesta::Base as Fq};
35

@@ -66,8 +68,10 @@ impl Spec<Fq, 3, 2> for P128Pow5T3 {
6668

6769
#[cfg(test)]
6870
mod tests {
71+
use alloc::vec::Vec;
72+
use core::marker::PhantomData;
73+
6974
use ff::{Field, FromUniformBytes, PrimeField};
70-
use std::marker::PhantomData;
7175

7276
use super::{
7377
super::{fp, fq},

halo2_poseidon/src/test_vectors.rs

+2
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
//! Test vectors for [`OrchardNullifier`].
22
3+
use alloc::vec::Vec;
4+
35
pub struct PermuteTestVector {
46
pub initial_state: [[u8; 32]; 3],
57
pub final_state: [[u8; 32]; 3],

0 commit comments

Comments
 (0)