2.1 KiB
2.1 KiB
FreeRTOS + wolfIP + wolfSSL HTTPS Example
This example demonstrates a full-stack embedded networking application using FreeRTOS, wolfIP, and wolfSSL. It implements a secure HTTPS server running on a simulated FreeRTOS environment with TLS 1.3 support.
Stack Components
The example integrates the following components:
- FreeRTOS (POSIX port) - Real-time operating system
- wolfIP - TCP/IP networking stack
- wolfSSL - TLS 1.3 security layer
- TAP interface - Virtual network interface
Building and Running
Prerequisites
- wolfSSL library
- wolfIP library
- CMake (>= 3.13)
- GCC
- Linux with TUN/TAP support
Setup
- Run the setup script to clone FreeRTOS repositories:
./setup.sh
- Configure the network interface (requires root):
sudo ./setup_network.sh
- Build the example:
make -p build && cd build && cmake .. && make
- Run the example (requires root):
sudo ./freertos_sim
Testing
Test the HTTPS server using curl:
sudo ./test_https.sh
Or manually:
curl -v --cacert /path/to/wolfssl/certs/ca-cert.pem \
--tlsv1.3 --insecure https://10.10.0.10:443/
Software Bill of Materials (SBOM)
Component | Version | License | Source |
---|---|---|---|
FreeRTOS | Latest | MIT | https://github.com/FreeRTOS/FreeRTOS |
FreeRTOS-Kernel | Latest | MIT | https://github.com/FreeRTOS/FreeRTOS-Kernel |
wolfSSL | Latest | GPLv2 | https://github.com/wolfSSL/wolfssl |
wolfIP | Latest | GPLv2 | https://github.com/wolfSSL/wolfip |
Features
- TLS 1.3 support with wolfSSL
- Zero dynamic memory allocation networking with wolfIP
- Virtual networking through TAP interface
- UDP echo server for testing
- HTTPS server with demo page
- FreeRTOS task management and scheduling
Network Configuration
- TAP Interface: 10.10.0.1/24 (Host)
- FreeRTOS IP: 10.10.0.10/24
- Default Gateway: 10.10.0.1
Security Features
- TLS 1.3 with modern cipher suites
- Certificate-based authentication
- Support for various cryptographic algorithms:
- AES (ECB, CBC, GCM)
- ChaCha20-Poly1305
- Curve25519
- ED25519
- SHA-2 and SHA-3 family