Commit Graph
100 Commits
Author SHA1 Message Date
Jack Grigg af9f9c17ee Add 'ff/' from commit '661558e0c8a5e02e08dac6530d39b2e38919aa04'
git-subtree-dir: ff
git-subtree-mainline: 07955092f3
git-subtree-split: 661558e0c8
2019-01-06 09:37:22 +00:00
Jack Grigg 07955092f3 Update librustzcash crate to use ff crate 2019-01-06 09:36:32 +00:00
Jack Grigg 00983c48cd Update zcash_proofs crate to use ff crate 2019-01-06 09:32:50 +00:00
Jack Grigg 538de482f3 Update zcash_primitives crate to use ff crate 2019-01-06 09:31:20 +00:00
Jack Grigg 2e408957db Update zip32 crate to use ff crate 2019-01-06 09:22:10 +00:00
Jack Grigg 22ccd1bceb Update sapling-crypto crate to use ff crate 2019-01-06 09:22:03 +00:00
Jack Grigg 76cd0d92bb Merge commit '4272cfa5b0dceac471bef115955e1534be84a018' into ff-traits
git-subtree-dir: bellman
git-subtree-split: 4272cfa5b0
2019-01-06 09:21:44 +00:00
Jack Grigg 88746e76fa Cargo.lock changes after pairing update 2019-01-06 09:20:00 +00:00
Jack Grigg 794cf79db2 Merge commit '3d41ee5abaa4888ff3607689aba007be8856816d' into ff-traits
git-subtree-dir: pairing
git-subtree-split: 3d41ee5aba
2019-01-06 09:19:29 +00:00
Jack Grigg 9f7e5fa3ce Dependency updates after pairing update 2019-01-06 09:02:30 +00:00
Jack Grigg fe16e4a412 Merge commit '183a64b08e9dc7067f78624ec161371f1829623e' into ff-traits
git-subtree-dir: pairing
git-subtree-split: 183a64b08e
2019-01-06 09:01:44 +00:00
Jack Grigg 1a1c77536d cargo fmt 1.31.1 2019-01-03 21:52:06 +00:00
Jack Grigg e378229bdd Move Sapling proving and binding signature into zcash_proofs crate 2018-12-01 00:10:51 +00:00
Jack Grigg 922ffe6002 Refactor Sapling proving and binding signature 2018-12-01 00:06:50 +00:00
Jack Grigg e1841806c5 Move Sapling verification checks into zcash_proofs crate 2018-11-30 23:53:10 +00:00
Jack Grigg eb2db2e667 Refactor Sapling verification checks 2018-11-30 23:50:50 +00:00
Jack Grigg c9b23dfdef Extract single-TxOut hashing from signature_hash_data() for clarity 2018-11-30 23:13:39 +00:00
Jack Grigg e25b614573 Match error message in Amount::Read_i64() to allow_negative value 2018-11-30 23:04:04 +00:00
Jack Grigg 7ff32b04d6 Document enforcement of consensus rules on transaction components 2018-11-30 22:59:48 +00:00
Jack Grigg d707ebd321 Use Option<[u8; N]> for JoinSplit pubkey and signature in a transaction 2018-11-30 01:08:45 +00:00
Jack Grigg 9b06205ed6 Reject unexpected binding sig during transaction write 2018-11-30 00:54:30 +00:00
Jack Grigg 61ce4dd3d6 Enforce range checks when reading Amounts 2018-11-30 00:30:37 +00:00
Jack Grigg 9282c7da29 Replace tx_read_write() test vector with one from current testnet chain 2018-11-16 09:50:27 +00:00
Jack Grigg 2d2e4aad86 Pass &[E] into Vector::write() instead of &Vec<E> 2018-11-16 08:55:06 +00:00
Jack Grigg cc183efda4 Define MAX_SIZE constant for CompactSize serialization 2018-11-16 08:52:53 +00:00
Jack Grigg 1f11c404dc Convert Transaction into a wrapping struct with impl Deref
Users who have a Transaction can now only obtain an immutable reference
to its underlying data.
2018-11-09 08:34:49 +13:00
Jack Grigg 0c81695731 ZIP 243 2018-11-09 08:34:49 +13:00
Jack Grigg 2d8b1fe504 ZIP 143 2018-11-09 08:34:38 +13:00
Jack Grigg bbec1b841d Use slices of native strings to pass parameter paths into Rust
On Windows, the slices are [u16] representing UTF-16. On all other
platforms, the slices are [u8] in the native filesystem encoding.

