Remove some impl Deref's and PartialEq's that weren't used

Add some impl From<T> for [u8; 32] 's
This commit is contained in:
Deirdre Connolly 2020-04-17 05:50:02 -04:00 committed by Deirdre Connolly
parent f8022442cf
commit 37337c9e44
2 changed files with 19 additions and 41 deletions

View File

@ -344,6 +344,12 @@ impl From<[u8; 32]> for OutgoingViewingKey {
}
}
impl From<OutgoingViewingKey> for [u8; 32] {
fn from(ovk: OutgoingViewingKey) -> [u8; 32] {
ovk.0
}
}
impl From<SpendingKey> for OutgoingViewingKey {
/// For this invocation of Blake2b-512 as _PRF^expand_, t=2.
///
@ -381,14 +387,6 @@ impl PartialEq<OutgoingViewingKey> for [u8; 32] {
#[derive(Copy, Clone, Debug)]
pub struct AuthorizingKey(pub redjubjub::PublicKey<SpendAuth>);
impl Deref for AuthorizingKey {
type Target = redjubjub::PublicKey<SpendAuth>;
fn deref(&self) -> &redjubjub::PublicKey<SpendAuth> {
&self.0
}
}
impl From<[u8; 32]> for AuthorizingKey {
fn from(bytes: [u8; 32]) -> Self {
Self(redjubjub::PublicKey::try_from(bytes).unwrap())
@ -420,12 +418,6 @@ impl PartialEq<[u8; 32]> for AuthorizingKey {
}
}
impl PartialEq<AuthorizingKey> for [u8; 32] {
fn eq(&self, other: &AuthorizingKey) -> bool {
*self == Into::<[u8; 32]>::into(other.0)
}
}
/// A _Nullifier Deriving Key_, as described in [protocol
/// specification §4.2.2][ps].
///
@ -441,6 +433,12 @@ impl From<[u8; 32]> for NullifierDerivingKey {
}
}
impl From<NullifierDerivingKey> for [u8; 32] {
fn from(nk: NullifierDerivingKey) -> [u8; 32] {
nk.0.to_bytes()
}
}
impl Deref for NullifierDerivingKey {
type Target = jubjub::AffinePoint;
@ -501,18 +499,10 @@ pub struct IncomingViewingKey {
// TODO: impl a From that accepts a Network?
impl Deref for IncomingViewingKey {
type Target = Scalar;
fn deref(&self) -> &Scalar {
&self.scalar
}
}
impl fmt::Debug for IncomingViewingKey {
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
f.debug_tuple("IncomingViewingKey")
.field(&hex::encode(self.to_bytes()))
.field(&hex::encode(self.scalar.to_bytes()))
.finish()
}
}
@ -542,6 +532,7 @@ impl From<[u8; 32]> for IncomingViewingKey {
bytes[31] &= 0b0000_0111;
Self {
// TODO: handle setting the Network better.
network: Network::default(),
scalar: Scalar::from_bytes(&bytes).unwrap(),
}
@ -597,12 +588,6 @@ impl PartialEq<[u8; 32]> for IncomingViewingKey {
}
}
impl PartialEq<IncomingViewingKey> for [u8; 32] {
fn eq(&self, other: &IncomingViewingKey) -> bool {
*self == other.scalar.to_bytes()
}
}
/// A _Diversifier_, as described in [protocol specification §4.2.2][ps].
///
/// Combined with an _IncomingViewingKey_, produces a _diversified
@ -656,12 +641,6 @@ impl PartialEq<[u8; 11]> for Diversifier {
}
}
impl PartialEq<Diversifier> for [u8; 11] {
fn eq(&self, other: &Diversifier) -> bool {
*self == other.0
}
}
impl Diversifier {
/// Generate a new _Diversifier_ that has already been confirmed
/// as a preimage to a valid diversified base point when used to
@ -783,11 +762,9 @@ impl fmt::Display for FullViewingKey {
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
let mut bytes = io::Cursor::new(Vec::new());
let auth_key_bytes: [u8; 32] = self.authorizing_key.into();
let _ = bytes.write_all(&auth_key_bytes);
let _ = bytes.write_all(&self.nullifier_deriving_key.to_bytes());
let _ = bytes.write_all(&self.outgoing_viewing_key.0);
let _ = bytes.write_all(&Into::<[u8; 32]>::into(self.authorizing_key));
let _ = bytes.write_all(&Into::<[u8; 32]>::into(self.nullifier_deriving_key));
let _ = bytes.write_all(&Into::<[u8; 32]>::into(self.outgoing_viewing_key));
let hrp = match self.network {
Network::Mainnet => fvk_hrp::MAINNET,

View File

@ -114,8 +114,9 @@ proptest! {
let authorizing_key = AuthorizingKey::from(spend_authorizing_key);
let nullifier_deriving_key = NullifierDerivingKey::from(proof_authorizing_key);
let incoming_viewing_key =
let mut incoming_viewing_key =
IncomingViewingKey::from((authorizing_key, nullifier_deriving_key));
incoming_viewing_key.network = spending_key.network;
let ivk_string = incoming_viewing_key.to_string();
let incoming_viewing_key_2: IncomingViewingKey = ivk_string.parse().unwrap();