Skip to content

Commit ae222f7

Browse files
committed
Convert EraMarkersVerifierSignature to ProtocolKey
1 parent 5d2ff1d commit ae222f7

File tree

2 files changed

+15
-28
lines changed

2 files changed

+15
-28
lines changed

mithril-common/src/crypto_helper/era.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ pub type EraMarkersVerifierVerificationKey = ProtocolKey<ed25519_dalek::PublicKe
1313
pub type EraMarkersVerifierSecretKey = ProtocolKey<ed25519_dalek::SecretKey>;
1414

1515
/// Alias of [Ed25519:Signature](https://docs.rs/ed25519-dalek/latest/ed25519_dalek/struct.Signature.html).
16-
pub type EraMarkersVerifierSignature = ed25519_dalek::Signature;
16+
pub type EraMarkersVerifierSignature = ProtocolKey<ed25519_dalek::Signature>;
1717

1818
#[derive(Error, Debug)]
1919
/// [EraMarkersSigner] and [EraMarkersVerifier] related errors.
@@ -80,7 +80,7 @@ impl EraMarkersSigner {
8080
pub fn sign(&self, message: &[u8]) -> EraMarkersVerifierSignature {
8181
let expanded_secret_key = self.create_expanded_secret_key();
8282
let verification_key = self.create_verification_key(&expanded_secret_key);
83-
expanded_secret_key.sign(message, &verification_key)
83+
expanded_secret_key.sign(message, &verification_key).into()
8484
}
8585
}
8686

mithril-common/src/era/adapters/cardano_chain.rs

Lines changed: 13 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,10 @@ use crate::{
44
key_decode_hex, EraMarkersSigner, EraMarkersVerifier, EraMarkersVerifierSignature,
55
EraMarkersVerifierVerificationKey,
66
},
7-
entities::HexEncodedEraMarkersSignature,
87
era::{EraMarker, EraReaderAdapter},
98
StdError, StdResult,
109
};
1110
use async_trait::async_trait;
12-
use hex::{FromHex, ToHex};
1311
use serde::{Deserialize, Serialize};
1412
use std::sync::Arc;
1513
use thiserror::Error;
@@ -45,7 +43,7 @@ pub struct EraMarkersPayload {
4543
pub markers: Vec<EraMarker>,
4644

4745
/// Era markers signature
48-
pub signature: Option<HexEncodedEraMarkersSignature>,
46+
pub signature: Option<EraMarkersVerifierSignature>,
4947
}
5048

5149
impl EraMarkersPayload {
@@ -54,39 +52,28 @@ impl EraMarkersPayload {
5452
.map_err(|e| EraMarkersPayloadError::SerializeMessage(e.into()))
5553
}
5654

57-
fn deserialize_signature(&self) -> Result<EraMarkersVerifierSignature, EraMarkersPayloadError> {
58-
EraMarkersVerifierSignature::from_bytes(
59-
&Vec::from_hex(
60-
self.signature
61-
.as_ref()
62-
.ok_or(EraMarkersPayloadError::MissingSignature)?,
63-
)
64-
.map_err(|e| EraMarkersPayloadError::DeserializeSignature(e.into()))?,
65-
)
66-
.map_err(|e| EraMarkersPayloadError::DeserializeSignature(e.into()))
67-
}
68-
6955
/// Verify the signature an era markers payload
7056
pub fn verify_signature(
7157
&self,
7258
verification_key: EraMarkersVerifierVerificationKey,
7359
) -> Result<(), EraMarkersPayloadError> {
60+
let signature = self
61+
.signature
62+
.ok_or(EraMarkersPayloadError::MissingSignature)?;
7463
let markers_verifier = EraMarkersVerifier::from_verification_key(verification_key);
7564

7665
markers_verifier
77-
.verify(&self.message_to_bytes()?, &self.deserialize_signature()?)
66+
.verify(&self.message_to_bytes()?, &signature)
7867
.map_err(|e| EraMarkersPayloadError::VerifySignature(e.into()))
7968
}
8069

8170
/// Sign an era markers payload
8271
pub fn sign(self, signer: &EraMarkersSigner) -> Result<Self, EraMarkersPayloadError> {
83-
let signature = signer
84-
.sign(
85-
&self
86-
.message_to_bytes()
87-
.map_err(|e| EraMarkersPayloadError::CreateSignature(e.into()))?,
88-
)
89-
.encode_hex::<String>();
72+
let signature = signer.sign(
73+
&self
74+
.message_to_bytes()
75+
.map_err(|e| EraMarkersPayloadError::CreateSignature(e.into()))?,
76+
);
9077

9178
Ok(Self {
9279
markers: self.markers,
@@ -155,7 +142,7 @@ mod test {
155142

156143
use super::*;
157144

158-
const GOLDEN_ERA_MARKERS_PAYLOAD: &str =
145+
const GOLDEN_ERA_MARKERS_PAYLOAD_WITH_SIGNATURE: &str =
159146
"7b226d61726b657273223a5b7b226e616d65223a227468616c6573222c2265706f6368223a317d2c7b226e616d\
160147
65223a227079746861676f726173222c2265706f6368223a327d5d2c227369676e6174757265223a22633539373\
161148
9653333663163336234376361306162353239386536353562316264653235656564303866356232653536663361\
@@ -175,8 +162,8 @@ mod test {
175162
}
176163

177164
#[test]
178-
fn golden_markers_payload() {
179-
let _: EraMarkersPayload = key_decode_hex(GOLDEN_ERA_MARKERS_PAYLOAD)
165+
fn golden_markers_payload_with_signature() {
166+
let _: EraMarkersPayload = key_decode_hex(GOLDEN_ERA_MARKERS_PAYLOAD_WITH_SIGNATURE)
180167
.expect("Decoding golden markers payload should not fail");
181168
}
182169

0 commit comments

Comments
 (0)