Impl FullViewingKey::from_spending_key(SpendingKey, Network)
Remove From impl
This commit is contained in:
parent
4fd98f6eb1
commit
d33947b331
|
@ -66,7 +66,8 @@ mod tests {
|
||||||
|
|
||||||
let spending_key = keys::SpendingKey::new(&mut OsRng);
|
let spending_key = keys::SpendingKey::new(&mut OsRng);
|
||||||
|
|
||||||
let full_viewing_key = keys::FullViewingKey::from(spending_key);
|
let full_viewing_key =
|
||||||
|
keys::FullViewingKey::from_spending_key(spending_key, Network::Mainnet);
|
||||||
|
|
||||||
// Default diversifier, where index = 0.
|
// Default diversifier, where index = 0.
|
||||||
let diversifier_key = keys::DiversifierKey::from(full_viewing_key);
|
let diversifier_key = keys::DiversifierKey::from(full_viewing_key);
|
||||||
|
|
|
@ -568,8 +568,6 @@ pub struct FullViewingKey {
|
||||||
ivk_commit_randomness: IvkCommitRandomness,
|
ivk_commit_randomness: IvkCommitRandomness,
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO: impl a From that accepts a Network?
|
|
||||||
|
|
||||||
impl fmt::Debug for FullViewingKey {
|
impl fmt::Debug for FullViewingKey {
|
||||||
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
|
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
|
||||||
f.debug_struct("FullViewingKey")
|
f.debug_struct("FullViewingKey")
|
||||||
|
@ -598,20 +596,6 @@ impl fmt::Display for FullViewingKey {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
impl From<SpendingKey> for FullViewingKey {
|
|
||||||
fn from(sk: SpendingKey) -> FullViewingKey {
|
|
||||||
let spend_authorizing_key = SpendAuthorizingKey::from(sk);
|
|
||||||
|
|
||||||
Self {
|
|
||||||
// TODO: handle setting the Network better.
|
|
||||||
network: Network::default(),
|
|
||||||
spend_validating_key: SpendValidatingKey::from(spend_authorizing_key),
|
|
||||||
nullifier_deriving_key: NullifierDerivingKey::from(sk),
|
|
||||||
ivk_commit_randomness: IvkCommitRandomness::from(sk),
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
impl FromStr for FullViewingKey {
|
impl FromStr for FullViewingKey {
|
||||||
type Err = SerializationError;
|
type Err = SerializationError;
|
||||||
|
|
||||||
|
@ -657,6 +641,21 @@ impl FullViewingKey {
|
||||||
// let R = PRF^expand_K( [0x82] || I2LEOSP256(ak) || I2LEOSP256(nk) )
|
// let R = PRF^expand_K( [0x82] || I2LEOSP256(ak) || I2LEOSP256(nk) )
|
||||||
prf_expand(K, t)
|
prf_expand(K, t)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// Derive a full viewing key from a existing spending key and its network.
|
||||||
|
///
|
||||||
|
/// https://zips.z.cash/protocol/nu5.pdf#addressesandkeys
|
||||||
|
/// https://zips.z.cash/protocol/nu5.pdf#orchardfullviewingkeyencoding
|
||||||
|
pub fn from_spending_key(sk: SpendingKey, network: Network) -> FullViewingKey {
|
||||||
|
let spend_authorizing_key = SpendAuthorizingKey::from(sk);
|
||||||
|
|
||||||
|
Self {
|
||||||
|
network,
|
||||||
|
spend_validating_key: SpendValidatingKey::from(spend_authorizing_key),
|
||||||
|
nullifier_deriving_key: NullifierDerivingKey::from(sk),
|
||||||
|
ivk_commit_randomness: IvkCommitRandomness::from(sk),
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/// An outgoing viewing key, as described in [protocol specification
|
/// An outgoing viewing key, as described in [protocol specification
|
||||||
|
|
|
@ -11,7 +11,8 @@ impl Arbitrary for TransmissionKey {
|
||||||
fn arbitrary_with(_args: Self::Parameters) -> Self::Strategy {
|
fn arbitrary_with(_args: Self::Parameters) -> Self::Strategy {
|
||||||
(any::<SpendingKey>())
|
(any::<SpendingKey>())
|
||||||
.prop_map(|spending_key| {
|
.prop_map(|spending_key| {
|
||||||
let full_viewing_key = FullViewingKey::from(spending_key);
|
let full_viewing_key =
|
||||||
|
FullViewingKey::from_spending_key(spending_key, Network::Mainnet);
|
||||||
|
|
||||||
let diversifier_key = DiversifierKey::from(full_viewing_key);
|
let diversifier_key = DiversifierKey::from(full_viewing_key);
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue