From 3662e1ab7f782ada27a3f50ee70488dfa6259016 Mon Sep 17 00:00:00 2001 From: Mac L Date: Wed, 7 Jan 2026 23:38:31 +0400 Subject: [PATCH] Remove duplicated `crypto` dependencies (#8605) #8547 This unifies the following `crypto` dependencies to a single version each: - `sha2` - `hmac` - `pbkdf2` - `aes` - `cipher` - `ctr` - `scrypt` - `digest` Co-Authored-By: Mac L --- Cargo.lock | 275 +++++------------- Cargo.toml | 4 +- crypto/eth2_keystore/Cargo.toml | 10 +- .../src/json_keystore/kdf_module.rs | 5 +- crypto/eth2_keystore/src/keystore.rs | 17 +- crypto/eth2_wallet/Cargo.toml | 2 +- deny.toml | 6 +- 7 files changed, 105 insertions(+), 214 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 3a054973ed..27f775b2d0 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -65,19 +65,6 @@ dependencies = [ "generic-array", ] -[[package]] -name = "aes" -version = "0.7.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e8b47f52ea9bae42228d07ec09eb676433d7c4ed1ebdf0f1d1c29ed446f1ab8" -dependencies = [ - "cfg-if", - "cipher 0.3.0", - "cpufeatures", - "ctr 0.8.0", - "opaque-debug", -] - [[package]] name = "aes" version = "0.8.4" @@ -85,7 +72,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b169f7a6d4742236a0a00c541b845991d0ac43e546831af1249753ab4c3aa3a0" dependencies = [ "cfg-if", - "cipher 0.4.4", + "cipher", "cpufeatures", ] @@ -96,9 +83,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "831010a0f742e1209b3bcea8fab6a8e149051ba6099432c8cb2cc117dec3ead1" dependencies = [ "aead", - "aes 0.8.4", - "cipher 0.4.4", - "ctr 0.9.2", + "aes", + "cipher", + "ctr", "ghash", "subtle", ] @@ -253,7 +240,7 @@ dependencies = [ "either", "serde", "serde_with", - "sha2 0.10.9", + "sha2", "thiserror 2.0.17", ] @@ -1284,7 +1271,7 @@ dependencies = [ "tree_hash_derive", "typenum", "types", - "zstd 0.13.3", + "zstd", ] [[package]] @@ -1459,15 +1446,6 @@ dependencies = [ "digest 0.10.7", ] -[[package]] -name = "block-buffer" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4152116fd6e9dadb291ae18fc1ec3575ed6d84c29642d97890f4b4a3417297e4" -dependencies = [ - "generic-array", -] - [[package]] name = "block-buffer" version = "0.10.4" @@ -1637,26 +1615,6 @@ dependencies = [ "serde", ] -[[package]] -name = "bzip2" -version = "0.4.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bdb116a6ef3f6c3698828873ad02c3014b3c85cadb88496095628e3ef1e347f8" -dependencies = [ - "bzip2-sys", - "libc", -] - -[[package]] -name = "bzip2-sys" -version = "0.1.13+1.0.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "225bff33b2141874fe80d71e07d6eec4f85c5c216453dd96388240f96e1acc14" -dependencies = [ - "cc", - "pkg-config", -] - [[package]] name = "c-kzg" version = "2.1.5" @@ -1750,7 +1708,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c3613f74bd2eac03dad61bd53dbe620703d4371614fe0bc3b9f04dd36fe4e818" dependencies = [ "cfg-if", - "cipher 0.4.4", + "cipher", "cpufeatures", ] @@ -1762,7 +1720,7 @@ checksum = "10cd79432192d1c0f4e1a0fef9527696cc039165d729fb41b3f4f4f354c2dc35" dependencies = [ "aead", "chacha20", - "cipher 0.4.4", + "cipher", "poly1305", "zeroize", ] @@ -1808,15 +1766,6 @@ dependencies = [ "half", ] -[[package]] -name = "cipher" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ee52072ec15386f770805afd189a01c8841be8696bed250fa2f13c4c0d6dfb7" -dependencies = [ - "generic-array", -] - [[package]] name = "cipher" version = "0.4.4" @@ -2075,12 +2024,6 @@ dependencies = [ "unicode-xid", ] -[[package]] -name = "constant_time_eq" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "245097e9a4535ee1e3e3931fcfcd55a796a44c643e8596ff6566d68f09b87bbc" - [[package]] name = "context_deserialize" version = "0.2.0" @@ -2280,32 +2223,13 @@ dependencies = [ "typenum", ] -[[package]] -name = "crypto-mac" -version = "0.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "25fab6889090c8133f3deb8f73ba3c65a7f456f66436fc012a1b1e272b1e103e" -dependencies = [ - "generic-array", - "subtle", -] - -[[package]] -name = "ctr" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "049bb91fb4aaf0e3c7efa6cd5ef877dbbbd15b39dad06d9948de4ec8a75761ea" -dependencies = [ - "cipher 0.3.0", -] - [[package]] name = "ctr" version = "0.9.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0369ee1ad671834580515889b80f2ea915f23b8be8d0daa4bbaf2ac5c7590835" dependencies = [ - "cipher 0.4.4", + "cipher", ] [[package]] @@ -2558,7 +2482,7 @@ dependencies = [ "hex", "reqwest", "serde_json", - "sha2 0.9.9", + "sha2", "tree_hash", "types", ] @@ -2668,7 +2592,7 @@ version = "0.10.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" dependencies = [ - "block-buffer 0.10.4", + "block-buffer", "const-oid", "crypto-common", "subtle", @@ -2709,11 +2633,11 @@ version = "0.10.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f170f4f6ed0e1df52bf43b403899f0081917ecf1500bfe312505cc3b515a8899" dependencies = [ - "aes 0.8.4", + "aes", "aes-gcm", "alloy-rlp", "arrayvec", - "ctr 0.9.2", + "ctr", "delay_map", "enr", "fnv", @@ -2837,7 +2761,7 @@ dependencies = [ "ed25519", "rand_core 0.6.4", "serde", - "sha2 0.10.9", + "sha2", "subtle", "zeroize", ] @@ -2905,7 +2829,7 @@ dependencies = [ "itertools 0.14.0", "serde", "serde_json", - "sha2 0.10.9", + "sha2", ] [[package]] @@ -2970,7 +2894,7 @@ dependencies = [ "ekzg-bls12-381", "ekzg-maybe-rayon", "ekzg-polynomial", - "sha2 0.10.9", + "sha2", ] [[package]] @@ -3195,7 +3119,7 @@ dependencies = [ "hex", "num-bigint-dig", "ring", - "sha2 0.9.9", + "sha2", "zeroize", ] @@ -3203,18 +3127,20 @@ dependencies = [ name = "eth2_keystore" version = "0.1.0" dependencies = [ - "aes 0.7.5", + "aes", "bls", + "cipher", + "ctr", "eth2_key_derivation", "hex", - "hmac 0.11.0", - "pbkdf2 0.8.0", + "hmac", + "pbkdf2", "rand 0.9.2", "scrypt", "serde", "serde_json", "serde_repr", - "sha2 0.9.9", + "sha2", "tempfile", "unicode-normalization", "uuid 0.8.2", @@ -3235,7 +3161,7 @@ dependencies = [ "reqwest", "sensitive_url", "serde_yaml", - "sha2 0.9.9", + "sha2", "tempfile", "tokio", "tracing", @@ -3277,7 +3203,7 @@ checksum = "5aa93f58bb1eb3d1e556e4f408ef1dac130bad01ac37db4e7ade45de40d1c86a" dependencies = [ "cpufeatures", "ring", - "sha2 0.10.9", + "sha2", ] [[package]] @@ -3423,7 +3349,7 @@ dependencies = [ "sensitive_url", "serde", "serde_json", - "sha2 0.9.9", + "sha2", "slot_clock", "ssz_types", "state_processing", @@ -3567,6 +3493,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bfe33edd8e85a12a67454e37f8c75e730830d83e313556ab9ebf9ee7fbeb3bfb" dependencies = [ "crc32fast", + "libz-rs-sys", "libz-sys", "miniz_oxide", ] @@ -4143,17 +4070,7 @@ version = "0.12.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7b5f8eb2ad728638ea2c7d47a21db23b7b58a72ed6a38256b8a1849f15fbbdf7" dependencies = [ - "hmac 0.12.1", -] - -[[package]] -name = "hmac" -version = "0.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2a2a2320eb7ec0ebe8da8f744d7812d9fc4cb4d09344ac01898dbcb6a20ae69b" -dependencies = [ - "crypto-mac", - "digest 0.9.0", + "hmac", ] [[package]] @@ -4856,7 +4773,7 @@ dependencies = [ "elliptic-curve", "once_cell", "serdect", - "sha2 0.10.9", + "sha2", "signature", ] @@ -5143,7 +5060,7 @@ dependencies = [ "quick-protobuf-codec", "rand 0.8.5", "regex", - "sha2 0.10.9", + "sha2", "tracing", "web-time", ] @@ -5183,7 +5100,7 @@ dependencies = [ "multihash", "quick-protobuf", "rand 0.8.5", - "sha2 0.10.9", + "sha2", "thiserror 2.0.17", "tracing", "zeroize", @@ -5423,6 +5340,15 @@ dependencies = [ "vcpkg", ] +[[package]] +name = "libz-rs-sys" +version = "0.5.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "15413ef615ad868d4d65dce091cb233b229419c7c0c4bcaa746c0901c49ff39c" +dependencies = [ + "zlib-rs", +] + [[package]] name = "libz-sys" version = "1.1.23" @@ -5523,7 +5449,7 @@ dependencies = [ "rand 0.9.2", "regex", "serde", - "sha2 0.9.9", + "sha2", "smallvec", "snap", "ssz_types", @@ -6736,17 +6662,6 @@ dependencies = [ "windows-link", ] -[[package]] -name = "password-hash" -version = "0.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7676374caaee8a325c9e7a2ae557f216c5563a171d6997b0ef8a65af35147700" -dependencies = [ - "base64ct", - "rand_core 0.6.4", - "subtle", -] - [[package]] name = "paste" version = "1.0.15" @@ -6755,23 +6670,12 @@ checksum = "57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a" [[package]] name = "pbkdf2" -version = "0.8.0" +version = "0.12.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d95f5254224e617595d2cc3cc73ff0a5eaf2637519e25f03388154e9378b6ffa" -dependencies = [ - "crypto-mac", -] - -[[package]] -name = "pbkdf2" -version = "0.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "83a0692ec44e4cf1ef28ca317f14f8f07da2d95ec3fa01f86e4467b725e60917" +checksum = "f8ed6a7761f76e3b9f92dfb0a60a6a6477c61024b775147ff0973a02653abaf2" dependencies = [ "digest 0.10.7", - "hmac 0.12.1", - "password-hash", - "sha2 0.10.9", + "hmac", ] [[package]] @@ -7586,7 +7490,7 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f8dd2a808d456c4a54e300a23e9f5a67e122c3024119acbfd73e3bf664491cb2" dependencies = [ - "hmac 0.12.1", + "hmac", "subtle", ] @@ -7913,11 +7817,11 @@ checksum = "b147bb6111014916d3ef9d4c85173124a8e12193a67f6176d67244afd558d6c1" [[package]] name = "salsa20" -version = "0.8.1" +version = "0.10.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ecbd2eb639fd7cab5804a0837fe373cc2172d15437e804c054a9fb885cb923b0" +checksum = "97a22f5af31f73a954c10289c93e8a50cc23d971e80ee446f1f6f7137a088213" dependencies = [ - "cipher 0.3.0", + "cipher", ] [[package]] @@ -7985,14 +7889,13 @@ checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" [[package]] name = "scrypt" -version = "0.7.0" +version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "879588d8f90906e73302547e20fffefdd240eb3e0e744e142321f5d49dea0518" +checksum = "0516a385866c09368f0b5bcd1caff3366aace790fcd46e2bb032697bb172fd1f" dependencies = [ - "hmac 0.11.0", - "pbkdf2 0.8.0", + "pbkdf2", "salsa20", - "sha2 0.9.9", + "sha2", ] [[package]] @@ -8246,19 +8149,6 @@ dependencies = [ "digest 0.10.7", ] -[[package]] -name = "sha2" -version = "0.9.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4d58a1e1bf39749807d89cf2d98ac2dfa0ff1cb3faa38fbb64dd88ac8013d800" -dependencies = [ - "block-buffer 0.9.0", - "cfg-if", - "cpufeatures", - "digest 0.9.0", - "opaque-debug", -] - [[package]] name = "sha2" version = "0.10.9" @@ -8505,7 +8395,7 @@ dependencies = [ "rand_core 0.6.4", "ring", "rustc_version 0.4.1", - "sha2 0.10.9", + "sha2", "subtle", ] @@ -8654,7 +8544,7 @@ dependencies = [ "typenum", "types", "xdelta3", - "zstd 0.13.3", + "zstd", ] [[package]] @@ -9025,17 +8915,15 @@ dependencies = [ [[package]] name = "tiny-bip39" -version = "1.0.0" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62cc94d358b5a1e84a5cb9109f559aa3c4d634d2b1b4de3d0fa4adc7c78e2861" +checksum = "a30fd743a02bf35236f6faf99adb03089bb77e91c998dac2c2ad76bb424f668c" dependencies = [ - "anyhow", - "hmac 0.12.1", "once_cell", - "pbkdf2 0.11.0", + "pbkdf2", "rand 0.8.5", "rustc-hash 1.1.0", - "sha2 0.10.9", + "sha2", "thiserror 1.0.69", "unicode-normalization", "wasm-bindgen", @@ -10827,31 +10715,34 @@ dependencies = [ [[package]] name = "zip" -version = "0.6.6" +version = "6.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "760394e246e4c28189f19d488c058bf16f564016aefac5d32bb1f3b51d5e9261" +checksum = "eb2a05c7c36fde6c09b08576c9f7fb4cda705990f73b58fe011abf7dfb24168b" dependencies = [ - "aes 0.8.4", - "byteorder", - "bzip2", - "constant_time_eq", + "arbitrary", "crc32fast", - "crossbeam-utils", "flate2", - "hmac 0.12.1", - "pbkdf2 0.11.0", - "sha1", - "time", - "zstd 0.11.2+zstd.1.5.2", + "indexmap 2.12.0", + "memchr", + "zopfli", ] [[package]] -name = "zstd" -version = "0.11.2+zstd.1.5.2" +name = "zlib-rs" +version = "0.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "20cc960326ece64f010d2d2107537f26dc589a6573a316bd5b1dba685fa5fde4" +checksum = "51f936044d677be1a1168fae1d03b583a285a5dd9d8cbf7b24c23aa1fc775235" + +[[package]] +name = "zopfli" +version = "0.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f05cd8797d63865425ff89b5c4a48804f35ba0ce8d125800027ad6017d2b5249" dependencies = [ - "zstd-safe 5.0.2+zstd.1.5.2", + "bumpalo", + "crc32fast", + "log", + "simd-adler32", ] [[package]] @@ -10860,17 +10751,7 @@ version = "0.13.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e91ee311a569c327171651566e07972200e76fcfe2242a4fa446149a3881c08a" dependencies = [ - "zstd-safe 7.2.4", -] - -[[package]] -name = "zstd-safe" -version = "5.0.2+zstd.1.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d2a5585e04f9eea4b2a3d1eca508c4dee9592a89ef6f450c11719da0726f4db" -dependencies = [ - "libc", - "zstd-sys", + "zstd-safe", ] [[package]] diff --git a/Cargo.toml b/Cargo.toml index d5d1687c76..441490ee1b 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -225,7 +225,7 @@ serde = { version = "1", features = ["derive"] } serde_json = "1" serde_repr = "0.1" serde_yaml = "0.9" -sha2 = "0.9" +sha2 = "0.10" signing_method = { path = "validator_client/signing_method" } slasher = { path = "slasher", default-features = false } slashing_protection = { path = "validator_client/slashing_protection" } @@ -276,7 +276,7 @@ warp_utils = { path = "common/warp_utils" } workspace_members = { path = "common/workspace_members" } xdelta3 = { git = "https://github.com/sigp/xdelta3-rs", rev = "4db64086bb02e9febb584ba93b9d16bb2ae3825a" } zeroize = { version = "1", features = ["zeroize_derive", "serde"] } -zip = "0.6" +zip = { version = "6.0", default-features = false, features = ["deflate"] } zstd = "0.13" [profile.maxperf] diff --git a/crypto/eth2_keystore/Cargo.toml b/crypto/eth2_keystore/Cargo.toml index 290a10adc9..4fde662f5c 100644 --- a/crypto/eth2_keystore/Cargo.toml +++ b/crypto/eth2_keystore/Cargo.toml @@ -7,14 +7,16 @@ autotests = false # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html [dependencies] -aes = { version = "0.7", features = ["ctr"] } +aes = "0.8" bls = { workspace = true } +cipher = "0.4" +ctr = "0.9" eth2_key_derivation = { workspace = true } hex = { workspace = true } -hmac = "0.11.0" -pbkdf2 = { version = "0.8.0", default-features = false } +hmac = "0.12.0" +pbkdf2 = { version = "0.12.0", default-features = false } rand = { workspace = true } -scrypt = { version = "0.7.0", default-features = false } +scrypt = { version = "0.11.0", default-features = false } serde = { workspace = true } serde_json = { workspace = true } serde_repr = { workspace = true } diff --git a/crypto/eth2_keystore/src/json_keystore/kdf_module.rs b/crypto/eth2_keystore/src/json_keystore/kdf_module.rs index 2086ac7b21..1702d8621c 100644 --- a/crypto/eth2_keystore/src/json_keystore/kdf_module.rs +++ b/crypto/eth2_keystore/src/json_keystore/kdf_module.rs @@ -5,9 +5,10 @@ use super::hex_bytes::HexBytes; use crate::DKLEN; -use hmac::{Hmac, Mac, NewMac}; +use hmac::{Hmac, Mac}; use serde::{Deserialize, Serialize}; use sha2::Sha256; +use sha2::digest::KeyInit; /// KDF module representation. #[derive(Debug, PartialEq, Clone, Serialize, Deserialize)] @@ -67,7 +68,7 @@ pub enum Prf { impl Prf { pub fn mac(&self, password: &[u8]) -> impl Mac { match &self { - Prf::HmacSha256 => Hmac::::new_from_slice(password) + Prf::HmacSha256 => as KeyInit>::new_from_slice(password) .expect("Could not derive HMAC using SHA256."), } } diff --git a/crypto/eth2_keystore/src/keystore.rs b/crypto/eth2_keystore/src/keystore.rs index b31e32eb4a..e6fc59d462 100644 --- a/crypto/eth2_keystore/src/keystore.rs +++ b/crypto/eth2_keystore/src/keystore.rs @@ -7,10 +7,11 @@ use crate::json_keystore::{ Aes128Ctr, ChecksumModule, Cipher, CipherModule, Crypto, EmptyMap, EmptyString, JsonKeystore, Kdf, KdfModule, Scrypt, Sha256Checksum, Version, }; -use aes::Aes128Ctr as AesCtr; -use aes::cipher::generic_array::GenericArray; -use aes::cipher::{NewCipher, StreamCipher}; +use aes::Aes128; use bls::{Keypair, PublicKey, SecretKey, ZeroizeHash}; +use cipher::generic_array::GenericArray; +use cipher::{KeyIvInit, StreamCipher}; +use ctr::Ctr64BE; use eth2_key_derivation::PlainText; use hmac::Hmac; use pbkdf2::pbkdf2; @@ -350,7 +351,7 @@ pub fn encrypt( // AES Encrypt let key = GenericArray::from_slice(&derived_key.as_bytes()[0..16]); let nonce = GenericArray::from_slice(params.iv.as_bytes()); - let mut cipher = AesCtr::new(key, nonce); + let mut cipher = Ctr64BE::::new(key, nonce); cipher.apply_keystream(&mut cipher_text); } }; @@ -396,7 +397,7 @@ pub fn decrypt(password: &[u8], crypto: &Crypto) -> Result { // AES Decrypt let key = GenericArray::from_slice(&derived_key.as_bytes()[0..16]); let nonce = GenericArray::from_slice(params.iv.as_bytes()); - let mut cipher = AesCtr::new(key, nonce); + let mut cipher = Ctr64BE::::new(key, nonce); cipher.apply_keystream(plain_text.as_mut_bytes()); } }; @@ -444,13 +445,15 @@ fn derive_key(password: &[u8], kdf: &Kdf) -> Result { params.salt.as_bytes(), params.c, dk.as_mut_bytes(), - ); + ) + // `pbkdf2` accepts keys of any size so this error should never occur in practice. + .map_err(|_| Error::InvalidPassword)?; } Kdf::Scrypt(params) => { scrypt( password, params.salt.as_bytes(), - &ScryptParams::new(log2_int(params.n) as u8, params.r, params.p) + &ScryptParams::new(log2_int(params.n) as u8, params.r, params.p, DKLEN as usize) .map_err(Error::ScryptInvalidParams)?, dk.as_mut_bytes(), ) diff --git a/crypto/eth2_wallet/Cargo.toml b/crypto/eth2_wallet/Cargo.toml index 0d454016a6..fcbcbe6ac8 100644 --- a/crypto/eth2_wallet/Cargo.toml +++ b/crypto/eth2_wallet/Cargo.toml @@ -13,7 +13,7 @@ rand = { workspace = true } serde = { workspace = true } serde_json = { workspace = true } serde_repr = { workspace = true } -tiny-bip39 = "1" +tiny-bip39 = "2" uuid = { workspace = true } [dev-dependencies] diff --git a/deny.toml b/deny.toml index 398a173dfa..54ede06429 100644 --- a/deny.toml +++ b/deny.toml @@ -11,7 +11,11 @@ deny = [ { crate = "derivative", reason = "use educe or derive_more instead" }, { crate = "ark-ff", reason = "present in Cargo.lock but not needed by Lighthouse" }, { crate = "strum", deny-multiple-versions = true, reason = "takes a long time to compile" }, - { crate = "reqwest", deny-multiple-versions = true, reason = "takes a long time to compile" } + { crate = "reqwest", deny-multiple-versions = true, reason = "takes a long time to compile" }, + { crate = "aes", deny-multiple-versions = true, reason = "takes a long time to compile" }, + { crate = "sha2", deny-multiple-versions = true, reason = "takes a long time to compile" }, + { crate = "pbkdf2", deny-multiple-versions = true, reason = "takes a long time to compile" }, + { crate = "scrypt", deny-multiple-versions = true, reason = "takes a long time to compile" }, ] [sources]