Closes #44.
2018-10-27 16:27:49 +13:00
Jack Grigg 041671f642 Merge branch 'zcash-2.0.1' 2018-10-11 20:57:50 +01:00
Jack Grigg e490b79907 Transaction serialization 2018-10-11 18:05:50 +01:00
Jack Grigg 91ff2c71cf Helper for serializing CompactSize-prefixed vectors 2018-10-11 17:48:12 +01:00
Jack Grigg 77ee1d6a8f ZIP 32 APIs 2018-08-30 00:05:49 +01:00
Jack Grigg 6e0364cd42 Update workspace after pulling in zip32 crate 2018-08-29 09:57:52 +01:00
Jack Grigg 6526b9fb53 Add 'zip32/' from commit '176470ef41583b5bd0bd749bd1b61d417aa8ec79'
git-subtree-dir: zip32
git-subtree-mainline: a9059c9372
git-subtree-split: 176470ef41
2018-08-29 09:55:40 +01:00
Jack Grigg a9059c9372 Update workspace after pulling in external crates 2018-08-28 23:06:15 +01:00
Jack Grigg 051027cb6d Add 'sapling-crypto/' from commit '21084bde2019c04bd34208e63c3560fe2c02fb0e'
git-subtree-dir: sapling-crypto
git-subtree-mainline: 9f748554d0
git-subtree-split: 21084bde20
2018-08-28 23:04:13 +01:00
Jack Grigg 9f748554d0 Add 'bellman/' from commit '10c5010fd9c2ca69442dc9775ea271e286e776d8'
git-subtree-dir: bellman
git-subtree-mainline: e924247e73
git-subtree-split: 10c5010fd9
2018-08-28 23:03:52 +01:00
Jack Grigg e924247e73 Add 'pairing/' from commit '09b6e6f9212020f385218e5cf5287e381ccd312b'
git-subtree-dir: pairing
git-subtree-mainline: ad16ba6a35
git-subtree-split: 09b6e6f921
2018-08-28 23:03:42 +01:00
Jack Grigg ad16ba6a35 Empty crates as a base for code refactoring 2018-08-28 22:24:14 +01:00
Jack Grigg 0ec85d362d Set up a Cargo workspace 2018-08-23 21:10:04 +01:00
Jack Grigg d7257ce010 Move librustzcash crate into subdir 2018-08-23 21:04:02 +01:00
Jack Grigg 6671234ad1 cargo fmt 2018-08-22 23:59:40 +01:00
Jack Grigg 770c4bef25 Simplify creation of FVKFingerprint and FVKTag 2018-08-22 23:59:20 +01:00
Jack Grigg e27fc674f5 Tidy up DiversifierIndex::increment() 2018-08-22 23:45:56 +01:00
Jack Grigg 5c16673724 cargo fmt 2018-08-20 12:47:43 +01:00
Jack Grigg ac8b27a5ba Expose contents of DiversifierIndex 2018-08-03 13:22:50 +01:00
Jack Grigg a4e86be665 Check ivk in test vectors 2018-08-03 13:22:35 +01:00
Jack Grigg 80130f5656 Expose underlying ExpandedSpendingKey and FullViewingKey for writing 2018-08-01 10:41:50 +01:00
Jack Grigg 599079fafe Rename xsk: ExpandedSpendingKey -> expsk to disambiguate 2018-08-01 10:38:07 +01:00
Jack Grigg 39f978bb4f ExtendedSpendingKey::read() and ExtendedFullViewingKey::read() 2018-08-01 10:33:37 +01:00
Jack Grigg 9c9607e47a Add missing wrapping_add() caught by test vectors 2018-08-01 03:00:19 +01:00
Jack Grigg 342d97ac15 Test vectors from Python implementation 2018-08-01 02:52:41 +01:00
Jack Grigg e47cafd691 ExtendedSpendingKey::write() and ExtendedFullViewingKey::write() 2018-08-01 02:51:18 +01:00
Jack Grigg 3b31854de7 Payment address derivation 2018-07-31 17:24:02 +01:00
Jack Grigg fea07c52de Diversifier derivation 2018-07-31 17:24:02 +01:00
Jack Grigg f5d6091c93 Path derivation 2018-07-31 17:24:02 +01:00
Jack Grigg e87fb329f9 Child key derivation 2018-07-31 17:24:02 +01:00
Jack Grigg 0e1d440287 Serialization and fingerprint for ExpandedSpendingKey and FullViewingKey 2018-07-31 17:24:02 +01:00
Jack Grigg 2fdfa4b671 ExtendedSpendingKey::master() 2018-07-31 17:24:02 +01:00
Jack Grigg 8db848139b Basic conversions 2018-07-31 17:24:02 +01:00
Jack Grigg 1b8da6b12d ZIP 32 structures 2018-07-31 17:23:58 +01:00
Jack Grigg 1e3f7739a3 Empty crate 2018-07-10 23:23:02 +01:00
Jack Grigg 4272cfa5b0 Make pairing and groth16 optional 🎉 2018-07-06 21:51:22 +01:00
Jack Grigg 276e09f1fb Use ff:ScalarEngine instead of pairing::Engine in bellman core 2018-07-06 21:37:28 +01:00
Jack Grigg 3e8f2f8202 Use group crate for curve traits and wNAF 2018-07-06 21:24:03 +01:00
Jack Grigg 718b25c949 Use ff crate for Field traits 2018-07-06 21:10:44 +01:00
Jack Grigg 3d41ee5aba Remove now-unused imports from root 2018-07-05 19:37:01 +01:00
Jack Grigg 7dfc50e763 Use group crate for curve traits 2018-07-05 19:36:55 +01:00
Jack Grigg fa8103764a cargo fmt 2018-07-04 22:34:42 +01:00
Jack Grigg c5b883f91e Migrate to ff 0.4 2018-07-04 22:34:38 +01:00
Jack Grigg 4752a91781 Remove clippy from dependencies. 2018-07-04 22:34:21 +01:00
Jack Grigg 526676ecfc Bump version to 0.4.0 2018-07-02 23:08:13 +01:00
Jack Grigg 2067360930 Add ScalarEngine trait
This is extracted from pairing's Engine trait.
2018-07-02 23:08:12 +01:00
Jack Grigg 0eb9f5040b Remove u128-support feature and arithmetic
Closes #2.
2018-07-02 23:08:11 +01:00
Jack Grigg 69ce66ae6c Place ff_derive re-exports behind a feature
Part of #3.
2018-07-02 23:08:08 +01:00
Jack Grigg 002173e187 Update README.md
Closes #4.
2018-07-02 23:08:03 +01:00
Jack Grigg 06a152734c Add missing SqrtField import to benches 2018-07-02 18:41:55 +01:00
Jack Grigg c49590bab7 Change all remaining uses of *Field to reference ff crate 2018-07-02 16:04:52 +01:00
Jack Grigg bb22a167af Update authors 2018-07-02 15:51:32 +01:00
Jack Grigg defdf8df52 Connect ff u128-support to pairing u128-support 2018-07-02 15:49:47 +01:00
Jack Grigg a9d8079c2a Replace implementations of Fq and Fr with derives 2018-07-02 15:48:12 +01:00
Jack Grigg d9d711ebb7 Use explicit imports instead of re-exporting the ff crate 2018-07-02 15:48:12 +01:00
Jack Grigg 1db099f1cc Use ff crate for Field traits 2018-07-02 15:47:52 +01:00
Jack Grigg 91a8dc8284 Update rand crate 2018-07-02 09:18:34 +01:00
Jack Grigg 4c984595e5 Add full paths for some manually-implemented derives
This further reduces the difference between pairing's manual and derived
implementations.
2018-07-02 09:16:42 +01:00
Jack Grigg 623dbd0d74 [MOVEONLY] Move generated code around slightly in ff_derive
This reduces the differences in the generated code between the current
implementations of Fq and Fr in pairing, and their derived versions.
2018-07-02 09:16:42 +01:00
Jack Grigg b0b754ba04 Return constants and sqrt impls separately for individual rendering 2018-07-02 09:16:42 +01:00
Jack Grigg 5a48059a14 Integrate changes to trait impls from pairing into ff_derive 2018-07-02 09:16:42 +01:00
Jack Grigg 29a9161981 Implement changes to traits in ff_derive 2018-07-02 09:16:42 +01:00
Jack Grigg 58cb06ee92 Pull in trait changes from pairing 2018-07-02 09:16:22 +01:00
Jack Grigg 8201a3933f Pull in arith changes from pairing 2018-06-28 14:31:14 -04:00
Jack Grigg 1a3a2bec74 Update other ff_derive dependencies 2018-06-28 10:18:55 -04:00
Jack Grigg 428f463555 Migrate ff_derive to syn 0.14 and quote 0.6 2018-06-28 10:17:57 -04:00
Jack Grigg 755fc7aba8 cargo fmt 2018-06-27 07:31:53 -04:00
Jack Grigg b27dc2914b Remove redundant signature check
E::Fs guarantees its representation is in the field, implicitly enforcing
that S < order(G).
2018-04-30 13:55:41 +01:00
Jack Grigg e94dbf2523 Parameterize the generator in RedJubjub
Per the specification, the generator is different between BindingSig and
SpendAuthSig.
2018-04-26 22:42:54 +01:00
Jack Grigg 4eab1fc68a Implement RedJubjub serialization
Also alters the Signature struct to store Rbar and Sbar instead of R and S,
to more closely match the specification.
2018-04-26 22:42:20 +01:00
Jack Grigg f54feda94f Fix comment
h/t omershlo from Zcash Community Chat for spotting it!
2018-04-26 12:30:08 +01:00
Jack Grigg 840c23bd23 Specify pre-conditions for signature validation 2018-04-19 16:17:40 +01:00