* Rework hal initialization
* Turn sw interrupt control into a virtual peripheral
* Return a tuple instead of a named struct
* Fix docs
* Remove SystemClockControl
* Move software interrupts under interrupt
* Re-document what's left in system
* Update time docs
* Update sw int docs
* Introduce Config
* Fix tests
* Remove redundant inits
* Doc
* Clean up examples&tests
* Update tests
* Add changelog entry
* Start migration guide
* Restore some convenience-imports
* Remove Config from prelude
* feat(SHA): Refactor SHA to use trait. Implement Digest traits for SHA
* Fix CI. Fix wrong sha mode for esp32
* Save hash register for interleaving operation
An example (wip) `sha_fuzz.rs` was added to test different functionalities of the SHA driver and to ensure proper functionning under all cases.
* Use random data when testing SHA
* fix(SHA): Buffer words until a full block before writing to memory
This fixes interleaving operations by buffering words into the SHA context until a full block can be processed.
* Fix(SHA): Use correct length padding for SHA384 and SHA512.
- This fixes a long running issue with SHA384 and SHA512, where some digest of specific sizes wouldn't compute correctly, by changing the padding length of the size field.
* Re-export digest for convenience
* Remove completed TODO
* Remove SHA peripheral requirement.
- Document safety of the SHA driver.
---------
Co-authored-by: Scott Mabin <scott@mabez.dev>