@@ -4,11 +4,13 @@ use rand_chacha_dalek_compat::ChaCha20Rng;
4
4
use serde:: { Deserialize , Serialize } ;
5
5
use thiserror:: Error ;
6
6
7
+ use super :: ProtocolKey ;
8
+
7
9
/// Alias of [Ed25519:PublicKey](https://docs.rs/ed25519-dalek/latest/ed25519_dalek/struct.PublicKey.html).
8
- pub type EraMarkersVerifierVerificationKey = ed25519_dalek:: PublicKey ;
10
+ pub type EraMarkersVerifierVerificationKey = ProtocolKey < ed25519_dalek:: PublicKey > ;
9
11
10
12
/// Alias of [Ed25519:SecretKey](https://docs.rs/ed25519-dalek/latest/ed25519_dalek/struct.SecretKey.html).
11
- pub type EraMarkersVerifierSecretKey = ed25519_dalek:: SecretKey ;
13
+ pub type EraMarkersVerifierSecretKey = ProtocolKey < ed25519_dalek:: SecretKey > ;
12
14
13
15
/// Alias of [Ed25519:Signature](https://docs.rs/ed25519-dalek/latest/ed25519_dalek/struct.Signature.html).
14
16
pub type EraMarkersVerifierSignature = ed25519_dalek:: Signature ;
@@ -21,7 +23,7 @@ pub enum EraMarkersVerifierError {
21
23
SignatureVerification ( #[ from] SignatureError ) ,
22
24
}
23
25
24
- /// A cryptographic signer that is responsible for signing the EreMarkers
26
+ /// A cryptographic signer that is responsible for signing the EraMarkers
25
27
#[ derive( Debug , Serialize , Deserialize ) ]
26
28
pub struct EraMarkersSigner {
27
29
pub ( crate ) secret_key : EraMarkersVerifierSecretKey ,
@@ -33,8 +35,8 @@ impl EraMarkersSigner {
33
35
where
34
36
R : CryptoRng + RngCore ,
35
37
{
36
- let secret_key = EraMarkersVerifierSecretKey :: generate ( & mut rng) ;
37
- Self :: from_secret_key ( secret_key)
38
+ let secret_key = ed25519_dalek :: SecretKey :: generate ( & mut rng) ;
39
+ Self :: from_secret_key ( secret_key. into ( ) )
38
40
}
39
41
40
42
/// EraMarkersSigner deterministic
@@ -56,16 +58,15 @@ impl EraMarkersSigner {
56
58
57
59
/// Create a an expanded secret key
58
60
fn create_expanded_secret_key ( & self ) -> ExpandedSecretKey {
59
- ExpandedSecretKey :: from ( & self . secret_key )
61
+ ExpandedSecretKey :: from ( & * self . secret_key )
60
62
}
61
63
62
64
/// Create a EraMarkersVerifierVerificationKey
63
65
fn create_verification_key (
64
66
& self ,
65
67
expanded_secret_key : & ExpandedSecretKey ,
66
68
) -> EraMarkersVerifierVerificationKey {
67
- let verification_key: EraMarkersVerifierVerificationKey = expanded_secret_key. into ( ) ;
68
- verification_key
69
+ EraMarkersVerifierVerificationKey :: new ( expanded_secret_key. into ( ) )
69
70
}
70
71
71
72
/// Create a EraMarkersVerifier
@@ -112,25 +113,23 @@ impl EraMarkersVerifier {
112
113
113
114
#[ cfg( test) ]
114
115
mod tests {
115
- use super :: super :: codec:: { key_decode_hex, key_encode_hex} ;
116
116
use super :: * ;
117
117
118
- const GOLDEN_ERA_MARKER_VERIFICATION_KEY : & str =
118
+ const GOLDEN_ERA_MARKERS_VERIFICATION_KEY : & str =
119
119
"5b32332c32372c3131322c362c35372c38342c3138302c342c3135302c3233322c3233372c3132362c3131392c\
120
120
3231342c33352c35342c38312c3230382c3231372c39392c3137302c3233312c3133392c362c3132322c39342c3\
121
121
9322c3137322c32332c3130322c3135372c3136375d";
122
- const GOLDEN_ERA_MARKER_SECRET_KEY : & str =
122
+ const GOLDEN_ERA_MARKERS_SECRET_KEY : & str =
123
123
"5b34332c3133322c3232312c3138382c3235332c3132372c3235352c38362c3136322c3133312c3233332c3131\
124
124
362c3134322c3233352c3131312c3133332c3134312c3138332c302c33392c3132302c3139372c39322c3133302\
125
125
c3233342c34362c3135372c32352c3133322c31352c3234312c3235345d";
126
126
127
127
#[ test]
128
128
fn golden_master ( ) {
129
- let _: EraMarkersVerifierVerificationKey =
130
- key_decode_hex ( GOLDEN_ERA_MARKER_VERIFICATION_KEY )
131
- . expect ( "Decoding golden verification key should not fail" ) ;
129
+ EraMarkersVerifierVerificationKey :: from_json_hex ( GOLDEN_ERA_MARKERS_VERIFICATION_KEY )
130
+ . expect ( "Decoding golden verification key should not fail" ) ;
132
131
133
- let _ : EraMarkersVerifierSecretKey = key_decode_hex ( GOLDEN_ERA_MARKER_SECRET_KEY )
132
+ EraMarkersVerifierSecretKey :: from_json_hex ( GOLDEN_ERA_MARKERS_SECRET_KEY )
134
133
. expect ( "Decoding golden secret key should not fail" ) ;
135
134
}
136
135
@@ -148,11 +147,11 @@ mod tests {
148
147
149
148
println ! (
150
149
"Deterministic Verification Key={}" ,
151
- key_encode_hex ( verifier. verification_key. as_bytes ( ) ) . unwrap( )
150
+ verifier. verification_key. to_json_hex ( ) . unwrap( )
152
151
) ;
153
152
println ! (
154
153
"Deterministic Secret Key=={}" ,
155
- key_encode_hex ( signer. secret_key. as_bytes ( ) ) . unwrap( )
154
+ signer. secret_key. to_json_hex ( ) . unwrap( )
156
155
) ;
157
156
}
158
157
@@ -163,25 +162,24 @@ mod tests {
163
162
164
163
println ! (
165
164
"Non Deterministic Verification Key={}" ,
166
- key_encode_hex ( verifier. verification_key. as_bytes ( ) ) . unwrap( )
165
+ verifier. verification_key. to_json_hex ( ) . unwrap( )
167
166
) ;
168
167
println ! (
169
168
"Non Deterministic Secret Key=={}" ,
170
- key_encode_hex ( signer. secret_key. as_bytes ( ) ) . unwrap( )
169
+ signer. secret_key. to_json_hex ( ) . unwrap( )
171
170
) ;
172
171
}
173
172
174
173
#[ test]
175
174
fn test_codec_keypair ( ) {
176
175
let signer = EraMarkersSigner :: create_deterministic_signer ( ) ;
177
176
let verifier = signer. create_verifier ( ) ;
178
- let secret_key_encoded = key_encode_hex ( signer. secret_key . as_bytes ( ) ) . unwrap ( ) ;
179
- let verification_key_encoded =
180
- key_encode_hex ( verifier. verification_key . as_bytes ( ) ) . unwrap ( ) ;
177
+ let secret_key_encoded = signer. secret_key . to_json_hex ( ) . unwrap ( ) ;
178
+ let verification_key_encoded = verifier. verification_key . to_json_hex ( ) . unwrap ( ) ;
181
179
let secret_key_decoded: EraMarkersVerifierSecretKey =
182
- key_decode_hex ( & secret_key_encoded) . unwrap ( ) ;
180
+ secret_key_encoded. try_into ( ) . unwrap ( ) ;
183
181
let verification_key_decoded: EraMarkersVerifierVerificationKey =
184
- key_decode_hex ( & verification_key_encoded) . unwrap ( ) ;
182
+ verification_key_encoded. try_into ( ) . unwrap ( ) ;
185
183
let signer_decoded = EraMarkersSigner :: from_secret_key ( secret_key_decoded) ;
186
184
let verifier_decoded = EraMarkersVerifier :: from_verification_key ( verification_key_decoded) ;
187
185
0 commit comments