@@ -51,7 +51,7 @@ use crate::{
5151 ops:: { Invert , LinearCombination , Reduce } ,
5252 DecompressPoint ,
5353 } ,
54- AffinePoint , FieldBytes , NonZeroScalar , ProjectivePoint , Scalar , Secp256k1 ,
54+ AffinePoint , FieldBytes , NonZeroScalar , ProjectivePoint , Scalar ,
5555} ;
5656
5757#[ cfg( feature = "keccak256" ) ]
@@ -176,18 +176,18 @@ impl Signature {
176176 let z = <Scalar as Reduce < U256 > >:: from_be_bytes_reduced ( * digest_bytes) ;
177177 let R = AffinePoint :: decompress ( & r. to_bytes ( ) , self . recovery_id ( ) . is_y_odd ( ) ) ;
178178
179- if R . is_some ( ) . into ( ) {
180- let R = ProjectivePoint :: from ( R . unwrap ( ) ) ;
181- let r_inv = r. invert ( ) . unwrap ( ) ;
182- let u1 = -( r_inv * z) ;
183- let u2 = r_inv * * s;
184- let pk = Secp256k1 :: lincomb ( & ProjectivePoint :: generator ( ) , & u1, & R , & u2) . to_affine ( ) ;
185-
186- // TODO(tarcieri): ensure the signature verifies?
187- Ok ( VerifyingKey :: from ( & pk) )
188- } else {
189- Err ( Error :: new ( ) )
179+ if R . is_none ( ) . into ( ) {
180+ return Err ( Error :: new ( ) ) ;
190181 }
182+
183+ let R = ProjectivePoint :: from ( R . unwrap ( ) ) ;
184+ let r_inv = r. invert ( ) . unwrap ( ) ;
185+ let u1 = -( r_inv * z) ;
186+ let u2 = r_inv * * s;
187+ let pk = ProjectivePoint :: lincomb ( & ProjectivePoint :: generator ( ) , & u1, & R , & u2) . to_affine ( ) ;
188+
189+ // TODO(tarcieri): ensure the signature verifies?
190+ Ok ( VerifyingKey :: from ( & pk) )
191191 }
192192
193193 /// Parse the `r` component of this signature to a [`NonZeroScalar`]
0 commit comments