Skip to content
Merged
Show file tree
Hide file tree
Changes from 5 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- Async support for PARL_IO (#807)
- Implement `embeded_hal_async::delay::DelayUs` trait for `SYSTIMER` alarms (#812)
- ETM driver, GPIO ETM (#819)
- (G)DMA AES support (#821)

### Changed

Expand Down
9 changes: 6 additions & 3 deletions esp-hal-common/src/aes/esp32cX.rs
Original file line number Diff line number Diff line change
Expand Up @@ -19,12 +19,14 @@ impl<'d> Aes<'d> {
pub(super) fn write_key(&mut self, key: &[u8]) {
debug_assert!(key.len() <= 8 * ALIGN_SIZE);
debug_assert_eq!(key.len() % ALIGN_SIZE, 0);
Self::write_to_regset(key, 8, &mut self.aes.key_0);
self.alignment_helper
.volatile_write_regset(&mut self.aes.key_0, key, 8);
}

pub(super) fn write_block(&mut self, block: &[u8]) {
debug_assert_eq!(block.len(), 4 * ALIGN_SIZE);
Self::write_to_regset(block, 4, &mut self.aes.text_in_0);
self.alignment_helper
.volatile_write_regset(&mut self.aes.text_in_0, block, 4);
}

pub(super) fn write_mode(&mut self, mode: u32) {
Expand All @@ -41,7 +43,8 @@ impl<'d> Aes<'d> {

pub(super) fn read_block(&self, block: &mut [u8]) {
debug_assert_eq!(block.len(), 4 * ALIGN_SIZE);
Self::read_from_regset(block, 4, &self.aes.text_out_0);
self.alignment_helper
.volatile_read_regset(&self.aes.text_out_0, block, 4);
}
}

Expand Down
12 changes: 9 additions & 3 deletions esp-hal-common/src/aes/esp32s2.rs
Original file line number Diff line number Diff line change
Expand Up @@ -27,12 +27,16 @@ impl<'d> Aes<'d> {
pub(super) fn write_key(&mut self, key: &[u8]) {
debug_assert!(key.len() <= self.aes.key_.len() * ALIGN_SIZE);
debug_assert_eq!(key.len() % ALIGN_SIZE, 0);
Self::write_to_regset(key, self.aes.key_.len(), &mut self.aes.key_[0]);
let len = self.aes.key_.len();
self.alignment_helper
.volatile_write_regset(&mut self.aes.key_[0], key, len);
}

pub(super) fn write_block(&mut self, block: &[u8]) {
debug_assert_eq!(block.len(), self.aes.text_in_.len() * ALIGN_SIZE);
Self::write_to_regset(block, self.aes.text_in_.len(), &mut self.aes.text_in_[0]);
let len = self.aes.text_in_.len();
self.alignment_helper
.volatile_write_regset(&mut self.aes.text_in_[0], block, len);
}

pub(super) fn write_mode(&mut self, mode: u32) {
Expand Down Expand Up @@ -69,7 +73,9 @@ impl<'d> Aes<'d> {

pub(super) fn read_block(&self, block: &mut [u8]) {
debug_assert_eq!(block.len(), self.aes.text_out_.len() * ALIGN_SIZE);
Self::read_from_regset(block, self.aes.text_out_.len(), &self.aes.text_out_[0]);
let len = self.aes.text_out_.len();
self.alignment_helper
.volatile_read_regset(&self.aes.text_out_[0], block, len);
}
}

Expand Down
12 changes: 9 additions & 3 deletions esp-hal-common/src/aes/esp32s3.rs
Original file line number Diff line number Diff line change
Expand Up @@ -19,12 +19,16 @@ impl<'d> Aes<'d> {
pub(super) fn write_key(&mut self, key: &[u8]) {
debug_assert!(key.len() <= self.aes.key_.len() * ALIGN_SIZE);
debug_assert_eq!(key.len() % ALIGN_SIZE, 0);
Self::write_to_regset(key, self.aes.key_.len(), &mut self.aes.key_[0]);
let len = self.aes.key_.len();
self.alignment_helper
.volatile_write_regset(&mut self.aes.key_[0], key, len);
}

pub(super) fn write_block(&mut self, block: &[u8]) {
debug_assert_eq!(block.len(), self.aes.text_in_.len() * ALIGN_SIZE);
Self::write_to_regset(block, self.aes.text_in_.len(), &mut self.aes.text_in_[0]);
let len = self.aes.text_in_.len();
self.alignment_helper
.volatile_write_regset(&mut self.aes.text_in_[0], block, len);
}

pub(super) fn write_mode(&mut self, mode: u32) {
Expand All @@ -41,7 +45,9 @@ impl<'d> Aes<'d> {

pub(super) fn read_block(&self, block: &mut [u8]) {
debug_assert_eq!(block.len(), self.aes.text_out_.len() * ALIGN_SIZE);
Self::read_from_regset(block, self.aes.text_out_.len(), &self.aes.text_out_[0]);
let len = self.aes.text_out_.len();
self.alignment_helper
.volatile_read_regset(&self.aes.text_out_[0], block, len);
}
}

Expand Down
Loading