Commit Graph

1109 Commits

Author SHA1 Message Date
therealyingtong 72f1ca6b45 spec.rs: Check that commit_ivk returns a nonzero base. 2022-03-16 01:28:13 +08:00
Kris Nuttycombe f4587f790d
Merge pull request #295 from nuttycom/bundle_decrypt_with_ovks
Add convenience methods on `Bundle` to decrypt actions with OVKs.
2022-03-15 09:30:03 -06:00
Kris Nuttycombe 40efd57757
Apply suggestions from code review
Co-authored-by: Daira Hopwood <daira@jacaranda.org>
2022-03-15 07:47:21 -06:00
Kris Nuttycombe 45a6a30b21 Add convenience methods on `Bundle` to decrypt actions with OVKs.
This renames `decrypt_outputs_for_keys` to `decrypt_outputs_with_keys`
for consistency with `decrypt_output_with_key` and tne newly added
`recover_output*_with_ovk*` methods.
2022-03-14 19:28:47 -06:00
str4d 3ddf6c49f7
Merge pull request #293 from zcash/merge-non-consensus-changes-2
Merge non-consensus changes again
2022-02-28 21:17:26 +00:00
Jack Grigg f983242986 Update changelog 2022-02-28 20:59:55 +00:00
Jack Grigg eb7a9668aa Merge branch 'non-consensus-changes-on-branchid-c4cd541e' into merge-non-consensus-changes-2 2022-02-28 20:46:55 +00:00
str4d a5f701f318
Merge pull request #292 from zcash/debug-trait-bounds
Add missing `Debug` trait bounds for `Builder` components
2022-02-28 20:34:47 +00:00
Jack Grigg def4d4d9ae Add missing `Debug` trait bounds for `Builder` components
All relevant types have `Debug` impls, but some of the trait and method
impls were lacking `Debug` bounds on their generic types. This prevented
`Debug` impls being used on the overall partially-constructed `Bundle`
types.
2022-02-28 20:09:30 +00:00
Kris Nuttycombe 8449fd133c Merge branch 'update_incrementalmerkletree' into non-consensus-changes-on-branchid-c4cd541e 2022-02-24 13:15:31 -07:00
Kris Nuttycombe 273662c00b
Apply suggestions from code review
Co-authored-by: str4d <thestr4d@gmail.com>
2022-02-24 09:16:39 -07:00
Kris Nuttycombe e32a075ef0 Update the incremental merkle tree version and the Rust toolchain.
Use derived equality and ordering (which delegate to constant-time
versions) for note::nullifier::Nullifier and tree::MerkleHashOrchard
so that these types can be used as map keys in wallets.
2022-02-24 09:12:12 -07:00
Kris Nuttycombe 1cf828fe7b Update the incremental merkle tree version and the Rust toolchain.
Use derived equality and ordering (which delegate to constant-time
versions) for note::nullifier::Nullifier and tree::MerkleHashOrchard
so that these types can be used as map keys in wallets.
2022-02-23 20:43:02 -07:00
str4d 3b8d07f7b6
Merge pull request #289 from zcash/internal-fvk
Add `FullViewingKey::derive_internal`
2022-02-22 14:06:23 +00:00
Jack Grigg 65f3e6ec32 Add `FullViewingKey::derive_internal`
This is identical to the changes introduced in zcash/orchard#270, except
that the output is non-optional (since the derivation is non-fallible).
2022-02-21 14:41:47 +00:00
Dimitris Apostolou b96533a2b8
Fix typos 2022-02-18 23:31:27 +02:00
str4d f1795f8068
Merge pull request #286 from zcash/merge-non-consensus-changes
Merge non-consensus changes
2022-02-15 23:36:29 +00:00
Jack Grigg 0944cf8800 Fix clippy lint 2022-02-15 23:15:44 +00:00
Jack Grigg 28c22718c0 Remove `hash_bundle_txid_data, hash_bundle_auth_data` from API 2022-02-15 23:03:02 +00:00
Jack Grigg 9283002c13 Update changelog 2022-02-15 22:56:01 +00:00
Jack Grigg 4ba063a07d Update non-consensus tests for changes in consensus branch 2022-02-15 22:48:28 +00:00
Jack Grigg b1d7787ab6 Re-introduce `ValueSum::from_raw` as a `pub(crate)` method
We removed this in zcash/orchard#267 as it did not need to be part of
the public API, but we do still need a way to convert the user-defined
valueBalance type into a `ValueSum` when constructing `bvk`, and this
method is preferable to exposing the `ValueSum` internals.
2022-02-15 22:47:05 +00:00
Jack Grigg 17ad25ee35 Merge branch 'non-consensus-changes-on-branchid-c4cd541e' into merge-non-consensus-changes 2022-02-15 22:46:47 +00:00
str4d 4dc1ae059a
Merge pull request #285 from zcash/bundle-builder-test
Functional test for building and verifying bundles
2022-02-15 22:45:56 +00:00
Jack Grigg 62da82bd38 Add functional test for creating and verifying a shielded bundle
The text exposed some limitations of the current crate API, which have
been fixed.
2022-02-15 22:17:15 +00:00
Jack Grigg 0b6bd07904 Add functional test for creating and verifying a shielding bundle
The text exposed some limitations of the current crate API, which have
been fixed.
2022-02-15 22:17:15 +00:00
str4d d0ed65c37c
Merge pull request #283 from nuttycom/ivk_expose_dk
Allow decryption of the diversifier index for an an address using the IVK.
2022-02-15 22:16:49 +00:00
Daira Hopwood e92d1167af The address used to derive g_d_old and pk_d_old is the recipient address of the note being spent. 2022-02-15 14:39:32 -07:00
Kris Nuttycombe 00deb330e6 Fix pprof version. 2022-02-15 14:39:32 -07:00
Kris Nuttycombe 5d5e289197 Remove default_diversifier and default_address methods. 2022-02-15 14:39:32 -07:00
str4d d6edf2a21a
Merge pull request #284 from zcash/update-halo2-deps
Migrate to `halo2_proofs 0.1.0-beta.2`
2022-02-15 02:54:28 +00:00
Jack Grigg bfda06a3af Migrate to `halo2_proofs 0.1.0-beta.2` 2022-02-15 02:01:39 +00:00
Kris Nuttycombe 4c7ab377fb Make the DiversifierKey type crate-private 2022-02-14 17:04:38 -07:00
Kris Nuttycombe ae3cc78a56 Add decryption of the diversifier index for an address to the IVK.
Also correct a spelling error.
2022-02-14 17:04:38 -07:00
str4d 4ae32ef98a
Merge pull request #282 from zcash/clone-unauthorized-bundle
Add `Clone` impls to various structs
2022-02-12 03:23:11 +00:00
Jack Grigg c4cd541e6c Add `Clone` impls to various structs
This enables `InProgress<Unproven, Unauthorized>: Clone`, which allows
the bundle returned by `Builder::build` to be cloned. In pure-Rust
wallets this should not be necessary, but it is required for `zcashd`
due to FFI-crossing.
2022-02-12 02:04:52 +00:00
Kris Nuttycombe b7f66b48e6
Merge pull request #280 from nuttycom/decrypt_diversifier
Add diversifier index decryption to DiversifierKey
2022-02-11 14:51:54 -07:00
Kris Nuttycombe 8c96640826 Add diversifier index decryption to DiversifierKey. 2022-02-11 14:09:07 -07:00
Kris Nuttycombe 62afe98f14
Merge pull request #278 from zcash/203-shuffle-spends-and-outputs
Shuffle spends and recipients before pairing them into Actions
2022-02-11 11:10:46 -07:00
Jack Grigg c1447d6af2 Fix broken main branch
This was a non-code merge conflict between zcash/halo2#217 and main,
that caused CI to break after the PR merged.
2022-02-08 15:19:56 +00:00
Jack Grigg ce301a6aa3 Shuffle spends and recipients before pairing them into Actions
Callers cannot assume that any specific output corresponds to a specific
Orchard recipient, and must trial-decrypt all outputs to find the ones
belonging to them. This is consistent with higher-layer semantics like
having Unified Addresses as recipients (where the mapping from recipient
to a specific output would become much more complex).

