Skip to content

Commit 96c05a1

Browse files
committed
Upgrade ed25519-dalek dependency to v2.0.0
1 parent c590faa commit 96c05a1

File tree

7 files changed

+162
-75
lines changed

7 files changed

+162
-75
lines changed

Cargo.lock

Lines changed: 127 additions & 6 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

mithril-common/Cargo.toml

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ bech32 = "0.9.1"
2222
blake2 = "0.10.6"
2323
chrono = { version = "0.4.26", features = ["serde"] }
2424
digest = "0.10.7"
25-
ed25519-dalek = { version = "1.0.1", features = ["serde"] }
25+
ed25519-dalek = { version = "2.0.0", features = ["rand_core", "serde"] }
2626
fixed = "1.23.1"
2727
glob = "0.3.1"
2828
hex = "0.4.3"
@@ -34,7 +34,6 @@ kes-summed-ed25519 = { version = "0.2.0", features = [
3434
] }
3535
mockall = "0.11.4"
3636
nom = "7.1.3"
37-
rand-chacha-dalek-compat = { package = "rand_chacha", version = "0.2" }
3837
rand_chacha = "0.3.1"
3938
rand_core = "0.6.4"
4039
rayon = "1.7.0"

mithril-common/src/crypto_helper/cardano/cold_key.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
use ed25519_dalek::Keypair as ColdKeypair;
2-
use rand_chacha_dalek_compat::rand_core::SeedableRng;
3-
use rand_chacha_dalek_compat::ChaCha20Rng;
1+
use ed25519_dalek::SigningKey as ColdKeypair;
2+
use rand_chacha::ChaCha20Rng;
3+
use rand_core::SeedableRng;
44

55
/// A cold key generator / test only
66
#[derive(Debug)]

mithril-common/src/crypto_helper/cardano/opcert.rs

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,10 @@ use crate::crypto_helper::ProtocolPartyId;
66

