Commit Graph

2121 Commits

Author SHA1 Message Date
therealyingtong 1f9b9fc147 zcash_primitives: Do not gate secp256k1 on transparent-inputs feature flag. 2022-01-22 22:04:32 -07:00
Kris Nuttycombe 15eb5aab50 Fix a minor naming error in AccountPubKey 2022-01-21 19:08:26 -07:00
Kris Nuttycombe 7d873e9d79 Fix test compilation errors related to UFVK construction. 2022-01-21 19:01:32 -07:00
Kris Nuttycombe 574ca4e180 Add accessors to UnifiedSpendingKey 2022-01-21 18:20:12 -07:00
Kris Nuttycombe 281a4d5c16 Add accessors for the ExtendedPrivKey wrapped by AccountPrivKey 2022-01-21 18:07:23 -07:00
Kris Nuttycombe 7c03dbdc95 Add convenience method for amount sums. 2022-01-21 16:48:53 -07:00
Kris Nuttycombe 00aee09662 Add accessors for the ExtendedPubKey wrapped by AccountPubKey 2022-01-21 14:02:51 -07:00
Kris Nuttycombe dec395a5b0 Add unified spending keys. 2022-01-21 13:54:23 -07:00
Kris Nuttycombe 8f408354b9 Remove cyclic dev dependency between zcash_client_backend and zcash_client_sqlite. 2022-01-20 21:50:26 -07:00
Kris Nuttycombe f75ffb0eaf Document wallet database initialization. 2022-01-20 20:20:58 -07:00
Kris Nuttycombe 79bd2f7733 Add missing documentation & rustfmt. 2022-01-20 20:14:44 -07:00
Kris Nuttycombe ffc4d0cefb Add newtypes for transparent keys at the account & external levels.
This updates UnifiedFullViewingKey to conform to ZIP 316, and
adds types that facilitate this support. These types should likely
be factored out from `zcash_client_backend` into `zcash_primitives`
along with the remainder of the existing unified address support.
2022-01-20 20:03:20 -07:00
Kris Nuttycombe 37e6d3a2bc Apply suggestions from code review
Co-authored-by: Daira Hopwood <daira@jacaranda.org>
Co-authored-by: ying tong <yingtong@z.cash>
2022-01-20 16:43:57 -07:00
Kris Nuttycombe 3dd1f310d9 Merge remote-tracking branch 'upstream/non-consensus-changes-on-branchid-37519621' into autoshield-poc-daa 2022-01-20 13:54:38 -07:00
Squirrel c910ffdb41
Remove unused dependencies (#479)
Remove unused dependencies

Co-authored-by: Kris Nuttycombe <kris.nuttycombe@gmail.com>
Co-authored-by: str4d <thestr4d@gmail.com>
2022-01-18 12:04:14 -07:00
Kris Nuttycombe 7801dddf35
Merge pull request #474 from nuttycom/enforce_typecode_order
Unified container parsing enforces typecode order.
2022-01-04 16:09:55 -07:00
Kris Nuttycombe 8d34e62114 Clean up proptest generation for unified containers. 2022-01-04 15:31:20 -07:00
Kris Nuttycombe e3c67ffee6 Pin pprof version 2022-01-04 11:48:59 -07:00
Kris Nuttycombe 6065c07003 Update test vectors to respect item ordering. 2022-01-04 11:48:23 -07:00
Kris Nuttycombe 2fa73ed368 Remove `Ord` instances for sealed items.
There are two canonical orderings for sealed items: preference
order and encoding order. Removing the `Ord` instances means
that a user can't accidentally choose the wrong ordering;
these orderings are replaced by explicit `preference_order`
and `encoding_order` comparison functions.
2022-01-04 11:48:23 -07:00
Kris Nuttycombe e413f12fb5 Apply suggestions from code review
Co-authored-by: Daira Hopwood <daira@jacaranda.org>
2022-01-04 11:48:23 -07:00
Kris Nuttycombe 4c4c0b1e63 Makes unified container parsing enforce typecode order.
Co-authored-by: Daira Hopwood <daira@jacaranda.org>
2022-01-04 11:48:23 -07:00
str4d 5622b060b1
Merge pull request #471 from zcash/update-deps
Update dependencies
2021-12-18 00:08:40 +00:00
Jack Grigg fe05d2dc11 pprof 0.6 2021-12-17 23:47:00 +00:00
Jack Grigg 07a95d70c9 incrementalmerkletree 0.2 2021-12-17 23:46:00 +00:00
Jack Grigg d5a375919d blake2{b,s}_simd 1 2021-12-17 23:44:06 +00:00
str4d 34bc61da0b
Merge pull request #470 from zcash/zcash_note_encryption-0.1.0
`zcash_note_encryption 0.1.0`
2021-12-17 23:43:39 +00:00
Jack Grigg 36db7634a0 orchard 0.1.0-beta.1 2021-12-17 22:22:25 +00:00
Jack Grigg 142a38e792 zcash_note_encryption 0.1.0 2021-12-17 20:00:46 +00:00
Jack Grigg c4cbb2dd74 zcash_note_encryption: License files and readme 2021-12-17 15:16:17 +00:00
Jack Grigg e8a755f633 zcash_note_encryption: Clean up dependencies
Several dependencies were copied over during the extraction of this
crate's logic from `zcash_primitives`, but are in fact only required for
the protocol-specific logic. We can also remove the `std` feature flag,
since we no longer have a dependency on `blake2b_simd` that needs its
`std` flag exposed for performance.
2021-12-17 15:06:22 +00:00
Jack Grigg d511a788c4 zcash_note_encryption: Crate documentation 2021-12-17 15:06:22 +00:00
Jack Grigg edc3557e30 zcash_note_encryption: Document APIs 2021-12-17 14:12:18 +00:00
Jack Grigg 5409291b0c zcash_note_encryption: Add `doc_cfg` annotations 2021-12-17 14:12:18 +00:00
str4d 905c6e2dd0
Merge pull request #469 from zcash/zcash_note_encryption-api-cleanups
`zcash_note_encryption` API cleanups
2021-12-17 13:42:42 +00:00
Jack Grigg e148ca84ba Migrate to latest `zcash_note_encryption` API 2021-12-17 05:34:45 +00:00
Jack Grigg 76f364593a zcash_note_encryption: Constrain outgoing ciphertext size
This replaces a length assertion, making the API more predictable.
2021-12-17 05:23:53 +00:00
Jack Grigg 4fcd83d74e zcash_note_encryption: Constrain `ShieldedOutput` ciphertext size
Previously we were returning the ciphertext as a slice, and then
asserting its length within the APIs the caller passed it into. Now
instead we require the caller to define whether or not the output is
compact, to make the API more predictable.

This doesn't place any additional constraints on users of this trait,
because the assertions already prevented a full output from being passed
to a compact trial decryption API.
2021-12-17 05:23:53 +00:00
Jack Grigg d54e1f0bf7 zcash_note_encryption: Remove `Domain::check_epk_bytes`
`Domain::derive_esk` provides sufficient information to determine
whether or not we need to enforce `EphemeralSecretKey`-specific
decryption checks, as it returns `None` for pre-ZIP 212 notes.
2021-12-17 04:30:57 +00:00
Jack Grigg 7c1687dcc1 zcash_note_encryption: Use `*PlaintextBytes` structs in `Domain` APIs
`Domain::parse_note_plaintext_without_memo_ivk` is used with both full
note plaintexts and compact notes, so continues to accept a slice. For
all other `Domain` APIs, we constrain the input to `NotePlaintextBytes`
or `OutPlaintextBytes` as appropriate.
2021-12-17 04:30:57 +00:00
Jack Grigg 01c768dbeb zcash_note_encryption: Place pre-ZIP 212 APIs behind a feature flag 2021-12-17 04:30:57 +00:00
str4d 69c3b4b5e1
Merge pull request #467 from nuttycom/decrypt_diversifier_index
Add decryption of Sapling diversifiers.
2021-12-13 21:03:27 +00:00
Kris Nuttycombe c72ddb1251
Improve documentation of DiversifierKey#diversifier_index
Co-authored-by: str4d <jack@electriccoin.co>
2021-12-13 13:37:11 -07:00
Kris Nuttycombe 8e934682bb Add decryption of Sapling diversifiers.
Given a diversifier key, decrypts a diversifier to obtain
the diversifier index from which the diversifier was originally
produced.

Co-authored-by: str4d <jack@electriccoin.co>
2021-12-13 13:08:58 -07:00
Kris Nuttycombe 6fb0fbea31
Merge pull request #420 from zcash/unified-viewing-keys
`zcash_address`: Parse unified viewing keys
2021-12-07 14:15:47 -07:00
Kris Nuttycombe fd786f28b7 Ensure unrecognized prefixes map to ParseError::NotZcash 2021-12-07 12:59:41 -07:00
Kris Nuttycombe 4e906508ae Make unified container construction correctly sort items.
Newly constructed unified containers now obey ZIP 316 item
ordering rules, while parsing and reserialization preserve
order.
2021-12-07 11:07:15 -07:00
Kris Nuttycombe e7c57e4a02 Use `from` instead of a possibly-future-incompatible cast 2021-12-07 09:25:50 -07:00
Kris Nuttycombe cc8c2868eb Ensure that unknown typecodes don't duplicate known typecodes. 2021-12-07 09:16:55 -07:00
Kris Nuttycombe cccc493067 Add unknown typecodes to UA proptests. 2021-12-06 11:34:12 -07:00