Commit Graph

76 Commits

Author SHA1 Message Date
ValarDragon
23c6bb4bd0 Rename arguments to CondSelectGadget for code clarity 2020-03-12 09:21:01 -07:00
Weikeng Chen
6c0ee7ffbc Follow the nightly's suggested fmt change 2020-03-05 10:55:54 -08:00
weikeng
e524e46d0b Add UInt64 used for representing Merkle tree node locations 2020-03-05 10:55:54 -08:00
Pratyush Mishra
0df0a15e1b Blake PRF & R1CS Boolean Refactor (#132)
* refactor(r1cs-std/boolean): expose enforcing value less than functionality

* fix(r1cs-std/boolean): ensure num_bits is calculated correctly from the arg

* feat(primitives/blake2s): allow creating Blake2s with custom params
2020-03-05 10:51:59 -08:00
Pratyush Mishra
0b57cdd736 Add a pre-commit hook for rustfmt (#102)
* add a pre-commit hook for rustfmt

* make printing sccache stats optional

* fixup! add a pre-commit hook for rustfmt
2020-03-04 16:05:57 -08:00
Pratyush Mishra
50c0511ba3 Merge branch 'master' of https://github.com/scipr-lab/zexe 2020-03-03 10:39:05 -08:00
Pascal Berrang
b4b4e5553d Implement CanonicalSerialize/Deserialize improvements (#109)
* Implement CanonicalSerialize/Deserialize improvements

* Improve code readability by using cursor

* Add tests for uncompressed serialization

* Improve serialization size (do not require full u64 limbs to be serialised)

* Change Flags to enum types

* Split up serialization with and without flags.

* Implement simple derive macro

* Derive traits for Groth16 and GM17 keys and proofs
2020-03-03 09:56:18 -08:00
ValarDragon
78e08aed97 Fix lint 2020-02-28 21:00:23 -08:00
ValarDragon
cba74c09d9 Fix error 2020-02-28 21:00:23 -08:00
ValarDragon
3cb1ed06d6 Fix linter errors 2020-02-28 21:00:23 -08:00
Pratyush Mishra
77837b4a1b Fix ns issue 2020-02-28 21:00:23 -08:00
ValarDragon
cb1bcb1cbf Fix ns 2020-02-28 21:00:23 -08:00
ValarDragon
b63d255ea3 Update to use bit iterator 2020-02-28 21:00:23 -08:00
ValarDragon
8cce6501b8 Add exponentiation by constant to Fp 2020-02-28 21:00:23 -08:00
Pratyush Mishra
7adcc69799 Generalize FFT infrastructure to work with group elements as well 2020-02-28 18:10:00 -08:00
Pratyush Mishra
faf179c43d Export algebra-core::error 2020-02-28 08:29:03 -08:00
Pratyush Mishra
2298df2e78 Make benchmarks compile, and check them in CI 2020-02-27 00:43:15 -08:00
Pratyush Mishra
8bf042a029 Refactor algebra API, split into algebra and algebra-core. (#100) 2020-02-26 21:42:04 -08:00
Marek Kotewicz
d4896ade47 crypto-primitives no-std (#96) 2020-02-20 11:35:53 -08:00
howardwu
02e6b32d7d Cargo fmt 2020-02-16 12:34:26 -08:00
howardwu
2949c0ef9d Adds NIZK benchmarking, updates crypto-primitives benchmarks 2020-02-15 18:16:19 -08:00
Pratyush Mishra
bd501440cf Add new additive and multiplcative ops for fields 2020-02-14 14:38:04 -08:00
Marek Kotewicz
9621bd34a4 r1cs-std works with no-std (#92) 2020-02-05 13:55:38 -08:00
Marek Kotewicz
a77972bf9a no_std for algebra and r1cs-core (#76) 2020-01-31 09:29:29 -08:00
ValarDragon
5e57ac5621 Fix blake2s table alighnments 2020-01-28 08:31:20 -08:00
François Garillot
df6e235445 Add badge from deps.rs 2020-01-27 19:57:25 -08:00
François Garillot
a4a8116f1d Update dependencies 2020-01-27 19:57:25 -08:00
François Garillot
b26867f267 Runs rustfmt on the repo 2020-01-27 11:44:23 -08:00
Pratyush Mishra
a3e1cd6cf2 Make libraries compile 2020-01-19 21:12:07 -08:00
Pratyush Mishra
762793ccbd Update Cargo.toml 2020-01-18 18:26:45 -08:00
Pratyush Mishra
40cf13b7b8 num_traits:: -> algebra:: 2020-01-18 18:26:45 -08:00
François Garillot
722a901ae7 [RFC] Convert identity functions in Field, Group, and {Projective,Affine}Curve traits with One/Zero traits from num_traits.
- contributes to #50,
- depends on #53 and builds on it,
- due to coherence & requirements of `num_traits::{Zero, One}` to implement `std::ops::Add<Self, ..>` and (resp.) `std::ops::Mul<Self, ..>`, I've had to replace the afferent `impl<'a, P: ..> (Add|Mul)<&'a Self> for Group(Affine|Projective)<P>` by direct implementations on `Self`,
- I did not have to fight the borrow checker for this conversion => I think this hints arithmetic operations are called in contexts where the operand is owned,
- hence should this end up on a merge track, we may want to open an issue to convert the `impl<'a, P:..> (Neg|Sub|..)<&'a Self> for ..<P>` trait usage to direct `impl<P:..> (Neg|Sub|..)<Self> for ..<P>`
- the `impl AddAssign for GroupAffine<P>` in curves/models/short_weierstrass_jacobian.rs is provided to fit trait bounds, and without any guarantee of suitability for any particular purpose
- and that, even though I don't think it's used.
2020-01-17 11:22:41 -08:00
Kobi Gurkan
b8a81b5dcb r1cs-std: makes extension field to_bits create namespaces for the individual elements 2020-01-16 09:54:50 -08:00
Pratyush Mishra
2a8974e442 Boolean conditional select 2019-12-18 06:35:57 +03:00
François Garillot
ab65b01478 Clean up a few loop bounds 2019-12-02 09:54:14 -08:00
François Garillot
f1d8b122fc Use operator syntax
eliminate a few redundant references
2019-12-02 09:54:14 -08:00
François Garillot
b42d5f8d36 Simplify a few "if" structures 2019-12-02 09:54:14 -08:00
François Garillot
53a51eb4dc Use built-in iteration functions more 2019-12-02 09:54:14 -08:00
François Garillot
c42c7dd98a Remove a few unnecessary clones 2019-12-02 09:54:14 -08:00
François Garillot
d71bc5a675 Prefer to return error rather than ? them,
avoid return when it cant be early (in a simple if-else)
2019-12-02 09:54:14 -08:00
François Garillot
10c6e85c1a Remove a few unnecessary .into_iter() explicit calls, and some cloning.
See https://rust-lang.github.io/rust-clippy/master/#explicit_into_iter_loop
2019-12-02 09:54:14 -08:00
Kobi Gurkan
581f3df55f Adds Bowe-Hopwood hash 2019-11-17 09:07:23 -08:00
Pratyush Mishra
19856bd9b6 Add Groth16 to Readme 2019-10-23 21:45:56 -07:00
Kobi Gurkan
da0de7c7f2 Adds license files as links 2019-10-21 18:57:39 -07:00
Kobi Gurkan
d292f637aa Update crypto-primitives/src/nizk/groth16/mod.rs
Co-Authored-By: Pratyush Mishra <pratyushmishra@berkeley.edu>
2019-10-21 18:57:39 -07:00
Kobi Gurkan
e3d2ff1c04 Update crypto-primitives/src/nizk/groth16/mod.rs
Co-Authored-By: Pratyush Mishra <pratyushmishra@berkeley.edu>
2019-10-21 18:57:39 -07:00
Kobi Gurkan
7c5271a212 Update crypto-primitives/src/nizk/groth16/mod.rs
Co-Authored-By: Pratyush Mishra <pratyushmishra@berkeley.edu>
2019-10-21 18:57:39 -07:00
Kobi Gurkan
fb87c421e7 Runs cargo fmt 2019-10-21 18:57:39 -07:00
Kobi Gurkan
98416f6b2e Adds Groth16 2019-10-21 18:57:39 -07:00
Pratyush Mishra
2a86b59138 Merkle Tree name refactors 2019-10-11 19:25:53 -07:00