bump ed25519-dalek to 2.0 (#14776)

* bump ed25519-dalek to 2.0

* sp-statement-store: don't use deprecated SecretKey::new

* Remove snow patch

---------

Co-authored-by: Sebastian Kunert <skunert49@gmail.com>
This commit is contained in:
André Silva
2023-08-21 15:00:59 +01:00
committed by GitHub
parent a13382f192
commit 4ce001be47
5 changed files with 65 additions and 47 deletions
+56 -35
View File
@@ -1894,18 +1894,32 @@ dependencies = [
[[package]]
name = "curve25519-dalek"
version = "4.0.0-rc.1"
version = "4.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8d4ba9852b42210c7538b75484f9daa0655e9a3ac04f693747bb0f02cf3cfe16"
checksum = "f711ade317dd348950a9910f81c5947e3d8907ebd2b83f76203ff1807e6a2bc2"
dependencies = [
"cfg-if",
"cpufeatures",
"curve25519-dalek-derive",
"digest 0.10.7",
"fiat-crypto",
"packed_simd_2",
"platforms",
"rustc_version 0.4.0",
"subtle",
"zeroize",
]
[[package]]
name = "curve25519-dalek-derive"
version = "0.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "83fdaf97f4804dcebfa5862639bc9ce4121e82140bec2a987ac5140294865b5b"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.18",
]
[[package]]
name = "cxx"
version = "1.0.95"
@@ -2353,6 +2367,16 @@ dependencies = [
"signature 1.6.4",
]
[[package]]
name = "ed25519"
version = "2.2.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "60f6d271ca33075c88028be6f04d502853d63a5ece419d269c15315d4fc1cf1d"
dependencies = [
"pkcs8 0.10.2",
"signature 2.1.0",
]
[[package]]
name = "ed25519-dalek"
version = "1.0.1"
@@ -2360,13 +2384,26 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c762bae6dcaf24c4c84667b8579785430908723d5c889f469d76a41d59cc7a9d"
dependencies = [
"curve25519-dalek 3.2.0",
"ed25519",
"ed25519 1.5.3",
"rand 0.7.3",
"serde",
"sha2 0.9.9",
"zeroize",
]
[[package]]
name = "ed25519-dalek"
version = "2.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7277392b266383ef8396db7fdeb1e77b6c52fed775f5df15bb24f35b72156980"
dependencies = [
"curve25519-dalek 4.0.0",
"ed25519 2.2.2",
"serde",
"sha2 0.10.7",
"zeroize",
]
[[package]]
name = "ed25519-zebra"
version = "3.1.0"
@@ -4364,12 +4401,6 @@ dependencies = [
"winapi",
]
[[package]]
name = "libm"
version = "0.1.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7fc7aa29613bd6a620df431842069224d8bc9011086b1db4c0e0cd47fa03ec9a"
[[package]]
name = "libm"
version = "0.2.7"
@@ -4505,7 +4536,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9e2d584751cecb2aabaa56106be6be91338a60a0f4e420cf2af639204f596fc1"
dependencies = [
"bs58",
"ed25519-dalek",
"ed25519-dalek 1.0.1",
"log",
"multiaddr",
"multihash",
@@ -5951,7 +5982,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "578ede34cf02f8924ab9447f50c28075b4d3e5b269972345e7e0372b38c6cdcd"
dependencies = [
"autocfg",
"libm 0.2.7",
"libm",
]
[[package]]
@@ -6067,16 +6098,6 @@ dependencies = [
"sha2 0.10.7",
]
[[package]]
name = "packed_simd_2"
version = "0.3.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a1914cd452d8fccd6f9db48147b29fd4ae05bea9dc5d9ad578509f72415de282"
dependencies = [
"cfg-if",
"libm 0.1.4",
]
[[package]]
name = "pallet-alliance"
version = "4.0.0-dev"
@@ -10921,14 +10942,14 @@ checksum = "5e9f0ab6ef7eb7353d9119c170a436d1bf248eea575ac42d19d12f4e34130831"
[[package]]
name = "snow"
version = "0.9.2"
version = "0.9.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5ccba027ba85743e09d15c03296797cad56395089b832b48b5a5217880f57733"
checksum = "0c9d1425eb528a21de2755c75af4c9b5d57f50a0d4c3b7f1828a4cd03f8ba155"
dependencies = [
"aes-gcm 0.9.4",
"blake2",
"chacha20poly1305",
"curve25519-dalek 4.0.0-rc.1",
"curve25519-dalek 4.0.0",
"rand_core 0.6.4",
"ring 0.16.20",
"rustc_version 0.4.0",
@@ -11467,8 +11488,7 @@ name = "sp-io"
version = "23.0.0"
dependencies = [
"bytes",
"ed25519",
"ed25519-dalek",
"ed25519-dalek 2.0.0",
"libsecp256k1",
"log",
"parity-scale-codec",
@@ -11754,8 +11774,8 @@ name = "sp-statement-store"
version = "4.0.0-dev"
dependencies = [
"aes-gcm 0.10.2",
"curve25519-dalek 3.2.0",
"ed25519-dalek",
"curve25519-dalek 4.0.0",
"ed25519-dalek 2.0.0",
"hkdf",
"parity-scale-codec",
"rand 0.8.5",
@@ -11769,7 +11789,7 @@ dependencies = [
"sp-runtime-interface",
"sp-std",
"thiserror",
"x25519-dalek 2.0.0-pre.1",
"x25519-dalek 2.0.0",
]
[[package]]
@@ -13529,7 +13549,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "624e6333e861ef49095d2d678b76ebf30b06bf37effca845be7e5b87c90071b7"
dependencies = [
"downcast-rs",
"libm 0.2.7",
"libm",
"num-traits",
"paste",
]
@@ -13901,7 +13921,7 @@ dependencies = [
"tokio",
"webpki 0.21.4",
"webrtc-util",
"x25519-dalek 2.0.0-pre.1",
"x25519-dalek 2.0.0",
"x509-parser 0.13.2",
]
@@ -14299,12 +14319,13 @@ dependencies = [
[[package]]
name = "x25519-dalek"
version = "2.0.0-pre.1"
version = "2.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e5da623d8af10a62342bcbbb230e33e58a63255a58012f8653c578e54bab48df"
checksum = "fb66477291e7e8d2b0ff1bcb900bf29489a9692816d79874bea351e7a8b6de96"
dependencies = [
"curve25519-dalek 3.2.0",
"curve25519-dalek 4.0.0",
"rand_core 0.6.4",
"serde",
"zeroize",
]
+1 -4
View File
@@ -33,9 +33,7 @@ tracing = { version = "0.1.29", default-features = false }
tracing-core = { version = "0.1.28", default-features = false}
# Required for backwards compatibility reason, but only used for verifying when `UseDalekExt` is set.
ed25519-dalek = { version = "1.0.1", default-features = false, optional = true }
# Force the usage of ed25519, this is being used in `ed25519-dalek`.
ed25519 = { version = "1.5.2", optional = true }
ed25519-dalek = { version = "2.0.0", default-features = false, optional = true }
[build-dependencies]
rustversion = "1.0.6"
@@ -58,7 +56,6 @@ std = [
"tracing-core/std",
"log",
"ed25519-dalek",
"ed25519",
"sp-keystore/std"
]
+2 -2
View File
@@ -825,11 +825,11 @@ pub trait Crypto {
{
use ed25519_dalek::Verifier;
let Ok(public_key) = ed25519_dalek::PublicKey::from_bytes(&pub_key.0) else {
let Ok(public_key) = ed25519_dalek::VerifyingKey::from_bytes(&pub_key.0) else {
return false
};
let Ok(sig) = ed25519_dalek::Signature::from_bytes(&sig.0) else { return false };
let sig = ed25519_dalek::Signature::from_bytes(&sig.0);
public_key.verify(msg, &sig).is_ok()
} else {
@@ -25,9 +25,9 @@ sp-externalities = { version = "0.19.0", default-features = false, path = "../ex
thiserror = { version = "1.0", optional = true }
# ECIES dependencies
ed25519-dalek = { version = "1.0", optional = true }
x25519-dalek = { version = "2.0.0-pre.1", optional = true }
curve25519-dalek = { version = "3.2", optional = true }
ed25519-dalek = { version = "2.0.0", optional = true }
x25519-dalek = { version = "2.0.0", optional = true, features = ["static_secrets"] }
curve25519-dalek = { version = "4.0.0", optional = true }
aes-gcm = { version = "0.10", optional = true }
hkdf = { version = "0.12.0", optional = true }
sha2 = { version = "0.10.7", optional = true }
@@ -71,7 +71,7 @@ fn kdf(shared_secret: &[u8]) -> [u8; AES_KEY_LEN] {
/// Encrypt `plaintext` with the given public x25519 public key. Decryption can be performed with
/// the matching secret key.
pub fn encrypt_x25519(pk: &PublicKey, plaintext: &[u8]) -> Result<Vec<u8>, Error> {
let ephemeral_sk = x25519_dalek::StaticSecret::new(OsRng);
let ephemeral_sk = x25519_dalek::StaticSecret::random_from_rng(OsRng);
let ephemeral_pk = x25519_dalek::PublicKey::from(&ephemeral_sk);
let mut shared_secret = ephemeral_sk.diffie_hellman(pk).to_bytes().to_vec();
@@ -135,7 +135,7 @@ mod test {
#[test]
fn basic_x25519_encryption() {
let sk = SecretKey::new(OsRng);
let sk = SecretKey::random_from_rng(OsRng);
let pk = PublicKey::from(&sk);
let plain_message = b"An important secret message";
@@ -159,7 +159,7 @@ mod test {
#[test]
fn fails_on_bad_data() {
let sk = SecretKey::new(OsRng);
let sk = SecretKey::random_from_rng(OsRng);
let pk = PublicKey::from(&sk);
let plain_message = b"An important secret message";