Skip to content

Commit 2d672e2

Browse files
committed
Merge #751: Reorder verify_ecdsa args to match those of verify_schnorr
c051b14 Reorder verify_ecdsa args to match the order of verify_schnorr (Shing Him Ng) Pull request description: The issue (#617) seemed to have good support with 4 thumbs up, so this PR will reorder `verify_ecdsa` args to match those of `verify_schnorr`, which just swaps the place of `msg` and `sig`. This will break the API, but will potentially cause less confusion in the future Closes #617 ACKs for top commit: apoelstra: ACK c051b14; successfully ran local tests tcharding: ACK c051b14 Tree-SHA512: 0798baa48e3073aea2fc68195124bf1d9c99fcfff2306f931b89fe8a6d0a8157203098cf6e5979c6f3baa09d294e251d915ab55d6a49b34d186f61853667b057
2 parents b26515c + c051b14 commit 2d672e2

File tree

6 files changed

+31
-31
lines changed

6 files changed

+31
-31
lines changed

examples/sign_verify.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ fn verify<C: Verification>(
1515
let sig = ecdsa::Signature::from_compact(&sig)?;
1616
let pubkey = PublicKey::from_slice(&pubkey)?;
1717

18-
Ok(secp.verify_ecdsa(msg, &sig, &pubkey).is_ok())
18+
Ok(secp.verify_ecdsa(&sig, msg, &pubkey).is_ok())
1919
}
2020

2121
fn sign<C: Signing>(

no_std_test/src/main.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -91,10 +91,10 @@ fn start(_argc: isize, _argv: *const *const u8) -> isize {
9191
let message = Message::from_digest_slice(&[0xab; 32]).expect("32 bytes");
9292

9393
let sig = secp.sign_ecdsa(message, &secret_key);
94-
assert!(secp.verify_ecdsa(message, &sig, &public_key).is_ok());
94+
assert!(secp.verify_ecdsa(&sig, message, &public_key).is_ok());
9595

9696
let rec_sig = secp.sign_ecdsa_recoverable(message, &secret_key);
97-
assert!(secp.verify_ecdsa(message, &rec_sig.to_standard(), &public_key).is_ok());
97+
assert!(secp.verify_ecdsa(&rec_sig.to_standard(), message, &public_key).is_ok());
9898
assert_eq!(public_key, secp.recover_ecdsa(message, &rec_sig).unwrap());
9999
let (rec_id, data) = rec_sig.serialize_compact();
100100
let new_rec_sig = ecdsa::RecoverableSignature::from_compact(&data, rec_id).unwrap();
@@ -118,7 +118,7 @@ fn start(_argc: isize, _argv: *const *const u8) -> isize {
118118
let message = Message::from_digest_slice(&[0xab; 32]).expect("32 bytes");
119119

120120
let sig = secp_alloc.sign_ecdsa(message, &secret_key);
121-
assert!(secp_alloc.verify_ecdsa(message, &sig, &public_key).is_ok());
121+
assert!(secp_alloc.verify_ecdsa(&sig, message, &public_key).is_ok());
122122
unsafe { libc::printf("Verified alloc Successfully!\n\0".as_ptr() as _) };
123123
}
124124

src/ecdsa/mod.rs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -195,7 +195,7 @@ impl Signature {
195195
#[inline]
196196
#[cfg(feature = "global-context")]
197197
pub fn verify(&self, msg: impl Into<Message>, pk: &PublicKey) -> Result<(), Error> {
198-
SECP256K1.verify_ecdsa(msg, self, pk)
198+
SECP256K1.verify_ecdsa(self, msg, pk)
199199
}
200200
}
201201

@@ -375,17 +375,17 @@ impl<C: Verification> Secp256k1<C> {
375375
/// #
376376
/// let message = Message::from_digest_slice(&[0xab; 32]).expect("32 bytes");
377377
/// let sig = secp.sign_ecdsa(message, &secret_key);
378-
/// assert_eq!(secp.verify_ecdsa(message, &sig, &public_key), Ok(()));
378+
/// assert_eq!(secp.verify_ecdsa(&sig, message, &public_key), Ok(()));
379379
///
380380
/// let message = Message::from_digest_slice(&[0xcd; 32]).expect("32 bytes");
381-
/// assert_eq!(secp.verify_ecdsa(message, &sig, &public_key), Err(Error::IncorrectSignature));
381+
/// assert_eq!(secp.verify_ecdsa(&sig, message, &public_key), Err(Error::IncorrectSignature));
382382
/// # }
383383
/// ```
384384
#[inline]
385385
pub fn verify_ecdsa(
386386
&self,
387-
msg: impl Into<Message>,
388387
sig: &Signature,
388+
msg: impl Into<Message>,
389389
pk: &PublicKey,
390390
) -> Result<(), Error> {
391391
let msg = msg.into();

src/ecdsa/recovery.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -361,7 +361,7 @@ mod tests {
361361

362362
let msg = crate::random_32_bytes(&mut rand::rng());
363363
let msg = Message::from_digest_slice(&msg).unwrap();
364-
assert_eq!(s.verify_ecdsa(msg, &sig, &pk), Err(Error::IncorrectSignature));
364+
assert_eq!(s.verify_ecdsa(&sig, msg, &pk), Err(Error::IncorrectSignature));
365365

366366
let recovered_key = s.recover_ecdsa(msg, &sigr).unwrap();
367367
assert!(recovered_key != pk);

src/key.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -743,7 +743,7 @@ impl PublicKey {
743743
msg: impl Into<Message>,
744744
sig: &ecdsa::Signature,
745745
) -> Result<(), Error> {
746-
secp.verify_ecdsa(msg, sig, self)
746+
secp.verify_ecdsa(sig, msg, self)
747747
}
748748
}
749749

src/lib.rs

Lines changed: 21 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@
3939
//! let message = Message::from_digest(digest.to_byte_array());
4040
//!
4141
//! let sig = secp.sign_ecdsa(message, &secret_key);
42-
//! assert!(secp.verify_ecdsa(message, &sig, &public_key).is_ok());
42+
//! assert!(secp.verify_ecdsa(&sig, message, &public_key).is_ok());
4343
//! # }
4444
//! ```
4545
//!
@@ -76,7 +76,7 @@
7676
//! let message = Message::from_digest(compute_hash(b"CSW is not Satoshi"));
7777
//!
7878
//! let sig = secp.sign_ecdsa(message, &secret_key);
79-
//! assert!(secp.verify_ecdsa(message, &sig, &public_key).is_ok());
79+
//! assert!(secp.verify_ecdsa(&sig, message, &public_key).is_ok());
8080
//! # }
8181
//! ```
8282
//!
@@ -115,7 +115,7 @@
115115
//! ]).expect("compact signatures are 64 bytes; DER signatures are 68-72 bytes");
116116
//!
117117
//! # #[cfg(not(secp256k1_fuzz))]
118-
//! assert!(secp.verify_ecdsa(message, &sig, &public_key).is_ok());
118+
//! assert!(secp.verify_ecdsa(&sig, message, &public_key).is_ok());
119119
//! # }
120120
//! ```
121121
//!
@@ -548,8 +548,8 @@ mod tests {
548548
let sig = full.sign_ecdsa(msg, &sk);
549549

550550
// Try verifying
551-
assert!(vrfy.verify_ecdsa(msg, &sig, &pk).is_ok());
552-
assert!(full.verify_ecdsa(msg, &sig, &pk).is_ok());
551+
assert!(vrfy.verify_ecdsa(&sig, msg, &pk).is_ok());
552+
assert!(full.verify_ecdsa(&sig, msg, &pk).is_ok());
553553

554554
// The following drop will have no effect; in fact, they will trigger a compiler
555555
// error because manually dropping a `ManuallyDrop` is almost certainly incorrect.
@@ -615,8 +615,8 @@ mod tests {
615615
let sig = full.sign_ecdsa(msg, &sk);
616616

617617
// Try verifying
618-
assert!(vrfy.verify_ecdsa(msg, &sig, &pk).is_ok());
619-
assert!(full.verify_ecdsa(msg, &sig, &pk).is_ok());
618+
assert!(vrfy.verify_ecdsa(&sig, msg, &pk).is_ok());
619+
assert!(full.verify_ecdsa(&sig, msg, &pk).is_ok());
620620
}
621621

622622
#[test]
@@ -637,8 +637,8 @@ mod tests {
637637
let sig = full.sign_ecdsa(msg, &sk);
638638

639639
// Try verifying
640-
assert!(vrfy.verify_ecdsa(msg, &sig, &pk).is_ok());
641-
assert!(full.verify_ecdsa(msg, &sig, &pk).is_ok());
640+
assert!(vrfy.verify_ecdsa(&sig, msg, &pk).is_ok());
641+
assert!(full.verify_ecdsa(&sig, msg, &pk).is_ok());
642642

643643
// Check that we can produce keys from slices with no precomputation
644644
let (pk_slice, sk_slice) = (&pk.serialize(), &sk[..]);
@@ -751,13 +751,13 @@ mod tests {
751751

752752
let (sk, pk) = s.generate_keypair(&mut rand::rng());
753753
let sig = s.sign_ecdsa(msg, &sk);
754-
assert_eq!(s.verify_ecdsa(msg, &sig, &pk), Ok(()));
754+
assert_eq!(s.verify_ecdsa(&sig, msg, &pk), Ok(()));
755755
let noncedata_sig = s.sign_ecdsa_with_noncedata(msg, &sk, &noncedata);
756-
assert_eq!(s.verify_ecdsa(msg, &noncedata_sig, &pk), Ok(()));
756+
assert_eq!(s.verify_ecdsa(&noncedata_sig, msg, &pk), Ok(()));
757757
let low_r_sig = s.sign_ecdsa_low_r(msg, &sk);
758-
assert_eq!(s.verify_ecdsa(msg, &low_r_sig, &pk), Ok(()));
758+
assert_eq!(s.verify_ecdsa(&low_r_sig, msg, &pk), Ok(()));
759759
let grind_r_sig = s.sign_ecdsa_grind_r(msg, &sk, 1);
760-
assert_eq!(s.verify_ecdsa(msg, &grind_r_sig, &pk), Ok(()));
760+
assert_eq!(s.verify_ecdsa(&grind_r_sig, msg, &pk), Ok(()));
761761
let compact = sig.serialize_compact();
762762
if compact[0] < 0x80 {
763763
assert_eq!(sig, low_r_sig);
@@ -799,9 +799,9 @@ mod tests {
799799
let low_r_sig = s.sign_ecdsa_low_r(msg, &key);
800800
let grind_r_sig = s.sign_ecdsa_grind_r(msg, &key, 1);
801801
let pk = PublicKey::from_secret_key(&s, &key);
802-
assert_eq!(s.verify_ecdsa(msg, &sig, &pk), Ok(()));
803-
assert_eq!(s.verify_ecdsa(msg, &low_r_sig, &pk), Ok(()));
804-
assert_eq!(s.verify_ecdsa(msg, &grind_r_sig, &pk), Ok(()));
802+
assert_eq!(s.verify_ecdsa(&sig, msg, &pk), Ok(()));
803+
assert_eq!(s.verify_ecdsa(&low_r_sig, msg, &pk), Ok(()));
804+
assert_eq!(s.verify_ecdsa(&grind_r_sig, msg, &pk), Ok(()));
805805
}
806806
}
807807
}
@@ -821,7 +821,7 @@ mod tests {
821821

822822
let msg = crate::random_32_bytes(&mut rand::rng());
823823
let msg = Message::from_digest(msg);
824-
assert_eq!(s.verify_ecdsa(msg, &sig, &pk), Err(Error::IncorrectSignature));
824+
assert_eq!(s.verify_ecdsa(&sig, msg, &pk), Err(Error::IncorrectSignature));
825825
}
826826

827827
#[test]
@@ -914,10 +914,10 @@ mod tests {
914914
let msg = Message::from_digest(msg);
915915

916916
// without normalization we expect this will fail
917-
assert_eq!(secp.verify_ecdsa(msg, &sig, &pk), Err(Error::IncorrectSignature));
917+
assert_eq!(secp.verify_ecdsa(&sig, msg, &pk), Err(Error::IncorrectSignature));
918918
// after normalization it should pass
919919
sig.normalize_s();
920-
assert_eq!(secp.verify_ecdsa(msg, &sig, &pk), Ok(()));
920+
assert_eq!(secp.verify_ecdsa(&sig, msg, &pk), Ok(()));
921921
}
922922

923923
#[test]
@@ -1001,7 +1001,7 @@ mod tests {
10011001

10021002
// Check usage as self
10031003
let sig = SECP256K1.sign_ecdsa(msg, &sk);
1004-
assert!(SECP256K1.verify_ecdsa(msg, &sig, &pk).is_ok());
1004+
assert!(SECP256K1.verify_ecdsa(&sig, msg, &pk).is_ok());
10051005
}
10061006
}
10071007

@@ -1046,7 +1046,7 @@ mod benches {
10461046
let sig = s.sign_ecdsa(msg, &sk);
10471047

10481048
bh.iter(|| {
1049-
let res = s.verify_ecdsa(msg, &sig, &pk).unwrap();
1049+
let res = s.verify_ecdsa(&sig, msg, &pk).unwrap();
10501050
black_box(res);
10511051
});
10521052
}

0 commit comments

Comments
 (0)