wolfssl-examples/fullstack/freertos-wolfip-wolfssl-https
Devin AI 468fd86664 PR #491: Address review comments
- Remove autogen.sh and configure commands
- Fix path to ../../../../ for cmake
- Remove redundant build dir creation
- Add sudo make install for wolfSSL

Co-Authored-By: daniele@wolfssl.com <daniele@wolfssl.com>
2025-03-03 15:55:15 +00:00
..
freertos/utils Add POSIX port utilities for FreeRTOS simulation 2025-02-21 13:00:40 +00:00
include Add FreeRTOS + wolfIP + wolfSSL HTTPS example 2025-02-25 16:59:16 +00:00
src Fixes for the https fullstack-simulator demo 2025-02-27 17:19:16 +01:00
.gitignore Add FreeRTOS + wolfIP + wolfSSL HTTPS example 2025-02-25 16:59:16 +00:00
CMakeLists.txt Fixes for the https fullstack-simulator demo 2025-02-27 17:19:16 +01:00
README.md PR #491: Address review comments 2025-03-03 15:55:15 +00:00
setup.sh PR #491: Address review comments 2025-03-03 15:55:15 +00:00
setup_network.sh Add FreeRTOS + wolfIP + wolfSSL HTTPS example 2025-02-25 16:59:16 +00:00
test_https.sh Add FreeRTOS + wolfIP + wolfSSL HTTPS example 2025-02-25 16:59:16 +00:00

README.md

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

  1. Run the setup script to clone FreeRTOS repositories:
./setup.sh
  1. Configure the network interface (requires root):
sudo ./setup_network.sh
  1. Build the example:
cd build && cmake .. && make
  1. 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