diff --git a/Cargo.toml b/Cargo.toml index cbd37c15f..48586c3b3 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -33,8 +33,9 @@ socket2 = "0.4" smallvec = "1" parking_lot = "0.11" lazy_static = "1" -aes = { version = "0.7", features = ["ctr"] } -aes-gcm = "0.9" +aes = "0.8.4" +ctr = "0.9.2" +aes-gcm = "0.10.3" tracing = { version = "0.1", features = ["log"] } lru = "0.12" hashlink = "0.8" diff --git a/src/handler/crypto/mod.rs b/src/handler/crypto/mod.rs index 6b609d3a8..666b8a6f9 100644 --- a/src/handler/crypto/mod.rs +++ b/src/handler/crypto/mod.rs @@ -11,7 +11,7 @@ use crate::{ packet::{ChallengeData, MessageNonce}, }; use aes_gcm::{ - aead::{generic_array::GenericArray, Aead, NewAead, Payload}, + aead::{generic_array::GenericArray, Aead, KeyInit, Payload}, Aes128Gcm, }; use ecdh::ecdh; diff --git a/src/packet/mod.rs b/src/packet/mod.rs index 15ad802ae..2b8c84cb8 100644 --- a/src/packet/mod.rs +++ b/src/packet/mod.rs @@ -10,10 +10,10 @@ //! [`Packet`]: enum.Packet.html use crate::{error::PacketError, Enr}; -use aes::{ - cipher::{generic_array::GenericArray, NewCipher, StreamCipher}, - Aes128Ctr, -}; +use aes::cipher::{generic_array::GenericArray, KeyIvInit, StreamCipher}; + +type Aes128Ctr64BE = ctr::Ctr64BE; + use alloy_rlp::Decodable; use enr::NodeId; use rand::Rng; @@ -411,7 +411,7 @@ impl Packet { let mut key = GenericArray::clone_from_slice(&dst_id.raw()[..16]); let mut nonce = GenericArray::clone_from_slice(&self.iv.to_be_bytes()); - let mut cipher = Aes128Ctr::new(&key, &nonce); + let mut cipher = Aes128Ctr64BE::new(&key, &nonce); cipher.apply_keystream(&mut header_bytes); key.zeroize(); nonce.zeroize(); @@ -442,7 +442,7 @@ impl Packet { */ let key = GenericArray::clone_from_slice(&src_id.raw()[..16]); let nonce = GenericArray::clone_from_slice(&iv); - let mut cipher = Aes128Ctr::new(&key, &nonce); + let mut cipher = Aes128Ctr64BE::new(&key, &nonce); // Take the static header content let mut static_header = data[IV_LENGTH..IV_LENGTH + STATIC_HEADER_LENGTH].to_vec();