From 41c53ced65ed47c2d794b39e6929463166d3abf2 Mon Sep 17 00:00:00 2001 From: Tony Arcieri Date: Mon, 4 Aug 2025 21:51:03 -0600 Subject: [PATCH] ecdsa: use `CtOption::into_option` (#1031) Infers types and makes these conversions less ugly --- ecdsa/src/recovery.rs | 21 ++++++++++----------- ecdsa/src/verifying.rs | 3 ++- 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/ecdsa/src/recovery.rs b/ecdsa/src/recovery.rs index 4e8fe0e..4954eb2 100644 --- a/ecdsa/src/recovery.rs +++ b/ecdsa/src/recovery.rs @@ -376,21 +376,20 @@ where let z = Scalar::::reduce(&bits2field::(prehash)?); let r_bytes = if recovery_id.is_x_reduced() { - Option::::from( - C::Uint::decode_field_bytes(&r.to_repr()).checked_add(&C::ORDER), - ) - .ok_or_else(Error::new)? - .encode_field_bytes() + C::Uint::decode_field_bytes(&r.to_repr()) + .checked_add(&C::ORDER) + .into_option() + .ok_or_else(Error::new)? + .encode_field_bytes() } else { r.to_repr() }; - let R: ProjectivePoint = Option::>::from(AffinePoint::::decompress( - &r_bytes, - u8::from(recovery_id.is_y_odd()).into(), - )) - .ok_or_else(Error::new)? - .into(); + let R: ProjectivePoint = + AffinePoint::::decompress(&r_bytes, u8::from(recovery_id.is_y_odd()).into()) + .into_option() + .ok_or_else(Error::new)? + .into(); let r_inv = *r.invert(); let u1 = -(r_inv * z); diff --git a/ecdsa/src/verifying.rs b/ecdsa/src/verifying.rs index 547544b..ada4ca3 100644 --- a/ecdsa/src/verifying.rs +++ b/ecdsa/src/verifying.rs @@ -108,7 +108,8 @@ where /// Initialize [`VerifyingKey`] from an [`EncodedPoint`]. pub fn from_encoded_point(public_key: &EncodedPoint) -> Result { - Option::from(PublicKey::::from_encoded_point(public_key)) + PublicKey::::from_encoded_point(public_key) + .into_option() .map(|public_key| Self { inner: public_key }) .ok_or_else(Error::new) }