|
ProtoCore v0.0.2
Deterministic, zero-heap network stack for embedded targets
|
AES-128-GCM and the AES-128 block on Espressif silicon, through the vendor's own primitives. More...
#include "board_drivers/board_profiles/pc_platform.h"#include "crypto/aead/aes128gcm.h"#include "crypto/crypto_opt.h"#include "protocore_config.h"#include "server/mmgr/secure.h"#include <string.h>Go to the source code of this file.
AES-128-GCM and the AES-128 block on Espressif silicon, through the vendor's own primitives.
The AEAD is one mbedtls_gcm call. The core used to drive the block cipher 16 bytes at a time and fold GHASH in software on every target - on the AES-256 path that measured 616,567 cyc/KiB against the vendor AEAD's 81,085, and there is no reason to expect a different ratio here.
The context is keyed and held for the life of the key: standing an mbedtls GCM context up and tearing it down costs ~9,200 cycles once the AES peripheral has been used, a FIXED cost per record that dominates QUIC and DTLS traffic, where records are small.
Vendor headers are fine here: this is board_drivers, the partition vendor code is segregated to.
Definition in file esp_aes128gcm.cpp.