@@ -133,7 +133,7 @@ impl RecoverableSignature {
133
133
/// verify-capable context.
134
134
#[ inline]
135
135
#[ cfg( feature = "global-context" ) ]
136
- pub fn recover ( & self , msg : & Message ) -> Result < key:: PublicKey , Error > {
136
+ pub fn recover ( & self , msg : impl Into < Message > ) -> Result < key:: PublicKey , Error > {
137
137
crate :: SECP256K1 . recover_ecdsa ( msg, self )
138
138
}
139
139
}
@@ -154,10 +154,11 @@ impl From<ffi::RecoverableSignature> for RecoverableSignature {
154
154
impl < C : Signing > Secp256k1 < C > {
155
155
fn sign_ecdsa_recoverable_with_noncedata_pointer (
156
156
& self ,
157
- msg : & Message ,
157
+ msg : impl Into < Message > ,
158
158
sk : & key:: SecretKey ,
159
159
noncedata_ptr : * const super_ffi:: types:: c_void ,
160
160
) -> RecoverableSignature {
161
+ let msg = msg. into ( ) ;
161
162
let mut ret = ffi:: RecoverableSignature :: new ( ) ;
162
163
unsafe {
163
164
// We can assume the return value because it's not possible to construct
@@ -182,7 +183,7 @@ impl<C: Signing> Secp256k1<C> {
182
183
/// Requires a signing-capable context.
183
184
pub fn sign_ecdsa_recoverable (
184
185
& self ,
185
- msg : & Message ,
186
+ msg : impl Into < Message > ,
186
187
sk : & key:: SecretKey ,
187
188
) -> RecoverableSignature {
188
189
self . sign_ecdsa_recoverable_with_noncedata_pointer ( msg, sk, ptr:: null ( ) )
@@ -195,7 +196,7 @@ impl<C: Signing> Secp256k1<C> {
195
196
/// Requires a signing-capable context.
196
197
pub fn sign_ecdsa_recoverable_with_noncedata (
197
198
& self ,
198
- msg : & Message ,
199
+ msg : impl Into < Message > ,
199
200
sk : & key:: SecretKey ,
200
201
noncedata : & [ u8 ; 32 ] ,
201
202
) -> RecoverableSignature {
@@ -209,9 +210,10 @@ impl<C: Verification> Secp256k1<C> {
209
210
/// `msg`. Requires a verify-capable context.
210
211
pub fn recover_ecdsa (
211
212
& self ,
212
- msg : & Message ,
213
+ msg : impl Into < Message > ,
213
214
sig : & RecoverableSignature ,
214
215
) -> Result < key:: PublicKey , Error > {
216
+ let msg = msg. into ( ) ;
215
217
unsafe {
216
218
let mut pk = super_ffi:: PublicKey :: new ( ) ;
217
219
if ffi:: secp256k1_ecdsa_recover (
@@ -252,15 +254,15 @@ mod tests {
252
254
let ( sk, pk) = full. generate_keypair ( & mut rand:: thread_rng ( ) ) ;
253
255
254
256
// Try signing
255
- assert_eq ! ( sign. sign_ecdsa_recoverable( & msg, & sk) , full. sign_ecdsa_recoverable( & msg, & sk) ) ;
256
- let sigr = full. sign_ecdsa_recoverable ( & msg, & sk) ;
257
+ assert_eq ! ( sign. sign_ecdsa_recoverable( msg, & sk) , full. sign_ecdsa_recoverable( msg, & sk) ) ;
258
+ let sigr = full. sign_ecdsa_recoverable ( msg, & sk) ;
257
259
258
260
// Try pk recovery
259
- assert ! ( vrfy. recover_ecdsa( & msg, & sigr) . is_ok( ) ) ;
260
- assert ! ( full. recover_ecdsa( & msg, & sigr) . is_ok( ) ) ;
261
+ assert ! ( vrfy. recover_ecdsa( msg, & sigr) . is_ok( ) ) ;
262
+ assert ! ( full. recover_ecdsa( msg, & sigr) . is_ok( ) ) ;
261
263
262
- assert_eq ! ( vrfy. recover_ecdsa( & msg, & sigr) , full. recover_ecdsa( & msg, & sigr) ) ;
263
- assert_eq ! ( full. recover_ecdsa( & msg, & sigr) , Ok ( pk) ) ;
264
+ assert_eq ! ( vrfy. recover_ecdsa( msg, & sigr) , full. recover_ecdsa( msg, & sigr) ) ;
265
+ assert_eq ! ( full. recover_ecdsa( msg, & sigr) , Ok ( pk) ) ;
264
266
}
265
267
266
268
#[ test]
@@ -280,7 +282,7 @@ mod tests {
280
282
let sk = SecretKey :: from_slice ( & ONE ) . unwrap ( ) ;
281
283
let msg = Message :: from_digest_slice ( & ONE ) . unwrap ( ) ;
282
284
283
- let sig = s. sign_ecdsa_recoverable ( & msg, & sk) ;
285
+ let sig = s. sign_ecdsa_recoverable ( msg, & sk) ;
284
286
285
287
assert_eq ! ( Ok ( sig) , RecoverableSignature :: from_compact( & [
286
288
0x66 , 0x73 , 0xff , 0xad , 0x21 , 0x47 , 0x74 , 0x1f ,
@@ -306,7 +308,7 @@ mod tests {
306
308
let msg = Message :: from_digest_slice ( & ONE ) . unwrap ( ) ;
307
309
let noncedata = [ 42u8 ; 32 ] ;
308
310
309
- let sig = s. sign_ecdsa_recoverable_with_noncedata ( & msg, & sk, & noncedata) ;
311
+ let sig = s. sign_ecdsa_recoverable_with_noncedata ( msg, & sk, & noncedata) ;
310
312
311
313
assert_eq ! ( Ok ( sig) , RecoverableSignature :: from_compact( & [
312
314
0xb5 , 0x0b , 0xb6 , 0x79 , 0x5f , 0x31 , 0x74 , 0x8a ,
@@ -331,14 +333,14 @@ mod tests {
331
333
332
334
let ( sk, pk) = s. generate_keypair ( & mut rand:: thread_rng ( ) ) ;
333
335
334
- let sigr = s. sign_ecdsa_recoverable ( & msg, & sk) ;
336
+ let sigr = s. sign_ecdsa_recoverable ( msg, & sk) ;
335
337
let sig = sigr. to_standard ( ) ;
336
338
337
339
let msg = crate :: random_32_bytes ( & mut rand:: thread_rng ( ) ) ;
338
340
let msg = Message :: from_digest_slice ( & msg) . unwrap ( ) ;
339
- assert_eq ! ( s. verify_ecdsa( & msg, & sig, & pk) , Err ( Error :: IncorrectSignature ) ) ;
341
+ assert_eq ! ( s. verify_ecdsa( msg, & sig, & pk) , Err ( Error :: IncorrectSignature ) ) ;
340
342
341
- let recovered_key = s. recover_ecdsa ( & msg, & sigr) . unwrap ( ) ;
343
+ let recovered_key = s. recover_ecdsa ( msg, & sigr) . unwrap ( ) ;
342
344
assert ! ( recovered_key != pk) ;
343
345
}
344
346
@@ -353,9 +355,9 @@ mod tests {
353
355
354
356
let ( sk, pk) = s. generate_keypair ( & mut rand:: thread_rng ( ) ) ;
355
357
356
- let sig = s. sign_ecdsa_recoverable ( & msg, & sk) ;
358
+ let sig = s. sign_ecdsa_recoverable ( msg, & sk) ;
357
359
358
- assert_eq ! ( s. recover_ecdsa( & msg, & sig) , Ok ( pk) ) ;
360
+ assert_eq ! ( s. recover_ecdsa( msg, & sig) , Ok ( pk) ) ;
359
361
}
360
362
361
363
#[ test]
@@ -371,9 +373,9 @@ mod tests {
371
373
372
374
let ( sk, pk) = s. generate_keypair ( & mut rand:: thread_rng ( ) ) ;
373
375
374
- let sig = s. sign_ecdsa_recoverable_with_noncedata ( & msg, & sk, & noncedata) ;
376
+ let sig = s. sign_ecdsa_recoverable_with_noncedata ( msg, & sk, & noncedata) ;
375
377
376
- assert_eq ! ( s. recover_ecdsa( & msg, & sig) , Ok ( pk) ) ;
378
+ assert_eq ! ( s. recover_ecdsa( msg, & sig) , Ok ( pk) ) ;
377
379
}
378
380
379
381
#[ test]
@@ -386,10 +388,10 @@ mod tests {
386
388
387
389
// Zero is not a valid sig
388
390
let sig = RecoverableSignature :: from_compact ( & [ 0 ; 64 ] , RecoveryId :: Zero ) . unwrap ( ) ;
389
- assert_eq ! ( s. recover_ecdsa( & msg, & sig) , Err ( Error :: InvalidSignature ) ) ;
391
+ assert_eq ! ( s. recover_ecdsa( msg, & sig) , Err ( Error :: InvalidSignature ) ) ;
390
392
// ...but 111..111 is
391
393
let sig = RecoverableSignature :: from_compact ( & [ 1 ; 64 ] , RecoveryId :: Zero ) . unwrap ( ) ;
392
- assert ! ( s. recover_ecdsa( & msg, & sig) . is_ok( ) ) ;
394
+ assert ! ( s. recover_ecdsa( msg, & sig) . is_ok( ) ) ;
393
395
}
394
396
395
397
#[ test]
0 commit comments