Commit Graph

1770 Commits

Author SHA1 Message Date
Jack Grigg ae43e6c074 zcash_note_encryption: Pass cmstar_bytes to Domain::derive_ock
PRF^ock in the spec takes cm* as a byte array.
2021-05-28 23:41:13 +01:00
Jack Grigg ee2b96c82d zcash_note_encryption: s/TryFrom/From on ExtractedCommitmentBytes bound
This was left over from an earlier refactor where we could call a domain
API to extract cmstar from a note commitment (which could fail for
Orchard). This part of extraction was subsequently refactored into the
domain logic (and is rejected earlier for Orchard). The resulting bound
is wrong because it's always possible to serialize a scalar.
2021-05-28 22:57:48 +01:00
Jack Grigg 16627b4569 zcash_note_encryption: Enforce ZIP 212 check on esk from outPlaintext
It needs to equal the esk derived from the note (for v2 note plaintexts).
2021-05-28 22:33:00 +01:00
str4d d9a3b98120
Merge pull request #377 from adityapk00/builder_progress
Report Sapling Tx Builder Progress
2021-05-26 21:52:38 +01:00
str4d d50bb12a97
Merge pull request #334 from str4d/dependency-updates
Dependency updates
2021-05-20 17:48:52 +01:00
str4d 6fab0c82a7
Merge pull request #383 from nuttycom/feature/f4jumble
Implement F4Jumble
2021-05-20 14:53:13 +01:00
str4d 35dadc7f6c
f4jumble: Test both directions against test vectors 2021-05-20 14:16:39 +01:00
Jack Grigg 49d946fb5a Remove wasm32-unknown-unknown from build checks
By default `getrandom` 0.2 does not compile on unsupported targets; it
is necessary to enable its `js` feature flag specifically when targeting
`wasm32-unknown-unknown`. Since we don't expose that flag ourselves
(instead relying on the downstream user to do this) we can't directly
test this ourselves. `wasm32-wasi` is fully-supported, so we continue to
test builds against that target to ensure we retain WASM compatibility.
2021-05-19 18:29:37 +01:00
Jack Grigg 9a80ae5cd1 bitvec 0.20 2021-05-19 18:29:37 +01:00
Jack Grigg 5623e02a7c Migrate to ff 0.9 et al. 2021-05-19 18:29:37 +01:00
Kris Nuttycombe 1dcba34167 Add checks against f4jumble test vectors. 2021-05-19 08:50:50 -06:00
Kris Nuttycombe 774d166fff Use VALID_LENGTH constant for f4jumble proptest generation. 2021-05-19 08:29:10 -06:00
Kris Nuttycombe 4346ca9e50 Apply suggestions from code review
Co-authored-by: str4d <jack@electriccoin.co>
2021-05-19 08:29:10 -06:00
Kris Nuttycombe 69ce777dd1 Use macros for personalization & iterator for g function.
Co-authored-by: str4d <jack@electriccoin.co>
2021-05-19 08:29:01 -06:00
Kris Nuttycombe 08a3fb9639 Implement F4Jumble 2021-05-19 08:28:58 -06:00
str4d 1b0f2060dd
Improve documentation of builder::Progress 2021-05-18 13:45:48 +01:00
Aditya Kulkarni f3aded9c84 Send builder progress 2021-05-17 09:44:42 -07:00
str4d 05bd98b796
Merge pull request #380 from narodnik/jubjub_fr_random
Replace redundant code with call to Field::random() which does the same as the code.
2021-05-04 04:33:37 +01:00
Daira Hopwood da431a0eb2
rustfmt fix 2021-05-03 14:08:06 +01:00
narodnik 618a6165c7 Replace redundant code with call to Field::random() which does the same as the code. 2021-05-03 13:34:13 +02:00
str4d 3b02c8b26e
Merge pull request #358 from nuttycom/refactor/component_modules_2
Generalize Sapling note encryption to allow reuse with Orchard notes.
2021-04-16 04:17:57 +01:00
Jack Grigg 28a45028ab cargo fmt 2021-04-16 14:03:55 +12:00
Daira Hopwood dc0f6e7115
Update comment about which case is covered by example code 2021-04-16 00:10:05 +01:00
Kris Nuttycombe 3434cc8b6a Add a note about canonicity of ephemeral public keys. 2021-04-15 15:32:45 -06:00
Kris Nuttycombe b2b3efd4c2 Fix naming cmstar -> cmstar_bytes and cm -> cmstar 2021-04-15 15:24:45 -06:00
Kris Nuttycombe 00d04de547 Make cmstar check follow the spec more closely. 2021-04-14 15:38:58 -06:00
Kris Nuttycombe 12cb8265d8 Fix formatting. 2021-04-12 18:47:45 -06:00
Kris Nuttycombe 389e6ca6a3
Minor comment on epk canonicity. 2021-04-12 18:43:21 -06:00
Kris Nuttycombe fae1a1517a Simplify try_sapling_output_recovery. 2021-04-12 18:40:17 -06:00
Kris Nuttycombe f34e87884a Update documentation for note encryption traits. 2021-04-12 17:41:06 -06:00
Kris Nuttycombe 6fc1d1d1c0 Use ephemeral_key bytes instead of the epk abstract point where specified. 2021-04-12 16:19:50 -06:00
Kris Nuttycombe 324fc36521 Use ShieldedOutput trait for note encryption/decryption.
This change modifies note encryption and decryption functions
to treat a shielded output as a single value instead of handling
the parts of an output as independent arguments.
2021-04-12 12:59:06 -06:00
Kris Nuttycombe 4f22f1d578
Apply suggestions from code review
Co-authored-by: Daira Hopwood <daira@jacaranda.org>
2021-04-12 09:18:51 -06:00
Kris Nuttycombe e654cc4ce6 Use constant-time equality for EphemeralKeyBytes.
Fixes #370
2021-04-12 09:13:04 -06:00
Kris Nuttycombe cfdbafe2e3 Add myself to crate contributors. 2021-04-08 10:13:04 -06:00
Kris Nuttycombe 24e62d3a7b
Update comments describing COMPACT_NOTE_SIZE components.
Co-authored-by: ebfull <ewillbefull@gmail.com>
2021-04-08 10:08:58 -06:00
Kris Nuttycombe a560101bb2 Remove spurious mut references. 2021-04-08 10:08:00 -06:00
Kris Nuttycombe 879eea863a Apply suggestions from code review
Co-authored-by: str4d <jack@electriccoin.co>
2021-04-08 08:20:23 -06:00
Kris Nuttycombe dad8663c55 Fix zcash_note_encryption doctests. 2021-04-08 08:20:23 -06:00
Kris Nuttycombe 213cd6cce9 Fix Clippy complaints. 2021-04-08 08:20:23 -06:00
Kris Nuttycombe be225daabf Update zcash_primitives dev dependency for zcash_note_encryption 2021-04-08 08:20:23 -06:00
Kris Nuttycombe 5b13bb3a1e Add try_output_recovery_with_ovk to shared note encryption code. 2021-04-08 08:20:23 -06:00
Kris Nuttycombe 266285b536 Move generalized note encryption functionality to zcash_note_encryption crate. 2021-04-08 08:20:21 -06:00
Kris Nuttycombe e77839232d Generalize note encryption and decryption.
This commit introduces a `Domain` trait which defines the types
and operations that are shared between Sapling and Orchard note
encryption and decryption processes.
2021-04-08 08:19:10 -06:00
Kris Nuttycombe 5baccdf052 Move note_encryption into the sapling module. 2021-04-08 08:19:10 -06:00
str4d 1b4aab0b76
Merge pull request #366 from str4d/lint-fixes
Lint fixes
2021-04-02 11:04:53 +13:00
Jack Grigg 2f3847638d zcash_primitives: Revert to SproutProof::PHGR
Unlike regular acronyms or abbreviations, this is author initials, which
we've decided to keep capitalised.
2021-04-02 10:39:25 +13:00
Jack Grigg 63db2729e9 Temporarily allow clippy::result_unit_err lint
Fixing these lints is deferred to zcash/librustzcash#367.
2021-03-27 19:01:03 +13:00
Jack Grigg 56b577b31e clippy: Fix small lints 2021-03-27 19:01:03 +13:00
Jack Grigg 564c2714fe clippy: Use Iterator::try_for_each 2021-03-27 19:01:03 +13:00