Commit Graph
100 Commits
Author SHA1 Message Date
Jack Grigg 1fbf38280e Fix intra-doc links 2019-09-24 10:42:49 +01:00
Jack Grigg d9a0b9c83f CI: Check intra-doc links
Credit: https://twitter.com/tomaka17/status/1176017851410526208
2019-09-24 10:35:12 +01:00
Jack Grigg 1d02363752 Add READMEs to Cargo.toml files
This will cause crates.io to render each crate's README as its
information page.
2019-09-23 14:42:38 +01:00
str4d 30660e1d1c Merge pull request #128 from str4d/125-zip-32-seed-length
Panic if spending_key is given a seed shorter than 32 bytes
2019-09-19 06:52:10 -04:00
str4d d2da9cfcb0 Merge pull request #127 from str4d/more-crate-updates
More crate updates
2019-09-18 11:44:13 -04:00
Jack Grigg 450087e280 Add test for spending_key panic on short seed 2019-09-17 23:58:14 +01:00
Jack Grigg 9377b78b35 Panic if spending_key is given a seed shorter than 32 bytes
This enforces the MUST requirement in ZIP 32. A panic is used instead of
an error because this should be considered an implementation error.
Ideally the type system would prevent this from occurring at all.

Closes #125.
2019-09-17 21:28:23 +01:00
Jack Grigg 28dcc1c346 bellman: Fix compile errors without multicore feature 2019-09-12 19:38:52 +01:00
Jack Grigg b397a9c405 cargo update 2019-09-12 19:38:51 +01:00
Jack Grigg 0a3b0a9341 Upgrade to hex-literal 0.2 2019-09-12 19:38:51 +01:00
Jack Grigg 89dad572ef Migrate bellman to crossbeam 0.7 2019-09-12 19:38:50 +01:00
Jack Grigg bef3e7e336 Migrate ff_derive to proc-macro2 1.0 2019-09-06 19:03:12 -04:00
str4d 2b6fbfd2d1 Merge pull request #109 from str4d/paymentaddress-encapsulation
PaymentAddress encapsulation
2019-09-06 15:43:48 -04:00
Jack Grigg d6f6b50ecd Check try_sapling_output_recovery fails with identity as pk_d 2019-09-04 19:48:39 -04:00
Jack Grigg abbd43ff57 Make pk_d validity an invariant of PaymentAddress
Introduces a PaymentAddress::from_parts constructor, and getters for
the diversifier and pk_d fields (which are now private).
2019-09-04 19:48:35 -04:00
Jack Grigg 86142d044c PaymentAddress::to_bytes 2019-09-04 19:46:46 -04:00
Jack Grigg 73ee19239c Replace manual address decoding with PaymentAddress::from_bytes 2019-09-04 19:46:46 -04:00
str4d b19b40ccf0 Merge pull request #110 from str4d/crate-cleanups
Crate cleanups
2019-09-04 19:44:47 -04:00
str4d 0da4921055 Merge pull request #116 from str4d/code-coverage
Add code coverage with cargo-tarpaulin and Codecov
2019-08-29 09:58:19 +01:00
Jack Grigg c00b65bb78 Extend Travis CI timeout 2019-08-29 01:06:41 +01:00
Jack Grigg ee9c88ecb0 Exclude slow tests from code coverage 2019-08-28 20:46:23 +01:00
Jack Grigg f9f17b291f Add code coverage with cargo-tarpaulin and Codecov 2019-08-28 12:26:54 +01:00
str4d 563961e606 Merge pull request #115 from str4d/windows-typo
librustzcash: Fix typo in Windows parameter init; Correctly map sprout_path. Includes a GitHub actions improvement
2019-08-26 13:09:57 +01:00
Jack Grigg 0c7eb84d36 impl FromStr for Memo
Memo::from_str was previously shadowing a built-in trait method.
2019-08-24 00:40:32 +01:00
Jack Grigg 7c1d4d9a5b Log distinct error cases in Equihash verification 2019-08-24 00:40:30 +01:00
Jack Grigg 9016548698 Take self directly in into_* functions 2019-08-24 00:39:55 +01:00
Jack Grigg fe93f2ff6b Rename into_ -> to_ where &self is used. 2019-08-24 00:39:54 +01:00
Jack Grigg 91541675e2 Address various clippy warnings/errors in zcash_proofs 2019-08-24 00:39:53 +01:00
Jack Grigg 3a8efd9e67 Address various clippy warnings/errors in zcash_primitives 2019-08-24 00:39:49 +01:00
Jack Grigg d65fe2cda9 Address various clippy warnings/errors in bellman 2019-08-24 00:38:32 +01:00
Jack Grigg d78c94b2a2 Move Equihash validator into zcash_primitives 2019-08-24 00:37:00 +01:00
str4d ad33798244 Merge pull request #113 from Eirik0/edition-2018-clean-up
Edition 2018 clean up
2019-08-24 00:34:57 +01:00
Jack Grigg ba3705cb5e librustzcash: Correctly map sprout_path 2019-08-23 12:26:19 +01:00
Jack Grigg 5e706d5d84 Actions: Trigger testing workflow on pull_request 2019-08-23 12:13:23 +01:00
Jack Grigg 894421f3b5 librustzcash: Fix typo in Windows parameter init 2019-08-23 12:01:01 +01:00
str4d 4014f08105 Merge pull request #112 from zcash/github-workflow
Add a GitHub Actions workflow
2019-08-23 09:56:36 +01:00
str4d 724e822d2d Merge pull request #98 from paracetamolo/optional-sprout-parameters
Make initialization of sprout validation key optional
2019-08-22 16:50:27 +01:00
Jack Grigg 7ad0452c01 Add macOS support to GitHub Actions workflow 2019-08-22 15:10:28 +01:00
Jack Grigg f1b6e88f9f Add a GitHub Actions workflow for Ubuntu and Windows 2019-08-20 23:46:53 +01:00
str4d 7b11d64cf9 Merge pull request #111 from jimpo/master
Fix off-by-one so pedersen_hash doesn't consume too many generators.
2019-08-20 21:14:48 +01:00
str4d 3584485516 Merge pull request #104 from str4d/remove-sapling-crypto
Refactor to remove sapling-crypto
2019-08-15 17:20:07 +01:00
Jack Grigg 1b865ecfdf Remove sapling-crypto 2019-08-14 10:48:06 +01:00
Jack Grigg 5fb9b86ba0 Move Jubjub, Pedersen hash and primitives into zcash_primitives 2019-08-14 10:47:22 +01:00
Jack Grigg b8af749b40 Move generic circuit gadgets into bellman 2019-08-14 10:45:58 +01:00
Jack Grigg 61c633db1e Move Jubjub and Pedersen hash gadgets into zcash_proofs
These are currently too Zcash-specific to be generalized, and need some
targeted refactoring.
2019-08-14 10:45:57 +01:00
Jack Grigg 2ae5804a67 Move Sprout and Sapling circuits into zcash_proofs 2019-08-14 10:45:55 +01:00
Jack Grigg 7ea6d10480 Move redjubjub into zcash_primitives 2019-08-14 10:43:25 +01:00
str4d f931562431 Merge pull request #94 from str4d/upgrade-deps
Upgrade dependencies
2019-08-14 10:39:42 +01:00
Jack Grigg 81786c24c0 Fix clippy linter errors in pairing crate 2019-08-14 01:14:05 +01:00
Jack Grigg 13933d8c51 Use modern clippy linter syntax 2019-08-14 01:14:04 +01:00
Jack Grigg 3e35dd215c cargo update 2019-08-14 01:14:02 +01:00
Jack Grigg 3211536324 Upgrade to crypto_api_chachapoly >= 0.2.1 2019-08-14 01:12:26 +01:00
Jack Grigg ec321382e1 Upgrade to bech32 0.7 2019-08-14 01:12:25 +01:00
Jack Grigg a12b8053b0 Upgrade to digest 0.8 2019-08-14 01:12:24 +01:00
Jack Grigg 2f1cae62b1 Upgrade to fpe 0.2 2019-08-14 01:12:23 +01:00
str4d 52ea437e11 Merge pull request #92 from str4d/transaction-builder
Transaction builder
2019-08-14 01:11:12 +01:00
Jack Grigg a28d94ff2e Panic if Amount addition or subtraction overflows 2019-08-14 00:16:09 +01:00
Jack Grigg 1760b275a7 Simplify transaction builder tests
Requires impl PartialEq for Transaction, which is implemented as a TxId
comparison (relying on the invariant that Transaction is immutable).
2019-08-13 15:24:08 +01:00
Jack Grigg 3a73f946c5 Simplify structure of transaction builder errors 2019-08-13 15:10:57 +01:00
Jack Grigg e6663212ff Improve documentation for Amount 2019-08-08 09:21:09 +01:00
Jack Grigg 7c07914bfd Separate Amount::{from_i64, from_nonnegative_i64} APIs
This is more intuitive than a boolean flag for handling non-negative
Amounts stored in i64 values.
2019-08-08 00:55:23 +01:00
str4d 4255b44b21 Merge pull request #13 from str4d/nullifier-test-vectors
Test note nullifier in key component test vectors
2019-08-02 10:03:07 +01:00
Jack Grigg 59ed258c7f Make Amount opaque, and use it more
This helps to ensure type-safety of values that are required to satisfy
zatoshi range bounds.
2019-07-27 00:35:29 +01:00
Jack Grigg ab60b8804a impl operators for Amount 2019-07-27 00:35:28 +01:00
Jack Grigg 0ea4408d46 Amount::{zero, is_positive, is_negative} 2019-07-27 00:35:27 +01:00
Jack Grigg fa50d551c8 Move Amount impl into a submodule 2019-07-27 00:35:26 +01:00
Jack Grigg 17f6bbcc67 Pass tx builder RNG to spend_sig() 2019-07-27 00:35:04 +01:00
Jack Grigg 532299d46e Allow transaction::Builder RNG to be configured 2019-07-27 00:32:56 +01:00
Jack Grigg 4b61120cd0 Pass tx builder RNG to SaplingNoteEncryption 2019-07-27 00:31:16 +01:00
Jack Grigg 54ef63bace Place zcash_proofs::prover::LocalTxProver behind a feature flag
This enables zcash_proofs to be compiled to WASM, which the directories
crate doesn't support.
2019-07-27 00:28:03 +01:00
Jack Grigg a1cd9dfbac transaction::Builder::add_transparent_output() 2019-07-27 00:28:02 +01:00
Jack Grigg c26188a0bb TransparentAddress struct for P2PKH and P2SH 2019-07-27 00:28:01 +01:00
Jack Grigg dab3c002b7 Script opcode and data support
Overrides the shift-left operator for pushing opcodes onto the Script,
matching the notation used in zcashd.
2019-07-27 00:28:00 +01:00
Jack Grigg 1862354ea6 Sapling transaction builder 2019-07-27 00:27:50 +01:00
Jack Grigg 01618038bf TxProver trait to abstract over the circuit parameters
An implementation using local parameters is provided in the zcash_proofs
crate.
2019-07-26 23:56:00 +01:00
str4d 05f098e893 Merge pull request #91 from str4d/upgrade-rand
Upgrade rand crate dependency to 0.7
2019-07-26 23:31:42 +01:00
str4d 5a48d179b8 Merge pull request #90 from adityapk00/paperwallet
Make some methods pub for use in External Wallet Generators

