mcu-comms 0.3.1

A lightweight, no_std communication framing and packet encryption utility library designed for resource-constrained microcontrollers.
Documentation
mcu-comms

A lightweight, no_std-compatible communication framing and packet encryption utility library designed for resource-constrained microcontrollers.

It provides secure AES-CCM (Counter with CBC-MAC) authenticated encryption, sliding window/nonce replay protection, and command serialization utilizing zero-allocation containers.

Features

no_std First: Zero dynamic allocations.

Hardware Acceleration Friendly: Defines a simple, customizable Encrypt hardware abstraction layer (HAL) trait to hook directly into your MCU's AES hardware peripheral.

Replay Protection: Built-in 5-byte rising counter nonce verification to completely prevent packet replay attacks.

Compact Over-the-Air Frame: Efficient packing optimized.
Over-The-Air Frame Layout

                        | OVER-THE-AIR FRAME |

+--------------------------+--------------------+-----------------------+
| dst (6 Bytes) | flags (1 Byte) | ctr (5 Bytes) | -> HEADER (12 Bytes)
+--------------------------+--------------------+-----------------------+
| Ciphertext (N Bytes) | -> PAYLOAD
+-----------------------------------------------------------------------+
| Tag (16 Bytes) | -> MAC/TAG (16 Bytes)
+-----------------------------------------------------------------------+

Installation

Add this to your Cargo.toml dependencies:

[dependencies]
mcu-comms = `latest version`

check the /examples folder for examples

License

Licensed under the Apache License, Version 2.0 (LICENSE or http://www.apache.org/licenses/LICENSE-2.0).