From 40b5a73a155311915d18294e9971b1805becb0d4 Mon Sep 17 00:00:00 2001 From: Deirdre Connolly Date: Wed, 5 Aug 2020 23:03:09 -0400 Subject: [PATCH] impl From<&NullifierDerivingKey>, use that to derive Sapling Nullifier --- zebra-chain/src/keys/sapling.rs | 6 ++++++ zebra-chain/src/notes/sapling/nullifiers.rs | 4 ++-- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/zebra-chain/src/keys/sapling.rs b/zebra-chain/src/keys/sapling.rs index 9c2b89c5f..d1d922f86 100644 --- a/zebra-chain/src/keys/sapling.rs +++ b/zebra-chain/src/keys/sapling.rs @@ -455,6 +455,12 @@ impl From for [u8; 32] { } } +impl From<&NullifierDerivingKey> for [u8; 32] { + fn from(nk: &NullifierDerivingKey) -> [u8; 32] { + nk.0.to_bytes() + } +} + impl From for NullifierDerivingKey { /// Requires JubJub's _FindGroupHash^J("Zcash_H_", "")_, then uses /// the resulting generator point to scalar multiply the diff --git a/zebra-chain/src/notes/sapling/nullifiers.rs b/zebra-chain/src/notes/sapling/nullifiers.rs index 2c2752469..836ec712c 100644 --- a/zebra-chain/src/notes/sapling/nullifiers.rs +++ b/zebra-chain/src/notes/sapling/nullifiers.rs @@ -39,8 +39,8 @@ impl From<[u8; 32]> for Nullifier { } } -impl From<(NoteCommitment, Position, NullifierDerivingKey)> for Nullifier { - fn from((cm, pos, nk): (NoteCommitment, Position, NullifierDerivingKey)) -> Self { +impl<'a> From<&'a (NoteCommitment, Position, NullifierDerivingKey)> for Nullifier { + fn from((cm, pos, nk): &'a (NoteCommitment, Position, NullifierDerivingKey)) -> Self { let rho = jubjub::AffinePoint::from(mixing_pedersen_hash(cm.0.into(), pos.0.into())); Nullifier(prf_nf(nk.into(), rho.to_bytes()))