The exposed APIs may change in future crate versions.
2019-07-22 13:25:25 +01:00
Jack Grigg c4e14ad0b1 Address libc deprecations 2019-07-19 00:47:42 +02:00
Jack Grigg 6f9083b5ab Migrate to rand 0.7 2019-07-19 00:47:40 +02:00
Jack Grigg b0913afdd7 Migrate remaining crates to rand_core 0.4 2019-07-19 00:46:37 +02:00
Jack Grigg 8f7adec0d9 Migrate zcash_primitives to rand_core 0.4 2019-07-19 00:46:37 +02:00
Jack Grigg 60d344a0a7 Migrate sapling-crypto to rand_core 0.4 2019-07-19 00:46:34 +02:00
Jack Grigg 83e1af104e Migrate ff, group, pairing, and bellman to rand 0.6 2019-07-19 00:42:39 +02:00
Jack Grigg 5728bda2c1 Replace rust-crypto with sha2 in sapling-crypto dev-dependencies
This removes rand < 0.5 from our Cargo.lock.
2019-07-19 00:35:06 +02:00
Jack Grigg ccf75c39c1 Migrate remaining crates to rand 0.5 2019-07-19 00:35:06 +02:00
Jack Grigg 6149166ccb Migrate zcash_primitives to rand 0.5 2019-07-19 00:35:06 +02:00
Jack Grigg adfc88926b Migrate sapling-crypto to rand 0.5 2019-07-19 00:35:06 +02:00
Jack Grigg 4606a0cefb Migrate bellman to rand 0.5 2019-07-19 00:35:06 +02:00
Jack Grigg a7e22b3550 Migrate pairing to rand 0.5 2019-07-19 00:35:06 +02:00
Jack Grigg ce6e2a5825 Migrate group to rand 0.5 2019-07-19 00:35:06 +02:00
Jack Grigg 7a6642b221 Migrate ff to rand_core 0.3 (used by rand 0.5) 2019-07-19 00:35:06 +02:00
str4d 9e758dc7d9 Merge pull request #83 from str4d/blake2_simd
Migrate to blake2b_simd and blake2s_simd crates
2019-07-18 17:41:59 +01:00
str4d 8361674efc Merge branch 'master' into blake2_simd 2019-07-18 18:22:20 +02:00
str4d 5e3409ea85 Merge pull request #68 from str4d/sapling-commitment-tree
Sapling commitment tree
2019-07-15 16:52:46 +02:00
Jack Grigg 504c3eaeae Address Daira's review comments 2019-07-15 16:33:43 +02:00
Jack Grigg 07dbfbef59 Address Eirik's review comments 2019-07-10 13:53:22 -04:00
Jack Grigg 79006ecbdf Unify Sapling tree depth constants
When sapling-crypto is refactored, the zcash_primitives::sapling
constant would become the canonical one.
2019-07-10 13:53:22 -04:00
Jack Grigg e67560b154 Document merkle_tree module 2019-07-10 13:53:22 -04:00
Jack Grigg b9cea33804 Move merkle_tree::Node into sapling module
This makes the merkle_tree module properly generic over the tree hash.
It still hard-codes a depth 32 tree, because Rust doesn't yet support
generic sizes, and we are unlikely to need to alter the tree depth in
future circuit changes.
2019-07-10 13:53:22 -04:00
Jack Grigg 263bbe1207 Use Iterator::all() in place of Iterator::fold() 2019-07-10 13:53:22 -04:00