Closes zcash/orchard#203.

Co-authored-by: Daira Hopwood <daira@jacaranda.org>
2022-02-07 22:37:37 +00:00
str4d 40491385c6
Merge pull request #217 from zcash/update-halo2-gadgets
Delete gadgets and introduce halo2_gadgets dependency.
2022-02-03 21:23:42 +00:00
str4d 1f4acdf878
Merge pull request #270 from zcash/derive-internal-keys
Derive internal keys.
2022-02-03 00:42:23 +00:00
str4d d270edaa14
Merge pull request #274 from nuttycom/beta_lints
Use beta lints instead of nightly.
2022-02-01 16:01:57 +00:00
Kris Nuttycombe e8e108405b Use beta lints instead of nightly. 2022-02-01 07:33:31 -07:00
therealyingtong 91e22e4f92 Use internal keys test vectors. 2022-02-01 18:55:21 +08:00
therealyingtong 9cf4e10d4f Remove InternalSpendingKey, introduce FullViewingKey::rivk_internal. 2022-02-01 18:55:21 +08:00
therealyingtong 99119f04fa Derive internal full viewing key. 2022-02-01 18:55:21 +08:00
therealyingtong 2412e83400 Derive internal spending key. 2022-02-01 18:55:21 +08:00
therealyingtong dc7c699a4a spec: Add PrfExpand::OrchardRivkInternal variant. 2022-02-01 18:55:21 +08:00