porcuquine
65a138cd77
Re-export group crate.
2021-09-02 13:19:32 -07:00
Jack Grigg
fd7a6edbb1
ff 0.11, group 0.11
2021-09-02 18:10:05 +01:00
Jack Grigg
43251286c0
Enable Pasta curve elements to be used with `group::Wnaf`
2021-08-06 01:23:27 +01:00
Jack Grigg
a6b018fb0e
impl CofactorCurve for Pallas and Vesta
...
They already implement CofactorGroup (trivially, with the prime-order
subgroup being Self); this just enables Pallas and Vesta to be used in
cofactor-aware protocols that also want to leverage the affine point
representation.
2021-06-04 00:54:39 +01:00
Jack Grigg
38db112596
Fix clippy lints
2021-06-01 23:34:22 +01:00
Jack Grigg
bc20c5826b
Migrate to ff 0.10.0
2021-06-01 23:31:00 +01:00
Jack Grigg
ccbfaf6a20
Remove large temprary stack allocations from SqrtTables::new
2021-04-28 14:21:45 +12:00
Jack Grigg
b016b972f8
Replace (x, y) tuple with Coordinates struct
...
The previous `CurveAffine::get_xy` method returned the coordinates as
`CtOption<(C::Base, C::Base)>`. However, `ConditionallySelectable` is
not implemented for any tuple or array types, making it impossible to
use any of the useful `CtOption` methods like `and_then`. We replace it
with `CurveAffine::coordinates -> CtOption<Coordinates<Self>>` and
`impl ConditionallySelectable for Coordinates` to enable operating over
coordinates in constant time.
2021-04-18 09:21:18 +12:00
Daira Hopwood
a1194672c5
Update hash_to_field to correct a discrepancy with the Hashing to Elliptic Curves Internet Draft
...
pointed out in the NCC audit.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2021-03-27 14:39:39 +00:00
Jack Grigg
901ef2381e
clippy: Allow binary operators in Mul impls for curves
...
We use binary operators specifically to implement constant-time scalar
multiplication.
2021-03-03 22:00:22 +00:00
Jack Grigg
a3921fd38c
clippy: Allow too-many-arguments on F*::montgomery_reduce
...
We need to reduce from eight limbs to four, so we need eight arguments.
2021-03-03 22:00:22 +00:00
Jack Grigg
c13fc16ead
clippy: Allow single-character names where necessary
2021-03-03 22:00:22 +00:00
Jack Grigg
b06937103d
clippy: Use *Assign to implement arithmetic::Group trait
2021-03-03 22:00:22 +00:00
Jack Grigg
d40ed36d50
Move Pasta implementations into root
2021-03-03 21:59:08 +00:00
Jack Grigg
b36356667f
Rename crate to pasta_curves and remove halo2 code
2021-03-03 21:59:08 +00:00
str4d
5e05845936
Remove unnecessary identity check from Group::random impl
...
Co-authored-by: ebfull <ewillbefull@gmail.com>
2021-03-03 11:11:13 +13:00
Jack Grigg
62e50ae6bd
Fix Group::random implementation for Pallas and Vesta
...
Also removes the broken CurveAffine::from_bytes_wide and unused
CurveAffine::to_bytes_wide methods.
2021-03-02 21:29:59 +00:00
Jack Grigg
0a4db20d82
impl group::cofactor::CofactorGroup for Pallas and Vesta
...
Prime-order groups can be treated as a group with a cofactor of 1,
allowing them to be used in cofactor-aware protocols like RedDSA.
2021-03-01 20:27:34 +00:00
Sean Bowe
cb59a40ff8
Move PLONK integration tests into the tests subdirectory.
2021-02-26 08:22:19 -07:00
Sean Bowe
ef86a936ff
Remove print statements from tests.
2021-02-26 08:22:13 -07:00
Sean Bowe
d92b1c4fb9
Relocate computation of the degree of the constraint system to the ConstraintSystem struct.
2021-02-26 08:22:05 -07:00
Jack Grigg
e41fd7ca12
Move SHA-256 gadget and chip into examples
2021-02-25 20:01:44 +00:00
Jack Grigg
c64346467b
Add Table16 circuit layout example
2021-02-25 20:01:44 +00:00
Jack Grigg
3fa36d7a60
Add test for circuit_dot_graph using SHA-256
2021-02-25 20:01:44 +00:00
therealyingtong
5f4a08898e
SHA-256 benchmarks
2021-02-25 20:01:44 +00:00
therealyingtong
a5ac5b3ed3
Add Compression test
2021-02-25 20:01:44 +00:00
therealyingtong
46b5ddcc68
Compression subregion_digest assignments
2021-02-25 20:01:44 +00:00
therealyingtong
b47b2e436b
Compression subregion_main assignments
2021-02-25 20:01:44 +00:00
therealyingtong
05c6ebd42d
Compression subregion_initial assignments
2021-02-25 20:01:44 +00:00
therealyingtong
4d7c717107
Add utils for Compression assignments
2021-02-25 20:01:44 +00:00
therealyingtong
3778266eeb
Add Compression gates
2021-02-25 20:01:44 +00:00
therealyingtong
5951ae6516
Add Compression
2021-02-25 20:01:44 +00:00
therealyingtong
f6af03c953
Add MessageSchedule test
2021-02-25 20:01:44 +00:00
therealyingtong
6f703d5cc3
MessageSchedule subregion3 assignments
2021-02-25 20:01:44 +00:00
therealyingtong
931d55a5bb
MessageSchedule subregion2 assignments
2021-02-25 20:01:44 +00:00
therealyingtong
65f7707a28
MessageSchedule subregion1 assignments
2021-02-25 20:01:44 +00:00
therealyingtong
88379fa62f
Add MessageSchedule gates and assign fixed column cells
2021-02-25 20:01:44 +00:00
therealyingtong
fc4f3576a0
Add utils for common MessageSchedule assignments
2021-02-25 20:01:44 +00:00
therealyingtong
feedffa2b2
Add MessageSchedule
2021-02-25 20:01:44 +00:00
therealyingtong
570f90e4ee
SHA-256 chip that uses a 2^16 lookup table
...
Co-authored-by: Jack Grigg <jack@electriccoin.co>
2021-02-25 20:01:44 +00:00
Jack Grigg
b4feff8272
Remove ECC gadgets and instructions
...
Migrated to the orchard crate:
https://github.com/zcash/orchard/pull/22
2021-02-25 18:17:50 +00:00
Jack Grigg
bd17c726ac
Add a Selector type
...
This currently just wraps a `Column<Fixed>`, but enables us to start
writing circuits that can later have their selector usage optimised.
2021-02-25 15:28:29 +00:00
str4d
9467a03ae2
Merge pull request #209 from zcash/ecc-gadget-fixedpoints
...
Store `Loaded` chip state in chip
2021-02-26 04:24:28 +13:00
therealyingtong
4f17322c2d
Allow Chip::load to return state that the Layouter will hold
...
This enables chips that e.g. want to load multiple lookup tables into
the same columns to store state about where each table was layed out.
Co-authored-by: Jack Grigg <jack@electriccoin.co>
2021-02-24 23:28:18 +08:00
therealyingtong
6cbf32c2cd
Add FixedPoints type and trait to ECC gadget
2021-02-24 23:24:53 +08:00
therealyingtong
4ae21a905d
Update tests
2021-02-24 00:21:12 +08:00
therealyingtong
5a341b0f8f
Modify Assignment::copy() to take Column<Any> instead of usize
2021-02-24 00:18:22 +08:00
therealyingtong
d82a0c85b1
Modify Assignment::copy() to take Permutation instead of usize
2021-02-24 00:17:29 +08:00
therealyingtong
340fb2b6df
Move Permutation struct from crate::circuit -> plonk::circuit
2021-02-24 00:17:29 +08:00
ebfull
20bd44f854
Merge pull request #191 from zcash/sha-256-gadget-namespacing
...
Alter the SHA-256 gadget to require namespacing
2021-02-23 08:49:03 -07:00