Skip to content

Commit 9f40ff0

Browse files
iduartgomezclaude
andauthored
fix: replace deprecated GenericArray::from_slice usage (#2053)
Co-authored-by: Claude <noreply@anthropic.com>
1 parent a7bfd06 commit 9f40ff0

File tree

4 files changed

+49
-68
lines changed

4 files changed

+49
-68
lines changed

apps/freenet-email-app/web/src/inbox.rs

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@ use std::{
44
io::{Cursor, Read},
55
};
66

7-
use chacha20poly1305::aead::generic_array::GenericArray;
87
use chacha20poly1305::{
98
aead::{Aead, AeadCore, OsRng},
109
XChaCha20Poly1305,
@@ -214,9 +213,9 @@ impl DecryptedMessage {
214213
.unwrap();
215214

216215
use chacha20poly1305::aead::KeyInit;
217-
let cipher = XChaCha20Poly1305::new(GenericArray::from_slice(&chacha_key));
216+
let cipher = XChaCha20Poly1305::new((&chacha_key).into());
218217
let decrypted_content = cipher
219-
.decrypt(GenericArray::from_slice(nonce.as_ref()), content.as_ref())
218+
.decrypt(nonce.as_ref().into(), content.as_ref())
220219
.map_err(|e| format!("{e}"))
221220
.unwrap();
222221
let content: DecryptedMessage = serde_json::from_slice(&decrypted_content).unwrap();

crates/core/src/config/secret.rs

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
use std::path::Path;
22

3-
#[allow(deprecated)]
4-
use aes_gcm::{aead::generic_array::GenericArray, KeyInit};
3+
use aes_gcm::KeyInit;
54
use chacha20poly1305::{XChaCha20Poly1305, XNonce};
65
use freenet_stdlib::client_api::DelegateRequest;
76
use rsa::pkcs8::DecodePrivateKey;
@@ -148,16 +147,15 @@ impl Default for Secrets {
148147
}
149148
}
150149

151-
#[allow(deprecated)]
152150
impl Secrets {
153151
#[inline]
154152
pub fn nonce(&self) -> XNonce {
155-
*XNonce::from_slice(&self.nonce)
153+
self.nonce.into()
156154
}
157155

158156
#[inline]
159157
pub fn cipher(&self) -> XChaCha20Poly1305 {
160-
XChaCha20Poly1305::new(GenericArray::from_slice(&self.cipher))
158+
XChaCha20Poly1305::new((&self.cipher).into())
161159
}
162160

163161
#[inline]

crates/core/src/contract/executor/runtime.rs

Lines changed: 38 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -371,29 +371,25 @@ impl ContractExecutor for Executor<Runtime> {
371371
cipher,
372372
nonce,
373373
} => {
374-
#[allow(deprecated)]
375-
{
376-
use aes_gcm::aead::generic_array::GenericArray;
377-
use chacha20poly1305::{KeyInit, XChaCha20Poly1305};
378-
let key = delegate.key().clone();
379-
let arr = GenericArray::from_slice(&cipher);
380-
let cipher = XChaCha20Poly1305::new(arr);
381-
let nonce = GenericArray::from_slice(&nonce).to_owned();
382-
if let Some(contract) = attested_contract {
383-
self.delegate_attested_ids
384-
.entry(key.clone())
385-
.or_default()
386-
.push(*contract);
387-
}
388-
match self.runtime.register_delegate(delegate, cipher, nonce) {
389-
Ok(_) => Ok(DelegateResponse {
390-
key,
391-
values: Vec::new(),
392-
}),
393-
Err(err) => {
394-
tracing::warn!("failed registering delegate `{key}`: {err}");
395-
Err(ExecutorError::other(StdDelegateError::RegisterError(key)))
396-
}
374+
use chacha20poly1305::{KeyInit, XChaCha20Poly1305};
375+
let key = delegate.key().clone();
376+
let arr = (&cipher).into();
377+
let cipher = XChaCha20Poly1305::new(arr);
378+
let nonce = nonce.into();
379+
if let Some(contract) = attested_contract {
380+
self.delegate_attested_ids
381+
.entry(key.clone())
382+
.or_default()
383+
.push(*contract);
384+
}
385+
match self.runtime.register_delegate(delegate, cipher, nonce) {
386+
Ok(_) => Ok(DelegateResponse {
387+
key,
388+
values: Vec::new(),
389+
}),
390+
Err(err) => {
391+
tracing::warn!("failed registering delegate `{key}`: {err}");
392+
Err(ExecutorError::other(StdDelegateError::RegisterError(key)))
397393
}
398394
}
399395
}
@@ -661,29 +657,25 @@ impl Executor<Runtime> {
661657
cipher,
662658
nonce,
663659
} => {
664-
#[allow(deprecated)]
665-
{
666-
use aes_gcm::aead::generic_array::GenericArray;
667-
use chacha20poly1305::{KeyInit, XChaCha20Poly1305};
668-
let key = delegate.key().clone();
669-
let arr = GenericArray::from_slice(&cipher);
670-
let cipher = XChaCha20Poly1305::new(arr);
671-
let nonce = GenericArray::from_slice(&nonce).to_owned();
672-
if let Some(contract) = attested_contract {
673-
self.delegate_attested_ids
674-
.entry(key.clone())
675-
.or_default()
676-
.push(*contract);
677-
}
678-
match self.runtime.register_delegate(delegate, cipher, nonce) {
679-
Ok(_) => Ok(DelegateResponse {
680-
key,
681-
values: Vec::new(),
682-
}),
683-
Err(err) => {
684-
tracing::warn!("failed registering delegate `{key}`: {err}");
685-
Err(ExecutorError::other(StdDelegateError::RegisterError(key)))
686-
}
660+
use chacha20poly1305::{KeyInit, XChaCha20Poly1305};
661+
let key = delegate.key().clone();
662+
let arr = (&cipher).into();
663+
let cipher = XChaCha20Poly1305::new(arr);
664+
let nonce = nonce.into();
665+
if let Some(contract) = attested_contract {
666+
self.delegate_attested_ids
667+
.entry(key.clone())
668+
.or_default()
669+
.push(*contract);
670+
}
671+
match self.runtime.register_delegate(delegate, cipher, nonce) {
672+
Ok(_) => Ok(DelegateResponse {
673+
key,
674+
values: Vec::new(),
675+
}),
676+
Err(err) => {
677+
tracing::warn!("failed registering delegate `{key}`: {err}");
678+
Err(ExecutorError::other(StdDelegateError::RegisterError(key)))
687679
}
688680
}
689681
}

crates/core/src/transport/packet_data.rs

Lines changed: 6 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,7 @@
11
use std::marker::PhantomData;
22
use std::{cell::RefCell, sync::Arc};
33

4-
#[allow(deprecated)]
5-
use aes_gcm::{
6-
aead::{generic_array::GenericArray, AeadInPlace},
7-
Aes128Gcm,
8-
};
4+
use aes_gcm::{aead::AeadInPlace, Aes128Gcm};
95
use rand::{prelude::SmallRng, rng, Rng, SeedableRng};
106

117
use crate::transport::crypto::TransportPublicKey;
@@ -74,17 +70,16 @@ impl Encryption for SymmetricAES {}
7470
impl Encryption for AssymetricRSA {}
7571
impl Encryption for UnknownEncryption {}
7672

77-
#[allow(deprecated)]
7873
fn internal_sym_decryption<const N: usize>(
7974
data: &[u8],
8075
size: usize,
8176
inbound_sym_key: &Aes128Gcm,
8277
) -> Result<([u8; N], usize), aes_gcm::Error> {
8378
debug_assert!(data.len() >= NONCE_SIZE + TAG_SIZE);
8479

85-
let nonce = GenericArray::from_slice(&data[..NONCE_SIZE]);
80+
let nonce = (&data[..NONCE_SIZE]).into();
8681
// Adjusted to extract the tag from the end of the encrypted data
87-
let tag = GenericArray::from_slice(&data[size - TAG_SIZE..size]);
82+
let tag = (&data[size - TAG_SIZE..size]).into();
8883
let encrypted_data = &data[NONCE_SIZE..size - TAG_SIZE];
8984
let mut buffer = [0u8; N];
9085
let buffer_len = encrypted_data.len();
@@ -149,7 +144,6 @@ impl<const N: usize> PacketData<Plaintext, N> {
149144
}
150145
}
151146

152-
#[allow(deprecated)]
153147
pub(crate) fn encrypt_symmetric(&self, cipher: &Aes128Gcm) -> PacketData<SymmetricAES, N> {
154148
_check_valid_size::<N>();
155149
debug_assert!(self.size <= MAX_DATA_SIZE);
@@ -172,7 +166,7 @@ impl<const N: usize> PacketData<Plaintext, N> {
172166

173167
// Append the tag to the buffer
174168
buffer[NONCE_SIZE + payload_length..NONCE_SIZE + payload_length + TAG_SIZE]
175-
.copy_from_slice(tag.as_slice());
169+
.copy_from_slice(&tag);
176170

177171
PacketData {
178172
data: buffer,
@@ -274,8 +268,7 @@ mod tests {
274268
rand::rng().fill(&mut key);
275269

276270
// Create a key object for AES-GCM
277-
#[allow(deprecated)]
278-
let key = GenericArray::from_slice(&key);
271+
let key = (&key).into();
279272

280273
// Create a new AES-128-GCM instance
281274
let cipher = Aes128Gcm::new(key);
@@ -296,8 +289,7 @@ mod tests {
296289
rand::rng().fill(&mut key);
297290

298291
// Create a key object for AES-GCM
299-
#[allow(deprecated)]
300-
let key = GenericArray::from_slice(&key);
292+
let key = (&key).into();
301293

302294
// Create a new AES-128-GCM instance
303295
let cipher = Aes128Gcm::new(key);

0 commit comments

Comments
 (0)