diff --git a/Cargo.toml b/Cargo.toml index 65a0fb2..d60b76c 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -38,10 +38,6 @@ harness = false name = "plonk" harness = false -[[bench]] -name = "sha256" -harness = false - [dependencies] backtrace = { version = "0.3", optional = true } subtle = "2.3" diff --git a/benches/sha256.rs b/examples/sha256/benches.rs similarity index 97% rename from benches/sha256.rs rename to examples/sha256/benches.rs index febf47f..2ac5501 100644 --- a/benches/sha256.rs +++ b/examples/sha256/benches.rs @@ -1,12 +1,7 @@ -#[macro_use] -extern crate criterion; - -extern crate halo2; use halo2::{ arithmetic::FieldExt, circuit::Chip, circuit::{layouter, Layouter}, - gadget::sha256::{BlockWord, Sha256, Table16Chip, Table16Config, BLOCK_SIZE}, pasta::EqAffine, plonk::{ create_proof, keygen_pk, keygen_vk, verify_proof, Assignment, Circuit, ConstraintSystem, @@ -22,7 +17,9 @@ use std::{ path::Path, }; -use criterion::Criterion; +use criterion::{criterion_group, criterion_main, Criterion}; + +use crate::{BlockWord, Sha256, Table16Chip, Table16Config, BLOCK_SIZE}; fn bench(name: &str, k: u32, c: &mut Criterion) { struct MyCircuit {} diff --git a/src/gadget/sha256.rs b/examples/sha256/main.rs similarity index 99% rename from src/gadget/sha256.rs rename to examples/sha256/main.rs index e41fe88..a6ffb66 100644 --- a/src/gadget/sha256.rs +++ b/examples/sha256/main.rs @@ -6,11 +6,12 @@ use std::cmp::min; use std::convert::TryInto; use std::fmt; -use crate::{ +use halo2::{ circuit::{Chip, Layouter}, plonk::Error, }; +mod benches; mod table16; pub use table16::{BlockWord, Table16Chip, Table16Config}; @@ -157,3 +158,5 @@ impl Sha256 { hasher.finalize(layouter.namespace(|| "finalize")) } } + +fn main() {} diff --git a/src/gadget/sha256/table16.rs b/examples/sha256/table16.rs similarity index 99% rename from src/gadget/sha256/table16.rs rename to examples/sha256/table16.rs index b723794..2dd7a42 100644 --- a/src/gadget/sha256/table16.rs +++ b/examples/sha256/table16.rs @@ -1,7 +1,7 @@ use std::marker::PhantomData; use super::Sha256Instructions; -use crate::{ +use halo2::{ arithmetic::FieldExt, circuit::{Cell, Chip, Layouter, Region}, plonk::{Advice, Column, ConstraintSystem, Error, Permutation}, @@ -324,7 +324,7 @@ trait Table16Assignment { #[cfg(test)] mod tests { #[cfg(feature = "dev-graph")] - use crate::{ + use halo2::{ arithmetic::FieldExt, circuit::Chip, circuit::{layouter, Layouter}, diff --git a/src/gadget/sha256/table16/compression.rs b/examples/sha256/table16/compression.rs similarity index 99% rename from src/gadget/sha256/table16/compression.rs rename to examples/sha256/table16/compression.rs index 48feaec..846e774 100644 --- a/src/gadget/sha256/table16/compression.rs +++ b/examples/sha256/table16/compression.rs @@ -2,7 +2,7 @@ use super::{ super::DIGEST_SIZE, BlockWord, CellValue16, CellValue32, SpreadInputs, SpreadVar, Table16Assignment, Table16Chip, ROUNDS, STATE, }; -use crate::{ +use halo2::{ arithmetic::FieldExt, circuit::Layouter, plonk::{Advice, Column, ConstraintSystem, Error, Fixed, Permutation}, @@ -800,7 +800,7 @@ mod tests { Table16Chip, Table16Config, IV, }; use super::Compression; - use crate::{ + use halo2::{ arithmetic::FieldExt, circuit::{layouter, Layouter}, dev::MockProver, diff --git a/src/gadget/sha256/table16/compression/compression_gates.rs b/examples/sha256/table16/compression/compression_gates.rs similarity index 99% rename from src/gadget/sha256/table16/compression/compression_gates.rs rename to examples/sha256/table16/compression/compression_gates.rs index 9dff969..5004412 100644 --- a/src/gadget/sha256/table16/compression/compression_gates.rs +++ b/examples/sha256/table16/compression/compression_gates.rs @@ -1,6 +1,5 @@ use super::super::{util::*, Gate}; -use crate::arithmetic::FieldExt; -use crate::plonk::Expression; +use halo2::{arithmetic::FieldExt, plonk::Expression}; pub struct CompressionGate(pub Expression); diff --git a/src/gadget/sha256/table16/compression/compression_util.rs b/examples/sha256/table16/compression/compression_util.rs similarity index 99% rename from src/gadget/sha256/table16/compression/compression_util.rs rename to examples/sha256/table16/compression/compression_util.rs index 18fc152..3052a15 100644 --- a/src/gadget/sha256/table16/compression/compression_util.rs +++ b/examples/sha256/table16/compression/compression_util.rs @@ -5,7 +5,7 @@ use super::super::{ use super::{ AbcdVar, Compression, EfghVar, RoundWordA, RoundWordDense, RoundWordE, RoundWordSpread, State, }; -use crate::{ +use halo2::{ arithmetic::FieldExt, circuit::Region, plonk::{Advice, Column, Error}, diff --git a/src/gadget/sha256/table16/compression/subregion_digest.rs b/examples/sha256/table16/compression/subregion_digest.rs similarity index 99% rename from src/gadget/sha256/table16/compression/subregion_digest.rs rename to examples/sha256/table16/compression/subregion_digest.rs index dfcb304..18948c4 100644 --- a/src/gadget/sha256/table16/compression/subregion_digest.rs +++ b/examples/sha256/table16/compression/subregion_digest.rs @@ -1,6 +1,6 @@ use super::super::{super::DIGEST_SIZE, BlockWord, CellValue16, Table16Assignment, Table16Chip}; use super::{compression_util::*, Compression, State}; -use crate::{ +use halo2::{ arithmetic::FieldExt, circuit::Region, plonk::{Advice, Column, Error}, diff --git a/src/gadget/sha256/table16/compression/subregion_initial.rs b/examples/sha256/table16/compression/subregion_initial.rs similarity index 98% rename from src/gadget/sha256/table16/compression/subregion_initial.rs rename to examples/sha256/table16/compression/subregion_initial.rs index ca5a78b..ba5a84f 100644 --- a/src/gadget/sha256/table16/compression/subregion_initial.rs +++ b/examples/sha256/table16/compression/subregion_initial.rs @@ -1,6 +1,6 @@ use super::super::{RoundWordDense, RoundWordSpread, StateWord, Table16Chip, STATE}; use super::{compression_util::*, Compression, State}; -use crate::{arithmetic::FieldExt, circuit::Region, plonk::Error}; +use halo2::{arithmetic::FieldExt, circuit::Region, plonk::Error}; impl Compression { pub fn initialize_iv( diff --git a/src/gadget/sha256/table16/compression/subregion_main.rs b/examples/sha256/table16/compression/subregion_main.rs similarity index 98% rename from src/gadget/sha256/table16/compression/subregion_main.rs rename to examples/sha256/table16/compression/subregion_main.rs index 30b5925..058550e 100644 --- a/src/gadget/sha256/table16/compression/subregion_main.rs +++ b/examples/sha256/table16/compression/subregion_main.rs @@ -2,7 +2,7 @@ use super::super::{ CellValue16, RoundWordA, RoundWordE, StateWord, Table16Assignment, Table16Chip, ROUND_CONSTANTS, }; use super::{compression_util::*, Compression, State}; -use crate::{arithmetic::FieldExt, circuit::Region, plonk::Error}; +use halo2::{arithmetic::FieldExt, circuit::Region, plonk::Error}; impl Compression { pub fn assign_round( diff --git a/src/gadget/sha256/table16/gates.rs b/examples/sha256/table16/gates.rs similarity index 98% rename from src/gadget/sha256/table16/gates.rs rename to examples/sha256/table16/gates.rs index 1bf070f..1816896 100644 --- a/src/gadget/sha256/table16/gates.rs +++ b/examples/sha256/table16/gates.rs @@ -1,5 +1,4 @@ -use crate::arithmetic::FieldExt; -use crate::plonk::Expression; +use halo2::{arithmetic::FieldExt, plonk::Expression}; pub struct Gate(pub Expression); diff --git a/src/gadget/sha256/table16/message_schedule.rs b/examples/sha256/table16/message_schedule.rs similarity index 99% rename from src/gadget/sha256/table16/message_schedule.rs rename to examples/sha256/table16/message_schedule.rs index f3ec618..3d72fd7 100644 --- a/src/gadget/sha256/table16/message_schedule.rs +++ b/examples/sha256/table16/message_schedule.rs @@ -3,7 +3,7 @@ use std::convert::TryInto; use super::{ super::BLOCK_SIZE, BlockWord, CellValue16, SpreadInputs, Table16Assignment, Table16Chip, ROUNDS, }; -use crate::{ +use halo2::{ arithmetic::FieldExt, circuit::{Cell, Layouter}, plonk::{Advice, Column, ConstraintSystem, Error, Fixed, Permutation}, @@ -479,7 +479,7 @@ mod tests { super::BLOCK_SIZE, BlockWord, Compression, SpreadTable, Table16Chip, Table16Config, }; use super::{schedule_util::*, MessageSchedule}; - use crate::{ + use halo2::{ arithmetic::FieldExt, circuit::{layouter, Layouter}, dev::MockProver, diff --git a/src/gadget/sha256/table16/message_schedule/schedule_gates.rs b/examples/sha256/table16/message_schedule/schedule_gates.rs similarity index 99% rename from src/gadget/sha256/table16/message_schedule/schedule_gates.rs rename to examples/sha256/table16/message_schedule/schedule_gates.rs index de9cae4..3d4d46f 100644 --- a/src/gadget/sha256/table16/message_schedule/schedule_gates.rs +++ b/examples/sha256/table16/message_schedule/schedule_gates.rs @@ -1,6 +1,5 @@ use super::super::Gate; -use crate::arithmetic::FieldExt; -use crate::plonk::Expression; +use halo2::{arithmetic::FieldExt, plonk::Expression}; pub struct ScheduleGate(pub Expression); diff --git a/src/gadget/sha256/table16/message_schedule/schedule_util.rs b/examples/sha256/table16/message_schedule/schedule_util.rs similarity index 99% rename from src/gadget/sha256/table16/message_schedule/schedule_util.rs rename to examples/sha256/table16/message_schedule/schedule_util.rs index 9746b49..add0859 100644 --- a/src/gadget/sha256/table16/message_schedule/schedule_util.rs +++ b/examples/sha256/table16/message_schedule/schedule_util.rs @@ -1,6 +1,6 @@ use super::super::{super::BLOCK_SIZE, BlockWord, CellValue16, Table16Chip, ROUNDS}; use super::MessageSchedule; -use crate::{ +use halo2::{ arithmetic::FieldExt, circuit::{Cell, Region}, plonk::Error, diff --git a/src/gadget/sha256/table16/message_schedule/subregion1.rs b/examples/sha256/table16/message_schedule/subregion1.rs similarity index 99% rename from src/gadget/sha256/table16/message_schedule/subregion1.rs rename to examples/sha256/table16/message_schedule/subregion1.rs index 956bd99..f8ab492 100644 --- a/src/gadget/sha256/table16/message_schedule/subregion1.rs +++ b/examples/sha256/table16/message_schedule/subregion1.rs @@ -3,7 +3,7 @@ use super::super::{ Table16Chip, }; use super::{schedule_util::*, MessageSchedule}; -use crate::{arithmetic::FieldExt, circuit::Region, plonk::Error}; +use halo2::{arithmetic::FieldExt, circuit::Region, plonk::Error}; // A word in subregion 1 // (3, 4, 11, 14)-bit chunks diff --git a/src/gadget/sha256/table16/message_schedule/subregion2.rs b/examples/sha256/table16/message_schedule/subregion2.rs similarity index 99% rename from src/gadget/sha256/table16/message_schedule/subregion2.rs rename to examples/sha256/table16/message_schedule/subregion2.rs index 9a52c40..3e6120e 100644 --- a/src/gadget/sha256/table16/message_schedule/subregion2.rs +++ b/examples/sha256/table16/message_schedule/subregion2.rs @@ -2,7 +2,7 @@ use super::super::{ util::*, CellValue16, CellValue32, SpreadVar, SpreadWord, Table16Assignment, Table16Chip, }; use super::{schedule_util::*, MessageSchedule, MessageWord}; -use crate::{arithmetic::FieldExt, circuit::Region, plonk::Error}; +use halo2::{arithmetic::FieldExt, circuit::Region, plonk::Error}; // A word in subregion 2 // (3, 4, 3, 7, 1, 1, 13)-bit chunks diff --git a/src/gadget/sha256/table16/message_schedule/subregion3.rs b/examples/sha256/table16/message_schedule/subregion3.rs similarity index 99% rename from src/gadget/sha256/table16/message_schedule/subregion3.rs rename to examples/sha256/table16/message_schedule/subregion3.rs index 1d70a99..4fdff42 100644 --- a/src/gadget/sha256/table16/message_schedule/subregion3.rs +++ b/examples/sha256/table16/message_schedule/subregion3.rs @@ -2,7 +2,7 @@ use super::super::{ util::*, CellValue16, CellValue32, SpreadVar, SpreadWord, Table16Assignment, Table16Chip, }; use super::{schedule_util::*, MessageSchedule, MessageWord}; -use crate::{arithmetic::FieldExt, circuit::Region, plonk::Error}; +use halo2::{arithmetic::FieldExt, circuit::Region, plonk::Error}; // A word in subregion 3 // (10, 7, 2, 13)-bit chunks diff --git a/src/gadget/sha256/table16/spread_table.rs b/examples/sha256/table16/spread_table.rs similarity index 99% rename from src/gadget/sha256/table16/spread_table.rs rename to examples/sha256/table16/spread_table.rs index 41f1e63..ed2c6f5 100644 --- a/src/gadget/sha256/table16/spread_table.rs +++ b/examples/sha256/table16/spread_table.rs @@ -1,5 +1,5 @@ use super::{util::*, CellValue16, CellValue32, Table16Chip}; -use crate::{ +use halo2::{ arithmetic::FieldExt, circuit::{Chip, Layouter, Region}, plonk::{Advice, Column, ConstraintSystem, Error, Fixed}, @@ -248,7 +248,7 @@ mod tests { super::{util::*, Compression, MessageSchedule, Table16Chip, Table16Config}, SpreadInputs, SpreadTable, }; - use crate::{ + use halo2::{ arithmetic::FieldExt, circuit::{layouter, Cell, Layouter, Region, RegionIndex}, dev::MockProver, diff --git a/src/gadget/sha256/table16/util.rs b/examples/sha256/table16/util.rs similarity index 100% rename from src/gadget/sha256/table16/util.rs rename to examples/sha256/table16/util.rs diff --git a/src/gadget.rs b/src/gadget.rs deleted file mode 100644 index ccf8512..0000000 --- a/src/gadget.rs +++ /dev/null @@ -1,3 +0,0 @@ -//! Self-contained circuit implementations of various primitives. - -pub mod sha256; diff --git a/src/lib.rs b/src/lib.rs index 81c9c17..74b0912 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -19,7 +19,6 @@ pub mod arithmetic; pub mod circuit; -pub mod gadget; pub mod pasta; pub mod plonk; pub mod poly;