Commit Graph

64 Commits

Author SHA1 Message Date
Jack Grigg 2df2a2b2f2 Merge branch 'develop' 2020-03-14 10:36:58 +13:00
Jack Grigg 76e0f658c1 Rename CommitmentTreeWitness -> MerklePath 2020-02-08 00:36:40 +00:00
Jack Grigg 2064d1c801 Refactor zcash_primitives::merkle_tree::CommitmentTreeWitness
- The internal Option wrapper was an unnecessary leftover from when this
  code was directly inside the prover, where Some(x) represents an
  assigned variable.
- CommitmentTreeWitness::from_slice_with_depth is more idiomatic Rust.
2020-02-07 00:06:57 +00:00
François Garillot 865275e2a2
Correcting some trivial Rust option/iterator warts 2020-01-29 13:53:05 -08:00
Jack Grigg 3d2acf48ce
Constant-time field square root
WARNING: THIS IS NOT FULLY CONSTANT TIME YET!

This will be fixed once we migrate to the jubjub and bls12_381 crates.
2019-12-13 20:13:30 +00:00
Jack Grigg 40749da9a7
Constant-time field inversion
WARNING: THIS IS NOT ACTUALLY CONSTANT TIME YET!

The jubjub and bls12_381 crates will replace our constant-time usages,
but we NEED to fix ff_derive because other users will expect it to
implement the Field trait correctly.
2019-12-13 19:46:04 +00:00
Jack Grigg cded08b0c5
Make Field::square take &self and return Self 2019-12-12 23:09:28 +00:00
Jack Grigg 9dac748224
Make Field::double take &self and return Self 2019-12-12 22:59:18 +00:00
Jack Grigg 91c32f1c7c
Move from Field::negate to Neg operator 2019-12-12 22:52:17 +00:00
Jack Grigg 27c8f34601
Move Field operations to operator-backed traits
The ff_derive, pairing, zcash_primitives::jubjub, and bellman dummy_engine
changes are minimally implemented on top of the existing *_assign()
functions.
2019-12-12 21:19:46 +00:00
Gregory Hill 7eb4a6d1d9
rename bvk to cv_sum
Signed-off-by: Gregory Hill <gregorydhill@outlook.com>
2019-11-25 14:28:19 +00:00
Jack Grigg d1bc61800c
Move Sprout proof logic into zcash_proofs 2019-11-06 08:58:42 +00:00
str4d 2399d9f3e3
Merge pull request #93 from defuse/qed-it-lrz
Bring in QED-it Tests
2019-10-08 13:47:36 +13:00
str4d 524055bbb4
Merge pull request #134 from NikVolf/z-rng
Avoid using rand_os crate (fixes warnings)
2019-10-02 17:35:56 -06:00
NikVolf b42477a0bf update from rand_os to fix warnings 2019-09-28 10:48:43 +03:00
Jack Grigg 4ad3988e43
Crate docs 2019-09-24 14:23:59 +01:00
Jack Grigg d9a0b9c83f
CI: Check intra-doc links
Credit: https://twitter.com/tomaka17/status/1176017851410526208
2019-09-24 10:35:12 +01:00
Taylor Hornby caab37c336
Fix build warnings 2019-09-16 23:06:48 +01:00
Aurélien Nicolas 3efb7f9146
Test PH circuit for the size used in the Merkle tree 2019-09-16 22:20:51 +01:00
Aurélien Nicolas d56758d426
Calculate number of constraints and more comprehensive test 2019-09-16 22:14:14 +01:00
Kobi Gurkan e0c5ef22bc
ecc: makes assert_not_small_order tests deeper 2019-09-16 22:08:27 +01:00
Kobi Gurkan ace929c5ba
ecc: test_assert_not_small_order also tests for the generators 2019-09-16 22:03:22 +01:00
Kobi Gurkan bb0a769162
ecc: tests for assert_not_small_order 2019-09-16 22:01:00 +01:00
Kobi Gurkan 2b92493a45
input circuit: removes debug prints 2019-09-16 20:28:23 +01:00
Kobi Gurkan abd03928b4
adds test vectors for NoteCommit 2019-09-16 20:28:10 +01:00
Kobi Gurkan 7ee61c4f94
pedersen_hash: adds test vectors for the circuit implementation 2019-09-16 20:23:07 +01:00
Kobi Gurkan 43496857c9
pedersen_hash: removes debug prints 2019-09-16 20:20:03 +01:00
Kobi Gurkan 4835be05b0
pedersen_hash: show a tighter limit for hash sizes 2019-09-16 20:17:52 +01:00
Kobi Gurkan 15633ad434
pedersen hashes: example of size limit bug 2019-09-16 20:17:50 +01:00
Kobi Gurkan 414d651c9c
pedersen_hash: adds tests for Daniel's vector 2019-09-16 20:12:38 +01:00
Kobi Gurkan 8541b2bde4
pedersen_hash: prints hashes, adds comments 2019-09-16 20:12:33 +01:00
Jack Grigg abbd43ff57
Make pk_d validity an invariant of PaymentAddress
Introduces a PaymentAddress::from_parts constructor, and getters for
the diversifier and pk_d fields (which are now private).
2019-09-04 19:48:35 -04:00
str4d b19b40ccf0
Merge pull request #110 from str4d/crate-cleanups
Crate cleanups
2019-09-04 19:44:47 -04:00
Jack Grigg ee9c88ecb0
Exclude slow tests from code coverage 2019-08-28 20:46:23 +01:00
Jack Grigg 9016548698
Take self directly in into_* functions 2019-08-24 00:39:55 +01:00
Jack Grigg fe93f2ff6b
Rename into_ -> to_ where &self is used. 2019-08-24 00:39:54 +01:00
Jack Grigg 91541675e2
Address various clippy warnings/errors in zcash_proofs 2019-08-24 00:39:53 +01:00
str4d ad33798244
Merge pull request #113 from Eirik0/edition-2018-clean-up
Edition 2018 clean up
2019-08-24 00:34:57 +01:00
Eirik Ogilvie-Wigley 53182aa08e cargo fix --edition-idioms for zcash_proofs 2019-08-21 16:13:10 -06:00
Eirik Ogilvie-Wigley e12d315ab9 Warning cleanup 2019-08-20 16:45:10 -06:00
Jim Posen d4b6c0e1a2 Use expect to remove unreachable break. 2019-08-20 17:18:26 +02:00
Jim Posen 40f768ed60 Fix off-by-one so pedersen_hash doesn't consume too many generators. 2019-08-17 12:01:11 +02:00
Eirik Ogilvie-Wigley 272be62212 cargo fmt zcash_proofs 2019-08-15 10:40:07 -06:00
Jack Grigg 5fb9b86ba0
Move Jubjub, Pedersen hash and primitives into zcash_primitives 2019-08-14 10:47:22 +01:00
Jack Grigg b8af749b40
Move generic circuit gadgets into bellman 2019-08-14 10:45:58 +01:00
Jack Grigg 61c633db1e
Move Jubjub and Pedersen hash gadgets into zcash_proofs
These are currently too Zcash-specific to be generalized, and need some
targeted refactoring.
2019-08-14 10:45:57 +01:00
Jack Grigg 2ae5804a67
Move Sprout and Sapling circuits into zcash_proofs 2019-08-14 10:45:55 +01:00
Jack Grigg 7ea6d10480
Move redjubjub into zcash_primitives 2019-08-14 10:43:25 +01:00
Jack Grigg 59ed258c7f
Make Amount opaque, and use it more
This helps to ensure type-safety of values that are required to satisfy
zatoshi range bounds.
2019-07-27 00:35:29 +01:00
Jack Grigg 54ef63bace
Place zcash_proofs::prover::LocalTxProver behind a feature flag
This enables zcash_proofs to be compiled to WASM, which the directories
crate doesn't support.
2019-07-27 00:28:03 +01:00