Crate zcash_note_encryption
source ·Expand description
Note encryption for Zcash transactions.
This crate implements the in-band secret distribution scheme for the Sapling and Orchard protocols. It provides reusable methods that implement common note encryption and trial decryption logic, and enforce protocol-agnostic verification requirements.
Protocol-specific logic is handled via the Domain
trait. Implementations of this
trait are provided in the zcash_primitives
(for Sapling) and orchard
crates;
users with their own existing types can similarly implement the trait themselves.
Modules
- batch
alloc
APIs for batch trial decryption.
Structs
- Newtype representing the byte encoding of an
EphemeralPublicKey
. - A struct containing context required for encrypting Sapling and Orchard notes.
- Newtype representing the byte encoding of a note plaintext.
- Newtype representing the byte encoding of a outgoing plaintext.
- A symmetric key that can be used to recover a single Sapling or Orchard output.
Constants
- The size of a compact note.
- The size of an encrypted note plaintext.
- The size of
NotePlaintextBytes
. - The size of an encrypted outgoing plaintext.
- The size of
OutPlaintextBytes
.
Traits
- BatchDomain
alloc
Trait that encapsulates protocol-specific batch trial decryption logic. - Trait that encapsulates protocol-specific note encryption types and logic.
- Trait that provides access to the components of an encrypted transaction output.
Functions
- Trial decryption of the compact note plaintext by the recipient for light clients.
- Trial decryption of the full note plaintext by the recipient.
- Recovery of the full note plaintext by the sender.
- Recovery of the full note plaintext by the sender.