Skip to content

Commit 912cb8a

Browse files
authored
Remove deprecated GenericArray usage (#100)
Signed-off-by: Christian Müller <christian.muller@wifx.net>
1 parent 64553ff commit 912cb8a

2 files changed

Lines changed: 12 additions & 15 deletions

File tree

src/aes128.rs

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ use std::fmt;
22
use std::str::FromStr;
33

44
use aes::{
5-
cipher::{generic_array::GenericArray, BlockEncrypt, KeyInit},
5+
cipher::{BlockEncrypt, KeyInit},
66
Aes128, Block,
77
};
88
use anyhow::{Error, Result};
@@ -113,12 +113,10 @@ pub fn get_encryption_key(key: Aes128Key) -> Aes128Key {
113113

114114
fn get_key(key: Aes128Key, b: [u8; 16]) -> Aes128Key {
115115
let key_bytes = key.to_bytes();
116-
let key = GenericArray::from_slice(&key_bytes);
117-
let cipher = Aes128::new(key);
116+
let cipher = Aes128::new_from_slice(&key_bytes).expect("Invalid key length");
118117

119-
let mut b = b;
120-
let block = Block::from_mut_slice(&mut b);
121-
cipher.encrypt_block(block);
118+
let mut block = Block::from(b);
119+
cipher.encrypt_block(&mut block);
122120

123-
Aes128Key(b)
121+
Aes128Key(block.into())
124122
}

src/packets.rs

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ use std::io::{Cursor, Read};
33
use std::time::{Duration, SystemTime, UNIX_EPOCH};
44

55
use aes::{
6-
cipher::{generic_array::GenericArray, BlockEncrypt},
6+
cipher::BlockEncrypt,
77
Aes128, Block,
88
};
99
use anyhow::Result;
@@ -143,7 +143,7 @@ impl MeshPacket {
143143
}
144144

145145
fn calculate_mic(&self, key: Aes128Key) -> Result<[u8; 4]> {
146-
let mut mac = Cmac::<Aes128>::new_from_slice(&key.to_bytes()).unwrap();
146+
let mut mac = <Cmac<Aes128> as Mac>::new_from_slice(&key.to_bytes()).unwrap();
147147
mac.update(&self.mic_bytes()?);
148148
let cmac_f = mac.finalize().into_bytes();
149149
// sanity Check
@@ -933,22 +933,21 @@ pub fn encrypt_events_commands(
933933
let timestamp = timestamp.duration_since(UNIX_EPOCH)?.as_secs() as u32;
934934

935935
let key_bytes = key.to_bytes();
936-
let key = GenericArray::from_slice(&key_bytes);
937-
let cipher = Aes128::new(key);
936+
let cipher = Aes128::new_from_slice(&key_bytes).expect("Invalid key length");
938937

939-
let mut a = vec![0; 16];
938+
let mut a = [0u8; 16];
940939
a[0] = 0x01;
941940
if is_command {
942941
a[5] = 0x01;
943942
}
944-
a[6..10].clone_from_slice(relay_id);
945-
a[10..14].clone_from_slice(&timestamp.to_be_bytes());
943+
a[6..10].copy_from_slice(relay_id);
944+
a[10..14].copy_from_slice(&timestamp.to_be_bytes());
946945

947946
// Encrypt blocks
948947
for i in 0..(b.len() / 16) {
949948
a[15] = (i + 1) as u8;
950949

951-
let mut block = Block::clone_from_slice(&a);
950+
let mut block = Block::from(a);
952951
cipher.encrypt_block(&mut block);
953952

954953
for j in 0..16 {

0 commit comments

Comments
 (0)