|
ProtoCore v0.0.2
Deterministic, zero-heap network stack for embedded targets
|
AES-128 block cipher + AEAD_AES_128_GCM (RFC 5116 / NIST SP 800-38D). More...
#include "protocore_config.h"Go to the source code of this file.
AES-128 block cipher + AEAD_AES_128_GCM (RFC 5116 / NIST SP 800-38D).
The generic 128-bit AES primitives: encrypt one 16-byte block under a 128-bit key (ECB - used for GCM's counter mode and for keystream sampling), and the one-shot AEAD_AES_128_GCM seal/open (96-bit nonce, 128-bit tag). Consumed by QUIC Initial packet protection (RFC 9001 sec 5.3/5.4), the DTLS 1.3 record layer, and SMB 3.x transport encryption - a single home for the primitive, not per-protocol copies.
On Arduino (ESP32) the AES block is mbedtls, routed to the hardware AES accelerator; on native host builds a compact software AES-128 is used so the whole AEAD is unit-testable off-target. GHASH and the counter loop are the same software on both. Pure, zero heap, host-tested against the NIST GCM vectors and RFC 9001 Appendix A.
Definition in file aes128gcm.h.