Features currently supported:
-
support for
ARM Cortex-M, Cortex-A
micro-architectures -
support for multi-slot partitioning of microcontroller flash memory. This allows us to implement the
boot/update
approach for bare-metalfirmware updates
. -
support for
Aarch64 linux
booting -
elliptic curve cryptography for integrity and authenticity verification using
RustCrypto
crates - a tiny hardware abstraction layer for non-volatile memory (i.e. flash) access.
- anti-rollback protection via version numbering.
- a fully memory safe core-bootloader implementation with safe parsers and firmware-update logic.
- power-interruptible firmware updates along with the assurance of fall-back availability.
-
a
signing utility
to sign bare-metal firmware and fit-image(s), written in pure rust.
Features planned:
- support for external flash devices (ex: SPI flash) and serial/console logging interfaces.
-
support for
ARM TrustZone-M and A
and certifiedsecure hardware elements
- microchip ATECC608a, NXP SE050, STSAFE-100 -
support for a highly secure and efficient
firmware transport
method over end-end mutually authenticated and encrypted channels via ockam-networking-libraries.