niccellular
fd7fc40255
Add rak4631_lockdown hardened build variant
Introduces a new RAK4631 build variant (-DMESHTASTIC_LOCKDOWN=1) with
encrypted flash storage, BLE/USB config access control, and hardened
defaults.
New files:
- variants/nrf52840/rak4631_lockdown/ — PlatformIO env, variant header
- src/security/EncryptedStorage.h/.cpp — AES-128-CTR + HMAC-SHA256
encrypted proto storage using CC310 hardware, passphrase-gated DEK,
TTL/boot-count unlock token, backoff on failed attempts
- src/security/APProtect.h/.cpp — UICR APPROTECT (SWD lockout)
Modified files:
- configuration.h — MESHTASTIC_LOCKDOWN flag derives
PHONEAPI_ACCESS_CONTROL, ENCRYPTED_STORAGE, ENABLE_APPROTECT,
HARDENED_DEFAULTS (nRF52 only)
- NodeDB.cpp/.h — encrypted loadProto/saveProto, locked-boot early
return, migration of plaintext files to MENC, hardened defaults,
saveToDiskNoRetry guard prevents FSCom.format() when storage locked
- PhoneAPI.cpp/.h — per-connection auth reset, redacts channel PSKs
and security keys for unauthorized clients, revokeAllAuth() for
Lock Now, post-config TAK_LOCKED/TAK_NEEDS_PROVISION notification
- AdminModule.cpp — passphrase delivery via set_config(security),
provision/unlock/re-verify flow, Lock Now sentinel (0xFF),
PKC admin auth callback to PhoneAPI
- PowerFSM.cpp — guard serialEnter() BLE disable on nRF52
2026-02-26 22:15:40 -05:00
..
2026-01-08 16:44:05 -06:00
2026-02-21 06:14:04 -06:00
2026-02-16 10:07:07 -06:00
2026-01-04 05:15:53 -06:00
2026-02-16 12:28:07 +01:00
2026-02-20 06:12:22 -06:00
2026-02-16 19:39:43 +01:00
2026-02-26 22:15:40 -05:00
2026-02-26 22:15:40 -05:00
2026-01-15 06:23:40 -06:00
2026-02-16 13:49:58 +01:00
2026-01-31 12:15:06 -06:00
2026-02-16 12:28:07 +01:00
2026-01-24 08:39:03 -06:00
2026-02-26 22:15:40 -05:00
2026-02-11 14:13:34 -06:00
2026-01-29 05:56:19 -06:00
2026-01-04 05:15:53 -06:00
2026-01-04 05:15:53 -06:00
2026-02-15 00:32:19 +01:00
2026-02-15 06:49:16 -06:00
2026-01-04 05:15:53 -06:00
2026-01-04 05:15:53 -06:00
2026-01-31 12:15:06 -06:00
2026-01-04 05:15:53 -06:00
2026-02-26 22:15:40 -05:00
2026-01-12 09:52:39 -06:00
2026-01-12 09:52:39 -06:00
2026-01-04 05:15:53 -06:00
2026-01-04 05:15:53 -06:00
2023-06-08 08:07:32 -05:00
2026-01-04 05:15:53 -06:00
2026-01-04 05:15:53 -06:00
2025-03-21 16:12:27 +01:00
2026-01-04 05:15:53 -06:00
2026-01-04 05:15:53 -06:00
2026-01-04 05:15:53 -06:00
2026-02-26 22:15:40 -05:00
2026-02-20 11:25:28 -06:00
2026-01-04 05:15:53 -06:00
2026-01-04 05:15:53 -06:00
2026-02-08 11:20:15 -06:00
2026-02-08 11:20:15 -06:00
2026-01-12 19:40:44 -06:00
2026-01-12 19:40:44 -06:00
2026-01-04 05:15:53 -06:00
2026-01-04 05:15:53 -06:00
2023-01-21 21:23:24 +01:00
2026-01-04 05:15:53 -06:00
2026-02-16 12:28:07 +01:00
2026-02-07 22:30:14 -06:00
2026-02-26 22:15:40 -05:00
2026-01-04 05:15:53 -06:00
2026-01-04 05:15:53 -06:00
2026-01-04 05:15:53 -06:00
2026-01-04 05:15:53 -06:00
2026-01-04 05:15:53 -06:00
2026-02-14 19:32:16 +01:00
2026-01-04 05:15:53 -06:00
2024-09-02 20:08:02 -05:00
2026-01-13 05:57:04 -06:00
2026-01-04 05:15:53 -06:00
2026-01-04 05:15:53 -06:00
2026-01-04 05:15:53 -06:00
2026-02-20 16:12:54 -06:00
2025-03-01 06:18:33 -06:00
2026-01-04 05:15:53 -06:00
2026-01-04 05:15:53 -06:00
2024-03-03 13:56:55 -06:00
2026-01-04 05:15:53 -06:00
2026-01-04 05:15:53 -06:00