Support nullifier derivation from borrowed Spending, NullifierDeriving keys

This commit is contained in:
Deirdre Connolly 2020-08-07 04:30:57 -04:00 committed by Deirdre Connolly
parent 40b5a73a15
commit e024e43896
3 changed files with 10 additions and 4 deletions

View File

@ -130,6 +130,12 @@ impl From<SpendingKey> for [u8; 32] {
}
}
impl<'a> From<&'a SpendingKey> for [u8; 32] {
fn from(spending_key: &'a SpendingKey) -> [u8; 32] {
spending_key.bytes
}
}
impl std::str::FromStr for SpendingKey {
type Err = SerializationError;

View File

@ -39,8 +39,8 @@ impl From<[u8; 32]> for Nullifier {
}
}
impl<'a> From<&'a (NoteCommitment, Position, NullifierDerivingKey)> for Nullifier {
fn from((cm, pos, nk): &'a (NoteCommitment, Position, NullifierDerivingKey)) -> Self {
impl<'a> From<(NoteCommitment, Position, &'a NullifierDerivingKey)> for Nullifier {
fn from((cm, pos, nk): (NoteCommitment, Position, &'a NullifierDerivingKey)) -> Self {
let rho = jubjub::AffinePoint::from(mixing_pedersen_hash(cm.0.into(), pos.0.into()));
Nullifier(prf_nf(nk.into(), rho.to_bytes()))

View File

@ -73,8 +73,8 @@ impl From<[u8; 32]> for Nullifier {
}
}
impl From<(SpendingKey, NullifierSeed)> for Nullifier {
fn from((a_sk, rho): (SpendingKey, NullifierSeed)) -> Self {
impl<'a> From<(&'a SpendingKey, NullifierSeed)> for Nullifier {
fn from((a_sk, rho): (&'a SpendingKey, NullifierSeed)) -> Self {
Self(prf_nf(a_sk.into(), rho.into()))
}
}