Commit Graph
77 Commits
Author SHA1 Message Date
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 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 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 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
Jack Grigg 45e4ca38e4 Match additive notation with variable name 2018-04-18 23:59:22 +01:00
Jack GriggandSean Bowe 916dbce2df Implement RedJubjub
Co-authored-by: Sean Bowe <ewillbefull@gmail.com>
2018-04-17 00:40:11 +01:00
Jack GriggandSean Bowe 0f230a70b9 Implement uniform sampling of Jubjub scalars
Co-authored-by: Sean Bowe <ewillbefull@gmail.com>
2018-04-15 15:52:45 -06:00
Jack Grigg 97bead9977 Update benchmark to use final Sapling circuit implementation 2018-03-27 16:03:02 +02:00
Jack Grigg d715e812bd Un-disable benchmark 2018-03-24 00:40:16 +01:00