Commit Graph
100 Commits
Author SHA1 Message Date
f69e3697aa Fix of CVE-2017-18350
Adapted from bitcoin/bitcoin#11397 by Wladimir J. van der Laan.

Co-Authored-By: Jack Grigg <jack@electriccoin.co>
Co-Authored-By: Daira Hopwood <daira@electriccoin.co>
2019-11-10 07:06:29 -08:00
Sean Bowe 955b328ad1 Sapling mainnet activation height 2018-08-15 12:09:31 -06:00
Sean Bowe f791ce00eb Always write the empty root down as the best root, since we may roll back. 2018-08-14 15:17:30 -06:00
Sean Bowe c2f661109d make-release.py: Updated release notes and changelog for 2.0.0-rc1. 2018-08-09 16:56:56 +00:00
Sean Bowe 27f678b974 make-release.py: Updated manpages for 2.0.0-rc1. 2018-08-09 16:56:56 +00:00
Sean Bowe 3e9aec2a37 make-release.py: Versioning changes for 2.0.0-rc1. 2018-08-09 16:46:45 +00:00
Sean Bowe 69c4391b0f Check commitment validity within the decryption API for Sapling note plaintexts. 2018-08-08 12:03:09 -07:00
Sean Bowe 198dfd3c36 Switch to use the official Sapling parameters. 2018-08-04 16:28:39 -06:00
Sean Bowe d9ef8f622e Check the hash of the (Sapling+) zk-SNARK parameters during initialization. 2018-08-02 12:18:13 -06:00
Sean Bowe 80bd573dc2 Make changes to gtest ECC behavior suggested by @str4d. 2018-08-01 16:53:27 -06:00
Sean Bowe 262d21bcbb Don't call ECC_Start/ECC_Stop outside the test harness. 2018-08-01 16:45:12 -06:00
Sean Bowe a310f6c5fa Relocate ECC_Start() to avoid test failures. 2018-08-01 00:42:02 -06:00
Sean Bowe 3d75e8b3e7 Move extern params to beginning of test_checktransaction. 2018-07-31 08:33:33 -06:00
Sean Bowe 291895fac7 Ensure sum of valueBalance and all vpub_new's does not exceed MAX_MONEY inside of CheckTransactionWithoutProofVerification. 2018-07-30 22:35:31 -06:00
Sean Bowe 04ed758e37 Fix bug in return value. 2018-07-30 22:03:40 -06:00
Sean Bowe b7b088c46b Update librustzcash and sapling-crypto. 2018-07-30 21:59:12 -06:00
Sean Bowe f23e783600 Decryption and tests of note/outgoing encryption. 2018-07-16 18:34:14 -06:00
Sean Bowe 7478876271 Minor edits 2018-07-11 15:48:41 -06:00
Sean Bowe 4e1f2daa0d Add get_esk() function to Sapling note encryption. 2018-06-18 13:14:43 -06:00
Sean Bowe c03e22612d Prevent nonce reuse in Sapling note encryption API. 2018-06-14 12:21:28 -06:00
Sean Bowe 90073aeca5 Swap types in OutputDescription to use new NoteEncryption interfaces. 2018-06-14 12:08:37 -06:00
Sean Bowe 9e1c2c4049 Implementation of Sapling in-band secret distribution. 2018-06-14 11:58:45 -06:00
Sean Bowe 9e8e121c9f Update librustzcash 2018-06-13 15:18:23 -06:00
Sean Bowe 3577de83aa Change txdb prefixes for sapling and avoid writing unnecessary information. 2018-05-18 13:26:39 -06:00
Sean Bowe 8f5429a13a Update merkle tree and pedersen hash tests to account for new encoding 2018-05-18 13:26:39 -06:00
Sean Bowe 45f1cb440e Update Sapling testnet parameters 2018-05-18 13:26:39 -06:00
Sean Bowe b9a5a116cd Update librustzcash 2018-05-18 13:26:37 -06:00
Sean Bowe 0dfb1d5e2c Switch Rust to 1.26 Stable. 2018-05-15 16:21:37 -06:00
Sean Bowe 34f6ea95dc Adjust tests and benchmarks 2018-05-14 16:29:02 -06:00
Sean Bowe 31989317c9 Update librustzcash again 2018-05-14 16:29:00 -06:00
Sean Bowe b7a6c32178 Integrate Groth16 verification and proving. 2018-05-14 16:26:23 -06:00
Sean Bowe b4db32f53c Check Sapling Spend/Output proofs and signatures. 2018-05-08 14:30:26 -06:00
Sean Bowe 531fcc88da Update to latest librustzcash 2018-05-08 14:30:26 -06:00
Sean Bowe 55fabd8272 Refactor so that dataToBeSigned can be used later in the function for other purposes. 2018-05-08 14:28:01 -06:00
Sean Bowe 6eea48bf96 Remove unnecessary IsCoinbase() check. Coinbases are guaranteed to have empty vjoinsplit. 2018-05-08 14:23:09 -06:00
Sean Bowe 40bfb9e5b9 Swap bit endianness of test vectors 2018-05-07 18:57:04 -06:00
Sean Bowe fcbe7eef8d Update sapling-crypto and librustzcash 2018-05-07 18:56:55 -06:00
Sean Bowe f6f97dfb1c Fix miner tests 2018-05-07 14:37:46 -06:00
Sean Bowe 8c57bbac15 Fix broken error messages. 2018-05-07 14:37:46 -06:00
Sean Bowe e390a475c1 Fix outdated comment 2018-05-07 14:37:46 -06:00
Sean Bowe 98d2f090ca Evict transactions with obsolete anchors from the mempool 2018-05-07 14:37:46 -06:00
Sean Bowe 673a0a79b3 Adjust tests to handle Sapling anchor cache 2018-05-07 14:37:46 -06:00
Sean Bowe 31a04d2875 Calculate the correct hashFinalSaplingRoot in the miner. 2018-05-07 14:37:46 -06:00
Sean Bowe b4ff707605 Add support for Sapling anchor checks in mempool consistency checks. 2018-05-07 14:37:46 -06:00
Sean Bowe 1f8be05b63 Add consensus support for Sapling merkle trees. 2018-05-07 14:37:46 -06:00
Sean Bowe 85b39f57bb Add PushSaplingAnchor 2018-05-07 14:37:46 -06:00
Sean Bowe c643ff0b51 Add support for PopAnchor(.., SPROUT/SAPLING) 2018-05-07 14:37:46 -06:00
Sean Bowe 27616b9a04 Add support for Sapling anchors in coins/txdb. 2018-05-07 14:37:46 -06:00
Sean Bowe e814be60fe Rename hashSproutAnchorEnd to hashFinalSproutRoot to be consistent. 2018-05-07 14:37:46 -06:00
Sean Bowe f2c6d214e5 Rename hashSaplingAnchorEnd to hashFinalSaplingRoot to match spec. 2018-05-07 14:37:46 -06:00
Sean Bowe 7b62078782 Remove underscores from gtest test names. 2018-05-07 14:37:46 -06:00
Sean Bowe 7703a673ea Generalize the PushAnchor implementation behavior. 2018-05-07 14:37:43 -06:00
Sean Bowe 9ea4e387b2 Generalize the PopAnchor implementation behavior. 2018-05-07 13:46:06 -06:00
Sean Bowe 18322f074c Introduce support for GetBestAnchor(SAPLING). 2018-05-07 13:46:06 -06:00
Sean Bowe 2bd59e1473 Rename PushAnchor to PushSproutAnchor. 2018-05-07 13:46:06 -06:00
Sean Bowe 008f4ee8e7 Rename GetAnchorAt to GetSproutAnchorAt. 2018-05-07 13:46:06 -06:00
Sean Bowe 8b8d70cad9 Rename DB_ANCHOR to DB_SPROUT_ANCHOR. 2018-05-07 13:46:06 -06:00
Sean Bowe 30325eebf5 Add primitive implementation of GetSaplingAnchorEnd. 2018-05-07 13:46:06 -06:00
Sean Bowe 691a3fa2e9 Rename hashReserved to hashSaplingAnchorEnd. 2018-05-07 13:46:06 -06:00
Sean Bowe 08f0728884 Rename hashAnchor to hashSproutAnchor. 2018-05-07 13:46:06 -06:00
Sean Bowe d455828fdc Specifically describe anchors as Sprout anchors. 2018-05-07 13:46:06 -06:00
Sean Bowe 28d20bdb11 Rename NullifierType to ShieldedType. 2018-05-07 13:46:06 -06:00
Sean Bowe 2f23a656fb Add regression tests and test vectors for Sapling merkle tree 2018-05-07 13:46:06 -06:00
Sean Bowe 2b002a7e60 Add implementation of Sapling merkle tree 2018-05-07 13:46:06 -06:00
Sean Bowe a7cbb8475f Abstract uncommitted and depth personalization for IncrementalMerkleTree. 2018-05-07 13:46:06 -06:00
Sean Bowe 6679855147 Check that duplicate Sapling nullifiers don't exist within a transaction. 2018-04-25 17:10:34 -06:00
Sean Bowe 62ba80e766 Update librustzcash hash 2018-04-19 13:00:28 -06:00
Sean Bowe acfcdb94b9 Load Sapling testnet parameters into memory. 2018-04-17 15:04:46 -06:00
Sean Bowe 65dc30c5a1 Update librustzcash hash 2018-04-14 19:33:10 -06:00
Sean Bowe 341b775b19 Link with -ldl 2018-04-13 22:26:24 -06:00
Sean Bowe 395bcd3647 Invoke the merkle_hash API in librustzcash via test suite. 2018-04-13 22:26:22 -06:00
Sean Bowe e6bbd8481e Switch to latest librustzcash 2018-04-12 18:52:00 -06:00
Sean Bowe 394f41853b Integrate low memory prover. 2017-11-01 02:11:49 +13:00
Sean Bowe c8a7f74753 Add streaming prover. 2017-11-01 02:11:49 +13:00
Sean Bowe abf4af12df Refactor proof generation function. 2017-11-01 02:11:46 +13:00
Sean Bowe 1a9543d064 Remove crusty old "loadVerifyingKey"/"loadProvingKey" APIs and associated invariants. 2017-10-21 15:42:41 +03:00
Sean Bowe 26a8f68ea8 Remove libsnark from depends system and integrate it into build system. 2017-08-02 15:49:30 +01:00
Sean Bowe 15a9937654 Revert "Delete old protocol version constants and simplify code that used them."
This reverts commit 5a49c929dd.
2017-06-23 18:19:25 -06:00
Sean Bowe 9ad9a25eff Revert "Remove an unneeded version workaround as per @str4d's review comment."
This reverts commit 1e9db0b38a.
2017-06-23 18:19:17 -06:00
Sean Bowe 9eb9eebbb8 Check that pairings work properly when the G1 point is at infinity. 2017-05-23 16:31:41 -06:00
Sean Bowe 802ea76b3a Allow Rust-language related assets to be disabled with --disable-rust. 2017-03-18 07:47:40 -06:00
Sean Bowe 6a0c7ceae9 Introduce librustzcash and Rust to depends system. 2017-03-17 11:46:41 -06:00
Sean Bowe 69566ad756 Update libsnark. 2017-02-09 15:30:09 -07:00
Sean Bowe 05ec7887f1 Fix use after free in transaction_tests. 2017-02-09 14:35:33 -07:00
Sean Bowe 0d317cd522 Bump protocol version in release process if necessary. 2017-02-09 14:25:20 -07:00
Sean Bowe 5046d8cd05 Update release notes and Debian package. 2017-01-19 19:25:00 -07:00
Sean Bowe b8f737b364 Bump version to 1.0.5. 2017-01-19 19:21:32 -07:00
Sean Bowe 620c0e2845 Add test for z_importkey rescanning from beginning of chain. 2017-01-19 16:59:29 -07:00
Sean Bowe fc31ea8739 Add 'CreateJoinSplit' standalone utility to gitignore. 2017-01-05 00:31:22 -07:00
Sean Bowe fc538ec2ea Add test for IncrementalMerkleTree::size(). 2016-12-16 13:50:55 -07:00
Sean Bowe c4fce3fc81 Check that E' points are actually in G2 by ensuring they are of order r. 2016-12-12 19:14:42 -07:00
Sean Bowe 37cce214a4 ASSERT_TRUE -> ASSERT_FALSE 2016-12-08 23:14:23 -07:00
Sean Bowe 690171e268 Add more tests for ProofVerifier. 2016-12-08 12:47:41 -07:00
Sean Bowe eb82238dd0 Rename Dummy to Disabled. 2016-12-08 12:32:39 -07:00
Sean Bowe 53dc6a41eb Ensure ProofVerifier cannot be accidentally copied. 2016-12-06 18:42:31 -07:00
Sean Bowe ebd9aa11b1 Ensure cache contains valid entry when anchor is popped. 2016-12-06 12:54:56 -07:00
Sean Bowe 08de001a25 Regression test. 2016-12-06 12:54:53 -07:00
Sean Bowe bc59f53722 Isolate verification to a ProofVerifier context object that allows verification behavior to be tuned by the caller. 2016-12-05 12:40:06 -07:00
Sean Bowe f398a94766 Anchors and nullifiers should always be inherited from the parent cache. 2016-11-17 11:43:54 -07:00
Sean Bowe 3e2e8b5b42 Add test that last and element will throw exception when the tree is blank. 2016-11-15 12:17:19 -07:00