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:
parent
f8022442cf
commit
37337c9e44
|
|
@ -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 {
|
impl From<SpendingKey> for OutgoingViewingKey {
|
||||||
/// For this invocation of Blake2b-512 as _PRF^expand_, t=2.
|
/// 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)]
|
#[derive(Copy, Clone, Debug)]
|
||||||
pub struct AuthorizingKey(pub redjubjub::PublicKey<SpendAuth>);
|
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 {
|
impl From<[u8; 32]> for AuthorizingKey {
|
||||||
fn from(bytes: [u8; 32]) -> Self {
|
fn from(bytes: [u8; 32]) -> Self {
|
||||||
Self(redjubjub::PublicKey::try_from(bytes).unwrap())
|
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
|
/// A _Nullifier Deriving Key_, as described in [protocol
|
||||||
/// specification §4.2.2][ps].
|
/// 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 {
|
impl Deref for NullifierDerivingKey {
|
||||||
type Target = jubjub::AffinePoint;
|
type Target = jubjub::AffinePoint;
|
||||||
|
|
||||||
|
|
@ -501,18 +499,10 @@ pub struct IncomingViewingKey {
|
||||||
|
|
||||||
// TODO: impl a From that accepts a Network?
|
// 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 {
|
impl fmt::Debug for IncomingViewingKey {
|
||||||
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
|
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
|
||||||
f.debug_tuple("IncomingViewingKey")
|
f.debug_tuple("IncomingViewingKey")
|
||||||
.field(&hex::encode(self.to_bytes()))
|
.field(&hex::encode(self.scalar.to_bytes()))
|
||||||
.finish()
|
.finish()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -542,6 +532,7 @@ impl From<[u8; 32]> for IncomingViewingKey {
|
||||||
bytes[31] &= 0b0000_0111;
|
bytes[31] &= 0b0000_0111;
|
||||||
|
|
||||||
Self {
|
Self {
|
||||||
|
// TODO: handle setting the Network better.
|
||||||
network: Network::default(),
|
network: Network::default(),
|
||||||
scalar: Scalar::from_bytes(&bytes).unwrap(),
|
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].
|
/// A _Diversifier_, as described in [protocol specification §4.2.2][ps].
|
||||||
///
|
///
|
||||||
/// Combined with an _IncomingViewingKey_, produces a _diversified
|
/// 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 {
|
impl Diversifier {
|
||||||
/// Generate a new _Diversifier_ that has already been confirmed
|
/// Generate a new _Diversifier_ that has already been confirmed
|
||||||
/// as a preimage to a valid diversified base point when used to
|
/// 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 {
|
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
|
||||||
let mut bytes = io::Cursor::new(Vec::new());
|
let mut bytes = io::Cursor::new(Vec::new());
|
||||||
|
|
||||||
let auth_key_bytes: [u8; 32] = self.authorizing_key.into();
|
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(&auth_key_bytes);
|
let _ = bytes.write_all(&Into::<[u8; 32]>::into(self.outgoing_viewing_key));
|
||||||
let _ = bytes.write_all(&self.nullifier_deriving_key.to_bytes());
|
|
||||||
let _ = bytes.write_all(&self.outgoing_viewing_key.0);
|
|
||||||
|
|
||||||
let hrp = match self.network {
|
let hrp = match self.network {
|
||||||
Network::Mainnet => fvk_hrp::MAINNET,
|
Network::Mainnet => fvk_hrp::MAINNET,
|
||||||
|
|
|
||||||
|
|
@ -114,8 +114,9 @@ proptest! {
|
||||||
|
|
||||||
let authorizing_key = AuthorizingKey::from(spend_authorizing_key);
|
let authorizing_key = AuthorizingKey::from(spend_authorizing_key);
|
||||||
let nullifier_deriving_key = NullifierDerivingKey::from(proof_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));
|
IncomingViewingKey::from((authorizing_key, nullifier_deriving_key));
|
||||||
|
incoming_viewing_key.network = spending_key.network;
|
||||||
|
|
||||||
let ivk_string = incoming_viewing_key.to_string();
|
let ivk_string = incoming_viewing_key.to_string();
|
||||||
let incoming_viewing_key_2: IncomingViewingKey = ivk_string.parse().unwrap();
|
let incoming_viewing_key_2: IncomingViewingKey = ivk_string.parse().unwrap();
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue