Skip to content

Commit e68cc5f

Browse files
authored
Merge pull request #42 from Zondax/update-ed
Update ed25519-dalek
2 parents 6436845 + f39d164 commit e68cc5f

File tree

2 files changed

+11
-14
lines changed

2 files changed

+11
-14
lines changed

bolos-mock/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ hmac = "0.11.0"
2222

2323
cfg-if = "1.0.0"
2424

25-
ed25519-dalek = "1.0.1"
25+
ed25519-dalek = "2.1.1"
2626
k256 = "0.13.1"
2727
p256 = "0.13.2"
2828

bolos-mock/src/crypto/ecfp256.rs

Lines changed: 10 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -127,7 +127,11 @@ impl<const B: usize> SecretKey<B> {
127127
*secret.to_bytes().as_ref()
128128
}
129129
Curve::Ed25519 => {
130-
let secret = ed25519_dalek::SecretKey::generate(&mut Self::rng7(path));
130+
use rand_chacha7::rand_core::RngCore;
131+
let mut rng = Self::rng7(path);
132+
let mut bytes = [0u8; 32];
133+
rng.fill_bytes(&mut bytes);
134+
let secret = ed25519_dalek::SigningKey::from_bytes(&bytes);
131135

132136
secret.to_bytes()
133137
}
@@ -172,12 +176,10 @@ impl<const B: usize> SecretKey<B> {
172176
(bytes, uncompressed_point.len())
173177
}
174178
Curve::Ed25519 => {
175-
let secret = ed25519_dalek::SecretKey::from_bytes(&self.bytes[..]).unwrap();
176-
177-
let public = ed25519_dalek::PublicKey::from(&secret);
179+
let secret = ed25519_dalek::SigningKey::from_bytes(&self.bytes);
180+
let public = secret.verifying_key();
178181
let mut bytes = [0; 65];
179-
bytes[..32].copy_from_slice(&public.as_bytes()[..]);
180-
182+
bytes[..32].copy_from_slice(public.as_bytes());
181183
(bytes, 32)
182184
}
183185
_ => unreachable!(),
@@ -233,13 +235,8 @@ impl<const B: usize> SecretKey<B> {
233235
}
234236
Curve::Ed25519 => {
235237
use ed25519_dalek::Signer;
236-
237-
let secret = ed25519_dalek::SecretKey::from_bytes(&self.bytes[..]).unwrap();
238-
let public = ed25519_dalek::PublicKey::from(&secret);
239-
240-
let keypair = ed25519_dalek::Keypair { secret, public };
241-
let sig = keypair.sign(data);
242-
238+
let secret = ed25519_dalek::SigningKey::from_bytes(&self.bytes);
239+
let sig = secret.sign(data);
243240
out[..64].copy_from_slice(&sig.to_bytes()[..]);
244241
Ok((Default::default(), 64))
245242
}

0 commit comments

Comments
 (0)