#[repr(C)]pub struct TransferData {
pub ciphertext_lo: TransferAmountEncryption,
pub ciphertext_hi: TransferAmountEncryption,
pub transfer_pubkeys: TransferPubkeys,
pub ciphertext_new_source: ElGamalCiphertext,
pub proof: TransferProof,
}
Fields
ciphertext_lo: TransferAmountEncryption
Group encryption of the low 32 bits of the transfer amount
ciphertext_hi: TransferAmountEncryption
Group encryption of the high 32 bits of the transfer amount
transfer_pubkeys: TransferPubkeys
The public encryption keys associated with the transfer: source, dest, and auditor
ciphertext_new_source: ElGamalCiphertext
The final spendable ciphertext after the transfer
proof: TransferProof
Zero-knowledge proofs for Transfer
Implementations
sourceimpl TransferData
impl TransferData
pub fn new(
transfer_amount: u64,
(u64, &ElGamalCiphertext),
keypair_source: &ElGamalKeypair,
(&ElGamalPubkey, &ElGamalPubkey)
) -> Result<TransferData, ProofError>
sourcepub fn decrypt_amount(
&self,
role: Role,
sk: &ElGamalSecretKey
) -> Result<u64, ProofError>
pub fn decrypt_amount(
&self,
role: Role,
sk: &ElGamalSecretKey
) -> Result<u64, ProofError>
Decrypts transfer amount from transfer data
TODO: This function should run in constant time. Use subtle::Choice
for the if statement
and make sure that the function does not terminate prematurely due to errors
TODO: Define specific error type for decryption error
Trait Implementations
sourceimpl Clone for TransferData
impl Clone for TransferData
sourcefn clone(&self) -> TransferData
fn clone(&self) -> TransferData
Returns a copy of the value. Read more
1.0.0 · sourcefn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from source
. Read more
sourceimpl Verifiable for TransferData
impl Verifiable for TransferData
fn verify(&self) -> Result<(), ProofError>
impl Copy for TransferData
impl Pod for TransferData
Auto Trait Implementations
impl RefUnwindSafe for TransferData
impl Send for TransferData
impl Sync for TransferData
impl Unpin for TransferData
impl UnwindSafe for TransferData
Blanket Implementations
impl<T> AbiExample for T
impl<T> AbiExample for T
default fn example() -> T
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
sourceimpl<T> ToOwned for T where
T: Clone,
impl<T> ToOwned for T where
T: Clone,
type Owned = T
type Owned = T
The resulting type after obtaining ownership.
sourcefn clone_into(&self, target: &mut T)
fn clone_into(&self, target: &mut T)
toowned_clone_into
)Uses borrowed data to replace owned data, usually by cloning. Read more