Commit Graph
100 Commits
Author SHA1 Message Date
Sean Bowe 05a9f3360f Squashed 'pairing/' changes from 3d41ee5..3870f11
3870f11 Bump version and ff dependency
e8657fa Merge pull request #108 from kigawas/fix-rngcore-sized
7fddfc7 Update Cargo.toml
df0217c bump group version
cbc1917 bump version
98133d9 fix RngCore Sized
583c744 pairing 0.15.0
0de7279 Fix pairing benchmarks
dd2fbb3 Crate docs
97c45f2 Update READMEs
9aef129 CI: Check intra-doc links
f552b49 Add READMEs to Cargo.toml files
8c59b4a cargo fmt
33993f4 cargo fix --edition-idioms for pairing
36788f3 Add edition = 2018
df88a3f cargo fmt
d9a1288 cargo fix --edition for pairing
013fd03 cargo fmt pairing
5635612 Fix clippy linter errors in pairing crate
ba40e2f Use modern clippy linter syntax
fa4eaeb Migrate to rand 0.7
1d00588 Migrate ff, group, pairing, and bellman to rand 0.6
95a749b Migrate pairing to rand 0.5
01e7212 Add ff and group crates to Cargo workspace

git-subtree-dir: pairing
git-subtree-split: 3870f1172f33aa85c49426fec6c6e7040b4889f9
2020-03-03 17:44:53 -07:00
ebfull f65c37ea01 Merge pull request #30 from str4d/sapling-api-cleanup
Sapling proving and verifying API
2019-01-05 17:14:16 -07:00
ebfull c03871779a Merge pull request #54 from ebfull/travis
Add travis testing support.
2019-01-03 12:14:15 -07:00
Sean Bowe 4113df4780 Fix version string, cache cargo symbols. 2019-01-03 11:55:16 -07:00
Sean Bowe 813cf16ff2 Add travis testing support. 2019-01-03 11:51:08 -07:00
ebfull 06da3b9ac8 Merge pull request #45 from str4d/44-params-path-encoding
Use slices of native strings to pass parameter paths into Rust
2018-10-27 00:09:44 -06:00
ebfull 0b6bbfb444 Merge pull request #36 from zcash/ci_integration
CI integration for librustzcash
2018-10-10 17:26:04 -06:00
ebfull e1c6232dd7 Merge pull request #32 from str4d/cargo-workspace
Convert the repo into a Cargo workspace
2018-08-29 12:58:43 -06:00
ebfull f5d2afb4ea Merge pull request #28 from ebfull/hash-checks-of-params
Hash checks of parameter files during initialization
2018-08-02 12:12:02 -06:00
Sean Bowe 48c2d3c8da Get parameter hashes from the user, rather than supplying it ourselves. 2018-08-02 12:11:32 -06:00
Sean Bowe d4ee94c692 cargo fmt 2018-08-01 19:01:54 -06:00
Sean Bowe 98a006e0c4 Hash checks of parameter files during initialization. 2018-08-01 18:57:10 -06:00
ebfull f55a654901 Merge pull request #26 from ebfull/bump-sapling-crypto
Update sapling-crypto
2018-07-30 21:08:52 -06:00
Sean Bowe bd9b8aabb9 Update sapling-crypto 2018-07-30 18:52:03 -06:00
ebfull 21084bde20 Merge pull request #81 from ebfull/must_use
Add must_use to operations over Edwards points
2018-07-30 18:40:16 -06:00
Sean Bowe b4d41b689c Add must_use to operations over Edwards/Montgomery points. 2018-07-30 18:37:01 -06:00
ebfull b70d6e66fc Merge pull request #79 from ebfull/pedersen-hash-performance
Improve Pedersen hash performance
2018-07-30 18:29:14 -06:00
ebfull 99c03c5708 Merge pull request #80 from ebfull/cofactor-signature-checking
Cofactor signature checking
2018-07-30 11:50:26 -06:00
Sean Bowe 95b498af33 Implement specialized doubling formula for extended twisted edwards coordinates. 2018-07-30 07:30:40 -06:00
Sean Bowe 821810cd82 Change pedersen hash outside the circuit to use window table lookups. 2018-07-30 07:30:40 -06:00
Sean Bowe 9cb8accf09 Fix nits 2018-07-30 07:29:23 -06:00
Sean Bowe a57d2773ab Add demonstration implementation of batch verification. 2018-07-27 10:54:21 -06:00
Sean Bowe cae9715a8e Change signature verification equation to permit batch verification. 2018-07-27 10:37:26 -06:00
Sean Bowe 3e43cae526 Add test that torsion doesn't affect signature verification. 2018-07-27 10:28:08 -06:00
ebfull 32026ea0a1 Merge pull request #24 from ebfull/sapling_proof_api
Sapling proof API
2018-07-24 18:18:04 -06:00
Sean Bowe 22486b8269 Make librustzcash_sapling_binding_sig take context as a const pointer. 2018-07-18 15:33:19 -06:00
Sean Bowe 41ca6e8473 cargo fmt 2018-07-17 17:02:10 -06:00
Sean Bowe bcba4924ca Fix negation bug in librustzcash_sapling_check_output 2018-07-17 17:01:04 -06:00
Sean Bowe 0800976a57 Add implementation of Sapling proof API 2018-07-17 16:46:10 -06:00
ebfull c2862a4382 Merge pull request #78 from gtank/make-privatekey-public
redjubjub: make PrivateKey internal scalar public
2018-07-12 14:01:11 -06:00
Sean Bowe cc5b835102 Start using cargo-clippy for CI. 2018-07-04 22:33:59 +01:00
Sean Bowe 3b05f8f201 Apply rustfmt. 2018-06-12 15:32:57 -06:00
Sean Bowe 065154cdd1 Implementation of Sapling key agreement. 2018-06-12 15:32:20 -06:00
ebfull 36d7acf3f3 Merge pull request #12 from ebfull/little-endian
Switch to little endian encoding for everything
2018-05-18 13:25:41 -06:00
Sean Bowe f8f8954608 Update sapling-crypto 2018-05-18 12:47:35 -06:00
ebfull 6abfcca25a Merge pull request #74 from ebfull/ivk-pub
Make ivk pub
2018-05-18 12:45:38 -06:00
Sean Bowe 89f47ef5c2 Make ivk pub 2018-05-18 12:42:26 -06:00
Sean Bowe d14b12aae4 Switch to little endian encoding for everything. 2018-05-17 16:06:31 -06:00
ebfull eb409fa3cf Merge pull request #72 from ebfull/little-endian
Switch to little endian
2018-05-17 14:03:43 -06:00
Sean Bowe 2ff318eecb Use little endian for everything in Sapling. 2018-05-17 13:01:31 -06:00
Sean Bowe f491e02b56 Correctly interpret BLAKE2s inputs and outputs as little endian. 2018-05-17 13:01:31 -06:00
Sean Bowe 87c62e2248 Update to the latest pairing crate version. 2018-05-17 13:01:29 -06:00
Sean Bowe da5f1d3e37 Update to latest rustfmt 2018-05-17 11:59:20 -06:00
Sean Bowe e4143a4bbc Apply rustfmt to benchmarks 2018-05-17 10:50:56 -06:00
Sean Bowe 97bdd1655f Update clippy 2018-05-17 10:44:28 -06:00
ebfull a64c850e6d Merge pull request #10 from ebfull/small-order-checks
Check epk/rk/cv are not small order
2018-05-14 16:26:40 -06:00
Sean Bowe 63730f3846 Check epk/rk/cv are not small order. 2018-05-14 16:23:34 -06:00
Sean Bowe fefa46b4c4 Implementation of Sprout proving and verifying 2018-05-10 14:29:02 -06:00
ebfull 5e220695e5 Merge pull request #7 from ebfull/sapling-verification
Sapling verification
2018-05-07 23:37:11 -06:00
Sean Bowe 313e45cc01 Implementation of Sapling transaction verification. 2018-05-07 19:22:07 -06:00
ebfull ef676eff50 Merge pull request #8 from ebfull/minor-changes
Minor changes
2018-05-07 18:50:54 -06:00
Sean Bowe e9f8c88c95 Use little endian encoding for Pedersen hash digest output. 2018-05-07 18:06:53 -06:00
Sean Bowe d73044896e Update sapling-crypto dependency. 2018-05-07 17:52:44 -06:00
ebfull 7beeb52730 Merge pull request #69 from ebfull/make-util-pub
Make util module public
2018-05-07 17:47:31 -06:00
Sean Bowe 36cd38e239 Make util module public. 2018-05-07 17:47:04 -06:00
Sean Bowe 5f233ef989 Initialize Jubjub parameters up front 2018-05-07 17:41:49 -06:00
ebfull 3b8246f3eb Merge pull request #68 from ebfull/redjubjub-final-work
Make PublicKey inner Point public so that we can use it during zk-SNARK verification
2018-05-07 14:21:49 -06:00
Sean Bowe 5687acfaf8 Make PublicKey inner Point public so that we can use it during zk-SNARK verification. 2018-05-01 15:23:34 -06:00
ebfull 347666705c Merge pull request #67 from str4d/redjubjub-serialisation
RedJubjub serialisation
2018-04-30 08:50:03 -06:00
ebfull 6e08a5a22b Merge pull request #66 from str4d/fix-spend-nf-comment
Fix comment
2018-04-29 13:08:10 -06:00
ebfull e4175d81e9 Merge pull request #64 from str4d/redjubjub
RedJubjub
2018-04-19 12:44:39 -06:00
ebfull 6cc1813ae3 Merge pull request #4 from ebfull/zksnark-param-loading
Support loading zk-SNARK parameters
2018-04-19 10:53:12 -06:00
Sean Bowe 170397b5a5 Apply rustfmt 2018-04-17 14:22:35 -06:00
Sean Bowe 4f9953f18f Support loading zk-SNARK parameters 2018-04-17 14:16:14 -06:00
Sean Bowe 37f20fb90c Use lazy_static to initialize the Jubjub parameters, to avoid passing parameters around. 2018-04-12 18:38:25 -06:00
Sean Bowe cb8c9ebbce Make panic abort to avoid FFI problems. 2018-04-12 15:35:20 -06:00
Sean Bowe 96654ee5bd Fix typos 2018-04-12 15:01:48 -06:00
Sean Bowe f1d35708bc Expose API for init/free of parameters and, to test, a merkle tree hash invocation. 2018-04-11 21:51:30 -06:00
Sean Bowe 5199fdfcb7 Use newer versions of libc and num_cpus 2018-04-10 13:57:33 -06:00
Sean Bowe e554b473dd Update to bellman 0.1 2018-04-06 13:29:58 -06:00
ebfull 10c5010fd9 Merge pull request #22 from ebfull/final-changes
Final changes
2018-04-03 18:56:06 -06:00
Sean Bowe 96b2d3e41a Prevent trivial subversion attack against prover. 2018-04-02 22:21:42 -06:00
Sean Bowe d14f2af8fa Make fields of Parameters/VerifyingKey/Proof public. 2018-04-02 18:15:39 -06:00
ebfull 45c73dbd8f Merge pull request #54 from ebfull/sprout-circuit-minimal
Sprout circuit implementation
2018-04-02 16:55:09 -06:00
Sean Bowe 6e57ef0c4a Bump version 2018-03-31 23:23:37 -06:00
Sean Bowe 6ec7272586 Serialize lengths as 32-bit integers, not 64-bit. 2018-03-31 23:23:08 -06:00
Sean Bowe c4fd8856ae Make multicore module public for now, because Worker is part of the EvaluationDomain API. 2018-03-31 23:16:55 -06:00
Sean Bowe 2d12b9a858 Apply newer rustfmt rules. 2018-03-29 11:18:15 -06:00
Sean Bowe fcaddaa356 Update Clippy to support latest nightly, and fix some lints. 2018-03-29 10:13:00 -06:00
Sean Bowe bcc8379a7f Version bump. 2018-03-29 09:23:20 -06:00
Sean Bowe 4cf5a534ec i128_type feature has been stabilized in Rust. 2018-03-29 09:18:26 -06:00
ebfull 1026e92194 Merge pull request #63 from ebfull/gh
First block of GH invocation using random beacon output
2018-03-28 16:05:20 -06:00
Sean Bowe 9f24b68b3a Update constraint system hashes. 2018-03-27 21:41:11 -06:00
Sean Bowe 3704b2422e Fix benchmark due to anchor change in witness. 2018-03-27 21:31:32 -06:00
Sean Bowe 9418001d0e First block of GH invocation using random beacon output. 2018-03-27 14:30:08 -06:00
ebfull 470c9572eb Merge pull request #60 from ebfull/optional-enforce
Allow the authentication path to be not enforced
2018-03-27 14:27:53 -06:00
ebfull 7ee29503ec Merge pull request #61 from str4d/bench-final
Update benchmark to use final Sapling circuit implementation
2018-03-27 13:13:23 -06:00
Sean Bowe cfd378685f Add more test vectors to Sprout circuit implementation. 2018-03-26 21:47:40 -06:00
Sean Bowe def5de3f16 Allow the authentication path to be not enforced for zero-value notes, for indistinguishability. 2018-03-26 13:30:14 -06:00
Sean Bowe 4de908b1e5 Fix bug in circuit uncovered by test vector. 2018-03-21 19:21:16 -06:00
Sean Bowe 162a3877e5 JoinSplit circuit implementation for Sprout. 2018-03-21 19:21:16 -06:00
Sean Bowe ac13cb05bc Implementation of SHA256. 2018-03-21 19:21:16 -06:00
Sean Bowe 75c5269d3b Implementation of SHA256 choice/majority for UInt32. 2018-03-21 19:21:16 -06:00
Sean Bowe 36a6b5fd90 Implementation of SHA256 majority operation for Boolean. 2018-03-21 19:21:16 -06:00
Sean Bowe abca61401e Implementation of SHA256 choice operation for Boolean. 2018-03-21 19:21:16 -06:00
Sean Bowe 4f0a553fbb Implement UInt32 encoding/decoding with big-endian representation. 2018-03-21 19:21:16 -06:00
Sean Bowe 51bb5f0f70 Implement UInt32::shr() for SHA256. 2018-03-21 19:21:16 -06:00
ebfull e6397507ca Merge pull request #57 from ebfull/final-circuit-changes
Final circuit changes (part 1)
2018-03-21 19:11:08 -06:00
Sean Bowe 601e8e38f8 Little-endian byte order interpretation of the output of CRH^ivk. 2018-03-19 18:06:44 -06:00
Sean Bowe f9e58c01ce Swap bit-endianness of value in note commitment. 2018-03-19 17:54:44 -06:00