ProtoCore v0.0.2
Deterministic, zero-heap network stack for embedded targets
Loading...
Searching...
No Matches
aesgcm.cpp File Reference

AES-256-GCM AEAD - stateless implementation (see aesgcm.h). More...

#include "crypto/aead/aesgcm.h"
#include "crypto/crypto_opt.h"
#include "crypto/crypto_scratch.h"
#include "crypto/mac/ghash.h"
#include "server/mmgr/secure.h"
#include <string.h>

Go to the source code of this file.

Functions

PC_CRYPTO_HOT void pc_aesgcm_iv_increment (uint8_t iv[PC_AESGCM_IV_LEN])
 Advance the RFC 5647 invocation counter: the low 8 bytes of the 12-byte nonce as a big-endian integer; the 4-byte fixed field never changes. SSH calls this after each sealed/opened packet.
 

Detailed Description

AES-256-GCM AEAD - stateless implementation (see aesgcm.h).

All working memory (AES key schedule, GHASH table, keystream, accumulator, tag mask, counters) lives in the secure pool, laid out as a GcmWork on the software path or an The working set is a pool borrow, wiped when released. No cipher state ever touches the stack or BSS.

The implementation lives in a backend under board_drivers/, chosen by the vendor's PC_HAS_HW_AESGCM: the accelerated AEAD where the silicon has one, the portable software AES + table GHASH where it does not. This file names no vendor and no cipher

  • GF(2^8) xtime) + software GHASH. The GF(2^128) reduction mirrors aes128gcm.cpp.

Definition in file aesgcm.cpp.

Function Documentation

◆ pc_aesgcm_iv_increment()

PC_CRYPTO_HOT void pc_aesgcm_iv_increment ( uint8_t  iv[PC_AESGCM_IV_LEN])

Advance the RFC 5647 invocation counter: the low 8 bytes of the 12-byte nonce as a big-endian integer; the 4-byte fixed field never changes. SSH calls this after each sealed/opened packet.

Definition at line 30 of file aesgcm.cpp.

References PC_AESGCM_IV_LEN.

Referenced by ssh_pkt_send().