This release contains the following changes since 2.3.0:
- Added TLS server support on ESP32, ESP32-C3 and ESP32-S3 modules so that RepRapFirmware can serve HTTPS and other protocols over TLS
- Added new commands to store a PEM-encoded certificate and private key on the WiFi module, to enable TLS and to erase the stored credentials again; they are kept on the data partition and survive reboots
- Added a flag to the listen command that marks a listener as TLS-wrapped
- Restricted TLS to version 1.2 with ECDHE-ECDSA ciphersuites, TLS 1.0 and 1.1 as well as unused key exchanges and elliptic curves are no longer compiled in
- TLS is not available on the ESP8266 module because a single handshake needs more heap than the module has available
- Changed the priorities of all firmware tasks to run below the lwIP TCP/IP thread, so that SPI transfers take precedence over crypto operations in progress
- Network tasks are pinned to the first core and the main task to the second one on dual-core modules
- Increased the main task and TCP listener stack sizes for TLS operations and enabled hardware stack overflow detection
- M122 reports the remaining stack of every task
- Bug fix: The saved sdkconfig could become stale when running make, so builds could pick up outdated SDK settings
TLS support requires RepRapFirmware 3.7 or later, which adds the T parameter to M552 and M586. Older versions are unaffected and remain compatible.