Skip to content

Commit b04dc19

Browse files
committed
runtime-sdk/testing: Also provide signers for test keys
1 parent d7d8dea commit b04dc19

1 file changed

Lines changed: 58 additions & 21 deletions

File tree

runtime-sdk/src/testing/keys.rs

Lines changed: 58 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1,31 +1,42 @@
11
//! Module that contains known test keys.
22
3-
// TODO: Should be derived from seeds once implemented in the Rust version.
4-
53
/// Define an ed25519 test key.
64
macro_rules! test_key_ed25519 {
7-
($doc:expr, $name:ident, $pk:expr) => {
5+
($doc:expr, $name:ident, $seed:expr) => {
86
#[doc = " Test key "]
97
#[doc=$doc]
108
#[doc = "."]
119
pub mod $name {
1210
use crate::{
13-
crypto::signature::{ed25519, PublicKey},
11+
core::common::crypto::hash::Hash,
12+
crypto::signature::{ed25519, PublicKey, Signer},
1413
types::address::{Address, SignatureAddressSpec},
1514
};
1615

16+
#[doc = " Test Ed25519 signer "]
17+
#[doc=$doc]
18+
#[doc = "."]
19+
pub fn signer() -> ed25519::MemorySigner {
20+
let seed = Hash::digest_bytes($seed.as_bytes());
21+
ed25519::MemorySigner::new_from_seed(seed.as_ref()).unwrap()
22+
}
23+
1724
#[doc = " Test public key "]
1825
#[doc=$doc]
1926
#[doc = "."]
2027
pub fn pk() -> PublicKey {
21-
PublicKey::Ed25519(pk_ed25519())
28+
signer().public_key()
2229
}
2330

2431
#[doc = " Test Ed25519 public key "]
2532
#[doc=$doc]
2633
#[doc = "."]
2734
pub fn pk_ed25519() -> ed25519::PublicKey {
28-
$pk.into()
35+
if let PublicKey::Ed25519(pk) = pk() {
36+
pk
37+
} else {
38+
unreachable!()
39+
}
2940
}
3041

3142
#[doc = " Test address derivation information "]
@@ -47,28 +58,41 @@ macro_rules! test_key_ed25519 {
4758

4859
/// Define a secp256k1 test key.
4960
macro_rules! test_key_secp256k1 {
50-
($doc:expr, $name:ident, $pk:expr) => {
61+
($doc:expr, $name:ident, $seed:expr) => {
5162
#[doc = " Test key "]
5263
#[doc=$doc]
5364
#[doc = "."]
5465
pub mod $name {
5566
use crate::{
56-
crypto::signature::{secp256k1, PublicKey},
67+
core::common::crypto::hash::Hash,
68+
crypto::signature::{secp256k1, PublicKey, Signer},
5769
types::address::{Address, SignatureAddressSpec},
5870
};
5971

72+
#[doc = " Test Secp256k1 signer "]
73+
#[doc=$doc]
74+
#[doc = "."]
75+
pub fn signer() -> secp256k1::MemorySigner {
76+
let seed = Hash::digest_bytes($seed.as_bytes());
77+
secp256k1::MemorySigner::new_from_seed(seed.as_ref()).unwrap()
78+
}
79+
6080
#[doc = " Test public key "]
6181
#[doc=$doc]
6282
#[doc = "."]
6383
pub fn pk() -> PublicKey {
64-
PublicKey::Secp256k1(pk_secp256k1())
84+
signer().public_key()
6585
}
6686

6787
#[doc = " Test Secp256k1 public key "]
6888
#[doc=$doc]
6989
#[doc = "."]
7090
pub fn pk_secp256k1() -> secp256k1::PublicKey {
71-
$pk.into()
91+
if let PublicKey::Secp256k1(pk) = pk() {
92+
pk
93+
} else {
94+
unreachable!()
95+
}
7296
}
7397

7498
#[doc = " Test address derivation information "]
@@ -90,28 +114,41 @@ macro_rules! test_key_secp256k1 {
90114

91115
/// Define an sr25519 test key.
92116
macro_rules! test_key_sr25519 {
93-
($doc:expr, $name:ident, $pk:expr) => {
117+
($doc:expr, $name:ident, $seed:expr) => {
94118
#[doc = " Test key "]
95119
#[doc=$doc]
96120
#[doc = "."]
97121
pub mod $name {
98122
use crate::{
99-
crypto::signature::{sr25519, PublicKey},
123+
core::common::crypto::hash::Hash,
124+
crypto::signature::{sr25519, PublicKey, Signer},
100125
types::address::{Address, SignatureAddressSpec},
101126
};
102127

128+
#[doc = " Test Sr25519 signer "]
129+
#[doc=$doc]
130+
#[doc = "."]
131+
pub fn signer() -> sr25519::MemorySigner {
132+
let seed = Hash::digest_bytes($seed.as_bytes());
133+
sr25519::MemorySigner::new_from_seed(seed.as_ref()).unwrap()
134+
}
135+
103136
#[doc = " Test public key "]
104137
#[doc=$doc]
105138
#[doc = "."]
106139
pub fn pk() -> PublicKey {
107-
PublicKey::Sr25519(pk_sr25519())
140+
signer().public_key()
108141
}
109142

110143
#[doc = " Test Sr25519 public key "]
111144
#[doc=$doc]
112145
#[doc = "."]
113146
pub fn pk_sr25519() -> sr25519::PublicKey {
114-
$pk.into()
147+
if let PublicKey::Sr25519(pk) = pk() {
148+
pk
149+
} else {
150+
unreachable!()
151+
}
115152
}
116153

117154
#[doc = " Test address derivation information "]
@@ -131,10 +168,10 @@ macro_rules! test_key_sr25519 {
131168
};
132169
}
133170

134-
test_key_ed25519!("A", alice, "NcPzNW3YU2T+ugNUtUWtoQnRvbOL9dYSaBfbjHLP1pE=");
135-
test_key_ed25519!("B", bob, "YgkEiVSR4SMQdfXw+ppuFYlqH0seutnCKk8KG8PyAx0=");
136-
test_key_ed25519!("C", charlie, "8l1AQE+ETOPLckiNJ7NOD+AfZdaPw6wguir/vSF11YI=");
137-
test_key_secp256k1!("D", dave, "AwF6GNjbybMzhi3XRj5R1oTiMMkO1nAwB7NZAlH1X4BE");
138-
test_key_secp256k1!("E", erin, "A9i0oSK+5sLSONbMYGmaFUA+Fb8zzqYEMUMspacIgO09");
139-
test_key_sr25519!("F", frank, "ljm9ZwdAldhlyWM2B4C+3gQZis+ceaxnt6QA4rOcP0k=");
140-
test_key_sr25519!("G", grace, "0MHrNhjVTOFWmsOgpWcC3L8jIX3ZatKr0/yxMPtwckc=");
171+
test_key_ed25519!("A", alice, "oasis-runtime-sdk/test-keys: alice");
172+
test_key_ed25519!("B", bob, "oasis-runtime-sdk/test-keys: bob");
173+
test_key_ed25519!("C", charlie, "oasis-runtime-sdk/test-keys: charlie");
174+
test_key_secp256k1!("D", dave, "oasis-runtime-sdk/test-keys: dave");
175+
test_key_secp256k1!("E", erin, "oasis-runtime-sdk/test-keys: erin");
176+
test_key_sr25519!("F", frank, "oasis-runtime-sdk/test-keys: frank");
177+
test_key_sr25519!("G", grace, "oasis-runtime-sdk/test-keys: grace");

0 commit comments

Comments
 (0)