Skip to content
This repository was archived by the owner on Nov 15, 2023. It is now read-only.

Commit ec6be6e

Browse files
authored
Runtime: avoid duplication and test all signature (#14663)
* runtime: all signature test * test-utils: remove std duplication * runtime: add bls verify test
1 parent aa70241 commit ec6be6e

File tree

2 files changed

+36
-8
lines changed

2 files changed

+36
-8
lines changed

primitives/runtime/src/traits.rs

Lines changed: 36 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2299,11 +2299,27 @@ pub trait BlockNumberProvider {
22992299
mod tests {
23002300
use super::*;
23012301
use crate::codec::{Decode, Encode, Input};
2302+
#[cfg(feature = "bls-experimental")]
2303+
use sp_core::{bls377, bls381};
23022304
use sp_core::{
23032305
crypto::{Pair, UncheckedFrom},
2304-
ecdsa,
2306+
ecdsa, ed25519, sr25519,
23052307
};
23062308

2309+
macro_rules! signature_verify_test {
2310+
($algorithm:ident) => {
2311+
let msg = &b"test-message"[..];
2312+
let wrong_msg = &b"test-msg"[..];
2313+
let (pair, _) = $algorithm::Pair::generate();
2314+
2315+
let signature = pair.sign(&msg);
2316+
assert!($algorithm::Pair::verify(&signature, msg, &pair.public()));
2317+
2318+
assert!(signature.verify(msg, &pair.public()));
2319+
assert!(!signature.verify(wrong_msg, &pair.public()));
2320+
};
2321+
}
2322+
23072323
mod t {
23082324
use sp_application_crypto::{app_crypto, sr25519};
23092325
use sp_core::crypto::KeyTypeId;
@@ -2413,15 +2429,28 @@ mod tests {
24132429
assert_eq!(buffer, [0, 0]);
24142430
}
24152431

2432+
#[test]
2433+
fn ed25519_verify_works() {
2434+
signature_verify_test!(ed25519);
2435+
}
2436+
2437+
#[test]
2438+
fn sr25519_verify_works() {
2439+
signature_verify_test!(sr25519);
2440+
}
2441+
24162442
#[test]
24172443
fn ecdsa_verify_works() {
2418-
let msg = &b"test-message"[..];
2419-
let (pair, _) = ecdsa::Pair::generate();
2444+
signature_verify_test!(ecdsa);
2445+
}
24202446

2421-
let signature = pair.sign(&msg);
2422-
assert!(ecdsa::Pair::verify(&signature, msg, &pair.public()));
2447+
#[cfg(feature = "bls-experimental")]
2448+
fn bls377_verify_works() {
2449+
signature_verify_test!(bls377)
2450+
}
24232451

2424-
assert!(signature.verify(msg, &pair.public()));
2425-
assert!(signature.verify(msg, &pair.public()));
2452+
#[cfg(feature = "bls-experimental")]
2453+
fn bls381_verify_works() {
2454+
signature_verify_test!(bls381)
24262455
}
24272456
}

test-utils/runtime/Cargo.toml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,6 @@ std = [
8383
"log/std",
8484
"sp-offchain/std",
8585
"sp-core/std",
86-
"sp-core/std",
8786
"sp-std/std",
8887
"sp-io/std",
8988
"frame-support/std",

0 commit comments

Comments
 (0)