Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
27 commits
Select commit Hold shift + click to select a range
1a2be06
feat: add secure socket stream session
LK-Simon Aug 20, 2026
641e5fe
feat: add secure socket datagram helper
LK-Simon Aug 20, 2026
e22587e
chore: bump Sockets to 0.4.0
LK-Simon Aug 20, 2026
dde63d3
chore: update Sockets 0.4.0 package metadata
LK-Simon Aug 20, 2026
9257267
chore: update Sockets 0.4.0 Arduino metadata
LK-Simon Aug 20, 2026
d833e3e
chore: update Sockets 0.4.0 component metadata
LK-Simon Aug 20, 2026
9b3f205
test: add socket Security integration coverage
LK-Simon Aug 20, 2026
f15c9f5
test: add socket Security integration suite
LK-Simon Aug 20, 2026
80e01b3
docs: add Sockets Security integration guide
LK-Simon Aug 20, 2026
2faca5b
docs: add secure TCP client example
LK-Simon Aug 20, 2026
7a56a6e
docs: add Sockets 0.4.0 changelog
LK-Simon Aug 20, 2026
214fc64
docs: document Sockets 0.4.0 Security integration
LK-Simon Aug 20, 2026
200b8fd
docs: update Sockets dependency chart for Security
LK-Simon Aug 20, 2026
0c8942a
ci: add Sockets Security integration validation
LK-Simon Aug 20, 2026
63076ff
chore: validate Sockets Security feature
LK-Simon Aug 20, 2026
76a7691
chore: record Security feature validation
github-actions[bot] Aug 20, 2026
0c885dd
fix: preserve protocol routing in secure socket streams
LK-Simon Aug 20, 2026
7028f3a
fix: preserve protocol routing in secure socket datagrams
LK-Simon Aug 20, 2026
999976a
test: cover secure socket protocol routing policies
LK-Simon Aug 20, 2026
db71f47
chore: rerun Security feature validation
LK-Simon Aug 20, 2026
27d3d20
chore: record Security feature validation
github-actions[bot] Aug 20, 2026
d81d4c4
test: satisfy strict warning policy in Security tests
LK-Simon Aug 20, 2026
0c85e79
chore: rerun final Security feature validation
LK-Simon Aug 20, 2026
8d23b64
chore: record Security feature validation
github-actions[bot] Aug 20, 2026
8759404
docs: describe secure socket protocol routing fields
LK-Simon Aug 20, 2026
fbdb48d
chore: remove temporary Security validation report
LK-Simon Aug 20, 2026
223a194
chore: remove temporary Security validation workflow
LK-Simon Aug 20, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
68 changes: 68 additions & 0 deletions .github/workflows/security-integration-tests.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
name: Security Integration

on:
push:
branches: [feature/security-integration, main]
pull_request:
branches: [main]

jobs:
host-tests:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v4
with:
repository: Flowduino/ESPressio-Command
ref: 0.2.0
path: deps/ESPressio-Command
- uses: actions/checkout@v4
with:
repository: Flowduino/ESPressio-Security
ref: 0.1.0
path: deps/ESPressio-Security
- uses: actions/checkout@v4
with:
repository: Flowduino/ESPressio-Timing
ref: 2.2.2
path: deps/ESPressio-Timing
- uses: actions/checkout@v4
with:
repository: Flowduino/ESPressio-Units
ref: 0.2.1
path: deps/ESPressio-Units
- uses: actions/checkout@v4
with:
repository: Flowduino/ESPressio-Observable
ref: 3.0.1
path: deps/ESPressio-Observable
- name: Configure
run: >-
cmake -S tests -B build
-DESPRESSIO_COMMAND_INCLUDE_DIR="$GITHUB_WORKSPACE/deps/ESPressio-Command/src"
-DESPRESSIO_SECURITY_INCLUDE_DIR="$GITHUB_WORKSPACE/deps/ESPressio-Security/src"
-DESPRESSIO_TIMING_INCLUDE_DIR="$GITHUB_WORKSPACE/deps/ESPressio-Timing/src"
-DESPRESSIO_UNITS_INCLUDE_DIR="$GITHUB_WORKSPACE/deps/ESPressio-Units/src"
-DESPRESSIO_OBSERVABLE_INCLUDE_DIR="$GITHUB_WORKSPACE/deps/ESPressio-Observable/src"
- name: Build
run: cmake --build build --parallel
- name: Test
run: ctest --test-dir build --output-on-failure

esp32-secure-tcp-example:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v4
with:
repository: Flowduino/ESPressio-Security
ref: 0.1.0
path: deps/ESPressio-Security
- name: Install PlatformIO
run: pip install platformio
- name: Compile SecureTCPClient
run: >-
pio ci examples/SecureTCPClient/SecureTCPClient.ino
--board esp32dev --lib . --lib deps/ESPressio-Security
--project-option="build_flags=-std=gnu++17"
--project-option="build_unflags=-std=gnu++11 -fno-rtti"
20 changes: 20 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,25 @@
# Changelog

## 0.4.0 — 2026-08-20

### Added
- Added opt-in ESPressio Security integration targeting Security >= 0.1.0 < 1.0.0.
- Added `SocketSecuritySession` for TCP/TLS/WebSocket-style byte streams with explicit protected-frame length framing and arbitrary receive chunking.
- Added `SocketSecurityDatagram` for UDP/message-oriented carriers with one ESPressio Security envelope per datagram.
- Added authenticated receive callbacks and security-failure observation without exposing key material.
- Added support for Security sender IDs, authenticated session epochs, key IDs, AEAD algorithm abstraction and replay protection.
- Added secure TCP client example and host tests for fragmented/coalesced stream frames, frame limits, datagram protection, and replay rejection.

### Changed
- Bumped package/component/public version metadata to 0.4.0.
- Kept Security optional; the normal `ESPressio_Sockets.hpp` umbrella does not include Security-dependent headers.
- Existing Event, Command, Timing, TCP/UDP/TLS/WebSocket/MQTT functionality remains source-compatible.
- Documented ESPressio Security as independent from TLS and usable either alone or as defense-in-depth.

### Compatibility
- Existing 0.3.x applications continue to operate unchanged when Security integration is not selected.
- Security does not become a mandatory dependency of core Sockets.

## 0.3.0 — 2026-08-20

### Added
Expand Down
Loading
Loading