Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Generalize Sapling note encryption to allow reuse with Orchard notes. #358

Merged
merged 24 commits into from
Apr 16, 2021
Merged
Show file tree
Hide file tree
Changes from 8 commits
Commits
Show all changes
24 commits
Select commit Hold shift + click to select a range
5baccdf
Move note_encryption into the sapling module.
nuttycom Mar 4, 2021
e778392
Generalize note encryption and decryption.
nuttycom Mar 18, 2021
266285b
Move generalized note encryption functionality to zcash_note_encrypti…
nuttycom Mar 22, 2021
5b13bb3
Add try_output_recovery_with_ovk to shared note encryption code.
nuttycom Mar 23, 2021
be225da
Update zcash_primitives dev dependency for zcash_note_encryption
nuttycom Mar 27, 2021
213cd6c
Fix Clippy complaints.
nuttycom Mar 27, 2021
dad8663
Fix zcash_note_encryption doctests.
nuttycom Mar 28, 2021
879eea8
Apply suggestions from code review
nuttycom Apr 5, 2021
a560101
Remove spurious mut references.
nuttycom Apr 8, 2021
24e62d3
Update comments describing COMPACT_NOTE_SIZE components.
nuttycom Apr 8, 2021
cfdbafe
Add myself to crate contributors.
nuttycom Apr 8, 2021
e654cc4
Use constant-time equality for EphemeralKeyBytes.
nuttycom Apr 12, 2021
4f22f1d
Apply suggestions from code review
nuttycom Apr 12, 2021
324fc36
Use ShieldedOutput trait for note encryption/decryption.
nuttycom Apr 5, 2021
6fc1d1d
Use ephemeral_key bytes instead of the epk abstract point where speci…
nuttycom Apr 12, 2021
f34e878
Update documentation for note encryption traits.
nuttycom Apr 12, 2021
fae1a15
Simplify try_sapling_output_recovery.
nuttycom Apr 13, 2021
389e6ca
Minor comment on epk canonicity.
nuttycom Apr 13, 2021
12cb826
Fix formatting.
nuttycom Apr 13, 2021
00d04de
Make cmstar check follow the spec more closely.
nuttycom Apr 14, 2021
b2b3efd
Fix naming cmstar -> cmstar_bytes and cm -> cmstar
nuttycom Apr 15, 2021
3434cc8
Add a note about canonicity of ephemeral public keys.
nuttycom Apr 15, 2021
dc0f6e7
Update comment about which case is covered by example code
daira Apr 15, 2021
28a4502
cargo fmt
str4d Apr 16, 2021
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 10 additions & 0 deletions components/zcash_note_encryption/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -11,3 +11,13 @@ license = "MIT OR Apache-2.0"
edition = "2018"

[dependencies]
blake2b_simd = "0.5"
nuttycom marked this conversation as resolved.
Show resolved Hide resolved
byteorder = "1"
crypto_api_chachapoly = "0.4"
ff = "0.8"
group = "0.8"
rand_core = "0.5.1"

[dev-dependencies]
zcash_primitives = { version = "0.5", path = "../../zcash_primitives" }
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

These not-quite-circular dependencies make publishing a pain. I dealt with it for zcash_client_backend <-> zcash_client_sqlite for the 0.5 release by specifying a version range per rust-lang/cargo#4242 but it would be good to formalize this in the repo. Non-blocking, we can sort this out later.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

With the zcash_client_backend issue, I'm planning to address that by making the tests just run against the in-memory backend once that's complete, and move the sqlite tests back to the sqlite crate. Here, I'm not sure what the best approach is; I guess we could move these tests to zcash_primitives and implement a set of tests here that just relies upon the note-encryption functionality without using Sapling.

jubjub = "0.5.1"
Loading