AES accelerator support for STM32U5xx#4859
Open
theonlytruealex wants to merge 111 commits into
Open
Conversation
Contributor
|
Cool! Obviously we need to get the board merged first, but two high-level comments:
|
Author
|
Thanks for the quick reply! I will put them in a separate PR tomorrow! |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Pull Request Overview
Depends on
OxidosAutomotive:board_nucleo_u545re_qThis pull request adds support for the AES driver accelerator for the stm32u5xx chip series and it generalises the AES hil. Where previously it was, necessarily AES128, it now supports 256 bit keys. The size of the key is now a const generic of the type AES: AES and AES. Modified older code accordingly.
mod.rs,gcm_ccm.rsandregisters.rs, containing the logic for the AES accelerator for 128 and 256 length keys, for the following modes: ECB, CBC, CTR, GCM, GMAC, CCMdma.rsandchip.rswith the necessary code to connect the peripheral to DMA. The addition is, essentially, a way to determine the data width for source and destination, and to determine the paddingaes256.rs(for ECB, CBC, CTR modes),aes_ccm_256.rsandaes_gcm_256.rsfor 256 bit key testing. The vectors used in testing were taken from NISTTesting Strategy
Documentation Updated
Formatting
make prepush.AI Use
AI was used for suggestions to create cleaner code, debugging, and help in the creation of test file as the code for testing is uniform and doesn't require interaction with the peripheral, just sending and checking values. All generated code, register offsets, and memory maps were manually verified against the STM32U545 Reference Manual and validated on live hardware.
code in this PR, if any, and I have manually checked and
personally certify the entire contents of this PR.