From 2adc985f63658dad97bcf5b19e4cc5ce8c0e3f0d Mon Sep 17 00:00:00 2001 From: DebugSteven Date: Wed, 14 Nov 2018 14:43:11 -0500 Subject: [PATCH 1/2] default & identity trait for MontgomeryPoint --- src/montgomery.rs | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/montgomery.rs b/src/montgomery.rs index d07e6af..49f7b98 100644 --- a/src/montgomery.rs +++ b/src/montgomery.rs @@ -76,6 +76,18 @@ impl ConstantTimeEq for MontgomeryPoint { } } +impl Default for MontgomeryPoint { + fn default() -> MontgomeryPoint { + MontgomeryPoint::identity() + } +} + +impl Identity for MontgomeryPoint { + fn identity() -> MontgomeryPoint { + EdwardsPoint::identity().to_montgomery() + } +} + impl PartialEq for MontgomeryPoint { fn eq(&self, other: &MontgomeryPoint) -> bool { self.ct_eq(other).unwrap_u8() == 1u8 From 39145da396226516d8d1f663ad26f86bf04856db Mon Sep 17 00:00:00 2001 From: DebugSteven Date: Wed, 14 Nov 2018 23:16:50 -0500 Subject: [PATCH 2/2] implement default for MontgomeryPoint using zero byte array --- src/montgomery.rs | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/src/montgomery.rs b/src/montgomery.rs index 49f7b98..da3c9a5 100644 --- a/src/montgomery.rs +++ b/src/montgomery.rs @@ -78,13 +78,7 @@ impl ConstantTimeEq for MontgomeryPoint { impl Default for MontgomeryPoint { fn default() -> MontgomeryPoint { - MontgomeryPoint::identity() - } -} - -impl Identity for MontgomeryPoint { - fn identity() -> MontgomeryPoint { - EdwardsPoint::identity().to_montgomery() + MontgomeryPoint([0u8; 32]) } }