From a892fa7f92c577b583d6239c92366008fbaf5529 Mon Sep 17 00:00:00 2001 From: ashWhiteHat <phantomofrotten@gmail.com> Date: Thu, 17 Aug 2023 17:16:42 +0900 Subject: [PATCH] Runtime: avoid duplication and test all signature (#14663) * runtime: all signature test * test-utils: remove std duplication * runtime: add bls verify test --- substrate/primitives/runtime/src/traits.rs | 43 ++++++++++++++++++---- substrate/test-utils/runtime/Cargo.toml | 1 - 2 files changed, 36 insertions(+), 8 deletions(-) diff --git a/substrate/primitives/runtime/src/traits.rs b/substrate/primitives/runtime/src/traits.rs index 1ff27123810..17dc7ce50ea 100644 --- a/substrate/primitives/runtime/src/traits.rs +++ b/substrate/primitives/runtime/src/traits.rs @@ -2299,11 +2299,27 @@ pub trait BlockNumberProvider { mod tests { use super::*; use crate::codec::{Decode, Encode, Input}; + #[cfg(feature = "bls-experimental")] + use sp_core::{bls377, bls381}; use sp_core::{ crypto::{Pair, UncheckedFrom}, - ecdsa, + ecdsa, ed25519, sr25519, }; + macro_rules! signature_verify_test { + ($algorithm:ident) => { + let msg = &b"test-message"[..]; + let wrong_msg = &b"test-msg"[..]; + let (pair, _) = $algorithm::Pair::generate(); + + let signature = pair.sign(&msg); + assert!($algorithm::Pair::verify(&signature, msg, &pair.public())); + + assert!(signature.verify(msg, &pair.public())); + assert!(!signature.verify(wrong_msg, &pair.public())); + }; + } + mod t { use sp_application_crypto::{app_crypto, sr25519}; use sp_core::crypto::KeyTypeId; @@ -2413,15 +2429,28 @@ mod tests { assert_eq!(buffer, [0, 0]); } + #[test] + fn ed25519_verify_works() { + signature_verify_test!(ed25519); + } + + #[test] + fn sr25519_verify_works() { + signature_verify_test!(sr25519); + } + #[test] fn ecdsa_verify_works() { - let msg = &b"test-message"[..]; - let (pair, _) = ecdsa::Pair::generate(); + signature_verify_test!(ecdsa); + } - let signature = pair.sign(&msg); - assert!(ecdsa::Pair::verify(&signature, msg, &pair.public())); + #[cfg(feature = "bls-experimental")] + fn bls377_verify_works() { + signature_verify_test!(bls377) + } - assert!(signature.verify(msg, &pair.public())); - assert!(signature.verify(msg, &pair.public())); + #[cfg(feature = "bls-experimental")] + fn bls381_verify_works() { + signature_verify_test!(bls381) } } diff --git a/substrate/test-utils/runtime/Cargo.toml b/substrate/test-utils/runtime/Cargo.toml index 320d0e07dec..43ab0da98bd 100644 --- a/substrate/test-utils/runtime/Cargo.toml +++ b/substrate/test-utils/runtime/Cargo.toml @@ -83,7 +83,6 @@ std = [ "log/std", "sp-offchain/std", "sp-core/std", - "sp-core/std", "sp-std/std", "sp-io/std", "frame-support/std", -- GitLab