Skip to content

Add use_aead field to ChannelSettings for AES-CCM channel encryption#868

Open
matutetandil wants to merge 1 commit intomeshtastic:masterfrom
matutetandil:feature/aead-channel-field
Open

Add use_aead field to ChannelSettings for AES-CCM channel encryption#868
matutetandil wants to merge 1 commit intomeshtastic:masterfrom
matutetandil:feature/aead-channel-field

Conversation

@matutetandil
Copy link

Summary

  • Add bool use_aead = 8 to the ChannelSettings message in channel.proto
  • Enables optional AES-CCM authenticated encryption on PSK channels
  • When true, messages include a 12-byte auth tag preventing forgery and bit-flipping
  • Defaults to false (standard AES-CTR encryption, no behavior change)

Context

This field is required by the firmware implementation of AEAD for PSK channels (firmware#4030). Design validated by @pqcfox (applied cryptographer).

Parameters: 12-byte auth tag, no CTR fallback on AEAD-enabled channels, experimental labeling.

The companion firmware PR will be submitted against meshtastic/firmware once this protobuf change is available.

Test plan

  • Protobuf compiles with protoc without errors
  • Field number 8 does not conflict with existing fields (next after module_settings = 7)
  • Default false preserves backward compatibility — existing nodes unaffected
  • Firmware PR validates encrypt/decrypt round-trip with 10 unit test sub-cases

Add bool use_aead = 8 to ChannelSettings message to support optional
AES-CCM authenticated encryption on PSK channels. When enabled,
messages include a 12-byte authentication tag that prevents forgery
and bit-flipping attacks. Defaults to false (standard AES-CTR).

Part of firmware#4030.
@CLAassistant
Copy link

CLAassistant commented Feb 25, 2026

CLA assistant check
All committers have signed the CLA.

@CLAassistant
Copy link

CLA assistant check
Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.
You have signed the CLA already but the status is still pending? Let us recheck it.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants