oasis_runtime_sdk/testing/
keys.rs1macro_rules! test_key_ed25519 {
5 ($doc:expr, $name:ident, $seed:expr) => {
6 #[doc = " Test key "]
7 #[doc=$doc]
8 #[doc = "."]
9 pub mod $name {
10 use crate::{
11 core::common::crypto::hash::Hash,
12 crypto::signature::{ed25519, PublicKey, Signer},
13 types::address::{Address, SignatureAddressSpec},
14 };
15
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
24 #[doc = " Test public key "]
25 #[doc=$doc]
26 #[doc = "."]
27 pub fn pk() -> PublicKey {
28 signer().public_key()
29 }
30
31 #[doc = " Test Ed25519 public key "]
32 #[doc=$doc]
33 #[doc = "."]
34 pub fn pk_ed25519() -> ed25519::PublicKey {
35 if let PublicKey::Ed25519(pk) = pk() {
36 pk
37 } else {
38 unreachable!()
39 }
40 }
41
42 #[doc = " Test address derivation information "]
43 #[doc=$doc]
44 #[doc = "."]
45 pub fn sigspec() -> SignatureAddressSpec {
46 SignatureAddressSpec::Ed25519(pk_ed25519())
47 }
48
49 #[doc = " Test address "]
50 #[doc=$doc]
51 #[doc = "."]
52 pub fn address() -> Address {
53 Address::from_sigspec(&sigspec())
54 }
55 }
56 };
57}
58
59macro_rules! test_key_secp256k1 {
61 ($doc:expr, $name:ident, $seed:expr) => {
62 #[doc = " Test key "]
63 #[doc=$doc]
64 #[doc = "."]
65 pub mod $name {
66 use crate::{
67 core::common::crypto::hash::Hash,
68 crypto::signature::{secp256k1, PublicKey, Signer},
69 types::address::{Address, SignatureAddressSpec},
70 };
71
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
80 #[doc = " Test public key "]
81 #[doc=$doc]
82 #[doc = "."]
83 pub fn pk() -> PublicKey {
84 signer().public_key()
85 }
86
87 #[doc = " Test Secp256k1 public key "]
88 #[doc=$doc]
89 #[doc = "."]
90 pub fn pk_secp256k1() -> secp256k1::PublicKey {
91 if let PublicKey::Secp256k1(pk) = pk() {
92 pk
93 } else {
94 unreachable!()
95 }
96 }
97
98 #[doc = " Test address derivation information "]
99 #[doc=$doc]
100 #[doc = "."]
101 pub fn sigspec() -> SignatureAddressSpec {
102 SignatureAddressSpec::Secp256k1Eth(pk_secp256k1())
103 }
104
105 #[doc = " Test address "]
106 #[doc=$doc]
107 #[doc = "."]
108 pub fn address() -> Address {
109 Address::from_sigspec(&sigspec())
110 }
111 }
112 };
113}
114
115macro_rules! test_key_sr25519 {
117 ($doc:expr, $name:ident, $seed:expr) => {
118 #[doc = " Test key "]
119 #[doc=$doc]
120 #[doc = "."]
121 pub mod $name {
122 use crate::{
123 core::common::crypto::hash::Hash,
124 crypto::signature::{sr25519, PublicKey, Signer},
125 types::address::{Address, SignatureAddressSpec},
126 };
127
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
136 #[doc = " Test public key "]
137 #[doc=$doc]
138 #[doc = "."]
139 pub fn pk() -> PublicKey {
140 signer().public_key()
141 }
142
143 #[doc = " Test Sr25519 public key "]
144 #[doc=$doc]
145 #[doc = "."]
146 pub fn pk_sr25519() -> sr25519::PublicKey {
147 if let PublicKey::Sr25519(pk) = pk() {
148 pk
149 } else {
150 unreachable!()
151 }
152 }
153
154 #[doc = " Test address derivation information "]
155 #[doc=$doc]
156 #[doc = "."]
157 pub fn sigspec() -> SignatureAddressSpec {
158 SignatureAddressSpec::Sr25519(pk_sr25519())
159 }
160
161 #[doc = " Test address "]
162 #[doc=$doc]
163 #[doc = "."]
164 pub fn address() -> Address {
165 Address::from_sigspec(&sigspec())
166 }
167 }
168 };
169}
170
171test_key_ed25519!("A", alice, "oasis-runtime-sdk/test-keys: alice");
172test_key_ed25519!("B", bob, "oasis-runtime-sdk/test-keys: bob");
173test_key_ed25519!("C", charlie, "oasis-runtime-sdk/test-keys: charlie");
174test_key_secp256k1!("D", dave, "oasis-runtime-sdk/test-keys: dave");
175test_key_secp256k1!("E", erin, "oasis-runtime-sdk/test-keys: erin");
176test_key_sr25519!("F", frank, "oasis-runtime-sdk/test-keys: frank");
177test_key_sr25519!("G", grace, "oasis-runtime-sdk/test-keys: grace");