oasis_runtime_sdk/testing/
keys.rs

1//! Module that contains known test keys.
2
3// TODO: Should be derived from seeds once implemented in the Rust version.
4
5/// Define an ed25519 test key.
6macro_rules! test_key_ed25519 {
7    ($doc:expr, $name:ident, $pk:expr) => {
8        #[doc = " Test key "]
9        #[doc=$doc]
10        #[doc = "."]
11        pub mod $name {
12            use crate::{
13                crypto::signature::{ed25519, PublicKey},
14                types::address::{Address, SignatureAddressSpec},
15            };
16
17            #[doc = " Test public key "]
18            #[doc=$doc]
19            #[doc = "."]
20            pub fn pk() -> PublicKey {
21                PublicKey::Ed25519(pk_ed25519())
22            }
23
24            #[doc = " Test Ed25519 public key "]
25            #[doc=$doc]
26            #[doc = "."]
27            pub fn pk_ed25519() -> ed25519::PublicKey {
28                $pk.into()
29            }
30
31            #[doc = " Test address derivation information "]
32            #[doc=$doc]
33            #[doc = "."]
34            pub fn sigspec() -> SignatureAddressSpec {
35                SignatureAddressSpec::Ed25519(pk_ed25519())
36            }
37
38            #[doc = " Test address "]
39            #[doc=$doc]
40            #[doc = "."]
41            pub fn address() -> Address {
42                Address::from_sigspec(&sigspec())
43            }
44        }
45    };
46}
47
48/// Define a secp256k1 test key.
49macro_rules! test_key_secp256k1 {
50    ($doc:expr, $name:ident, $pk:expr) => {
51        #[doc = " Test key "]
52        #[doc=$doc]
53        #[doc = "."]
54        pub mod $name {
55            use crate::{
56                crypto::signature::{secp256k1, PublicKey},
57                types::address::{Address, SignatureAddressSpec},
58            };
59
60            #[doc = " Test public key "]
61            #[doc=$doc]
62            #[doc = "."]
63            pub fn pk() -> PublicKey {
64                PublicKey::Secp256k1(pk_secp256k1())
65            }
66
67            #[doc = " Test Secp256k1 public key "]
68            #[doc=$doc]
69            #[doc = "."]
70            pub fn pk_secp256k1() -> secp256k1::PublicKey {
71                $pk.into()
72            }
73
74            #[doc = " Test address derivation information "]
75            #[doc=$doc]
76            #[doc = "."]
77            pub fn sigspec() -> SignatureAddressSpec {
78                SignatureAddressSpec::Secp256k1Eth(pk_secp256k1())
79            }
80
81            #[doc = " Test address "]
82            #[doc=$doc]
83            #[doc = "."]
84            pub fn address() -> Address {
85                Address::from_sigspec(&sigspec())
86            }
87        }
88    };
89}
90
91/// Define an sr25519 test key.
92macro_rules! test_key_sr25519 {
93    ($doc:expr, $name:ident, $pk:expr) => {
94        #[doc = " Test key "]
95        #[doc=$doc]
96        #[doc = "."]
97        pub mod $name {
98            use crate::{
99                crypto::signature::{sr25519, PublicKey},
100                types::address::{Address, SignatureAddressSpec},
101            };
102
103            #[doc = " Test public key "]
104            #[doc=$doc]
105            #[doc = "."]
106            pub fn pk() -> PublicKey {
107                PublicKey::Sr25519(pk_sr25519())
108            }
109
110            #[doc = " Test Sr25519 public key "]
111            #[doc=$doc]
112            #[doc = "."]
113            pub fn pk_sr25519() -> sr25519::PublicKey {
114                $pk.into()
115            }
116
117            #[doc = " Test address derivation information "]
118            #[doc=$doc]
119            #[doc = "."]
120            pub fn sigspec() -> SignatureAddressSpec {
121                SignatureAddressSpec::Sr25519(pk_sr25519())
122            }
123
124            #[doc = " Test address "]
125            #[doc=$doc]
126            #[doc = "."]
127            pub fn address() -> Address {
128                Address::from_sigspec(&sigspec())
129            }
130        }
131    };
132}
133
134test_key_ed25519!("A", alice, "NcPzNW3YU2T+ugNUtUWtoQnRvbOL9dYSaBfbjHLP1pE=");
135test_key_ed25519!("B", bob, "YgkEiVSR4SMQdfXw+ppuFYlqH0seutnCKk8KG8PyAx0=");
136test_key_ed25519!("C", charlie, "8l1AQE+ETOPLckiNJ7NOD+AfZdaPw6wguir/vSF11YI=");
137test_key_secp256k1!("D", dave, "AwF6GNjbybMzhi3XRj5R1oTiMMkO1nAwB7NZAlH1X4BE");
138test_key_secp256k1!("E", erin, "A9i0oSK+5sLSONbMYGmaFUA+Fb8zzqYEMUMspacIgO09");
139test_key_sr25519!("F", frank, "ljm9ZwdAldhlyWM2B4C+3gQZis+ceaxnt6QA4rOcP0k=");
140test_key_sr25519!("G", grace, "0MHrNhjVTOFWmsOgpWcC3L8jIX3ZatKr0/yxMPtwckc=");