77
use bech32::{self, ToBase32, Variant};
88
use blake2::{digest::consts::U28, Blake2b, Digest};
9-
use ed25519_dalek::{Keypair as EdKeypair, Signer};
10-
use ed25519_dalek::{PublicKey as EdPublicKey, Signature as EdSignature, Verifier};
9+
use ed25519_dalek::{Signature as EdSignature, Verifier, VerifyingKey as EdPublicKey};
10+
use ed25519_dalek::{Signer, SigningKey as EdKeypair};
1111
use kes_summed_ed25519::PublicKey as KesPublicKey;
12+
use nom::AsBytes;
1213
use serde::de::Error;
1314
use serde::{Deserialize, Deserializer, Serialize, Serializer};
1415
use sha2::Sha256;
@@ -59,7 +60,7 @@ impl OpCert {
5960
start_kes_period: u64,
6061
cold_keypair: EdKeypair,
6162
) -> Self {
62-
let cold_vk: EdPublicKey = cold_keypair.public;
63+
let cold_vk: EdPublicKey = cold_keypair.verifying_key();
6364
let cert_sig = cold_keypair.sign(&Self::compute_message_to_sign(
6465
&kes_vk,
6566
issue_number,
@@ -112,7 +113,7 @@ impl OpCert {
112113
let mut hasher = Blake2b::<U28>::new();
113114
hasher.update(self.cold_vk.as_bytes());
114115
let mut pool_id = [0u8; 28];
115-
pool_id.copy_from_slice(hasher.finalize().as_slice());
116+
pool_id.copy_from_slice(hasher.finalize().as_bytes());
116117
bech32::encode("pool", pool_id.to_base32(), Variant::Bech32)
117118
.map_err(|_| OpCertError::PoolAddressEncoding)
118119
}
@@ -166,7 +167,7 @@ impl<'de> Deserialize<'de> for OpCert {
166167
.map_err(|_| Error::custom("KES vk serialisation error"))?,
167168
issue_number: raw_cert.0 .1,
168169
start_kes_period: raw_cert.0 .2,
169-
cert_sig: EdSignature::from_bytes(&raw_cert.0 .3)
170+
cert_sig: EdSignature::from_slice(&raw_cert.0 .3)
170171
.map_err(|_| Error::custom("ed25519 signature serialisation error"))?,
171172
cold_vk: raw_cert.1,
172173
})

mithril-common/src/crypto_helper/era.rs

Lines changed: 11 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,16 @@
1-
use ed25519_dalek::{ExpandedSecretKey, SignatureError};
2-
use rand_chacha_dalek_compat::rand_core::{self, CryptoRng, RngCore, SeedableRng};
3-
use rand_chacha_dalek_compat::ChaCha20Rng;
1+
use ed25519_dalek::{SignatureError, Signer, SigningKey};
2+
use rand_chacha::rand_core::{self, CryptoRng, RngCore, SeedableRng};
3+
use rand_chacha::ChaCha20Rng;
44
use serde::{Deserialize, Serialize};
55
use thiserror::Error;
66

77
use super::ProtocolKey;
88

9-
/// Alias of [Ed25519:PublicKey](https://docs.rs/ed25519-dalek/latest/ed25519_dalek/struct.PublicKey.html).
10-
pub type EraMarkersVerifierVerificationKey = ProtocolKey<ed25519_dalek::PublicKey>;
9+
/// Alias of [Ed25519:PublicKey](https://docs.rs/ed25519-dalek/latest/ed25519_dalek/struct.VerifyingKey.html).
10+
pub type EraMarkersVerifierVerificationKey = ProtocolKey<ed25519_dalek::VerifyingKey>;
1111

12-
/// Alias of [Ed25519:SecretKey](https://docs.rs/ed25519-dalek/latest/ed25519_dalek/struct.SecretKey.html).
13-
pub type EraMarkersVerifierSecretKey = ProtocolKey<ed25519_dalek::SecretKey>;
12+
/// Alias of [Ed25519:SigningKey](https://docs.rs/ed25519-dalek/latest/ed25519_dalek/struct.SigningKey.html).
13+
pub type EraMarkersVerifierSecretKey = ProtocolKey<ed25519_dalek::SigningKey>;
1414

1515
/// Alias of [Ed25519:Signature](https://docs.rs/ed25519-dalek/latest/ed25519_dalek/struct.Signature.html).
1616
pub type EraMarkersVerifierSignature = ProtocolKey<ed25519_dalek::Signature>;
@@ -35,7 +35,7 @@ impl EraMarkersSigner {
3535
where
3636
R: CryptoRng + RngCore,
3737
{
38-
let secret_key = ed25519_dalek::SecretKey::generate(&mut rng);
38+
let secret_key = SigningKey::generate(&mut rng);
3939
Self::from_secret_key(secret_key.into())
4040
}
4141

@@ -56,31 +56,14 @@ impl EraMarkersSigner {
5656
Self { secret_key }
5757
}
5858

59-
/// Create a an expanded secret key
60-
fn create_expanded_secret_key(&self) -> ExpandedSecretKey {
61-
ExpandedSecretKey::from(&*self.secret_key)
62-
}
63-
64-
/// Create a EraMarkersVerifierVerificationKey
65-
fn create_verification_key(
66-
&self,
67-
expanded_secret_key: &ExpandedSecretKey,
68-
) -> EraMarkersVerifierVerificationKey {
69-
EraMarkersVerifierVerificationKey::new(expanded_secret_key.into())
70-
}
71-
7259
/// Create a EraMarkersVerifier
7360
pub fn create_verifier(&self) -> EraMarkersVerifier {
74-
let expanded_secret_key = self.create_expanded_secret_key();
75-
let verification_key = self.create_verification_key(&expanded_secret_key);
76-
EraMarkersVerifier::from_verification_key(verification_key)
61+
EraMarkersVerifier::from_verification_key(self.secret_key.verifying_key().into())
7762
}
7863

7964
/// Signs a message and returns a EraMarkersVerifierSignature
8065
pub fn sign(&self, message: &[u8]) -> EraMarkersVerifierSignature {
81-
let expanded_secret_key = self.create_expanded_secret_key();
82-
let verification_key = self.create_verification_key(&expanded_secret_key);
83-
expanded_secret_key.sign(message, &verification_key).into()
66+
self.secret_key.sign(message).into()
8467
}
8568
}
8669

@@ -139,7 +122,7 @@ mod tests {
139122
let verifier = signer.create_verifier();
140123
let signer_2 = EraMarkersSigner::create_deterministic_signer();
141124
let verifier_2 = signer.create_verifier();
142-
assert_eq!(signer.secret_key.as_bytes(), signer_2.secret_key.as_bytes());
125+
assert_eq!(signer.secret_key.to_bytes(), signer_2.secret_key.to_bytes());
143126
assert_eq!(
144127
verifier.verification_key.as_bytes(),
145128
verifier_2.verification_key.as_bytes()

0 commit comments

Comments
 (0)