diff --git a/IDE/Espressif/ESP-IDF/examples/wolfssl_benchmark/sdkconfig.defaults b/IDE/Espressif/ESP-IDF/examples/wolfssl_benchmark/sdkconfig.defaults
index a8e3efeb4c..8e3c969d94 100644
--- a/IDE/Espressif/ESP-IDF/examples/wolfssl_benchmark/sdkconfig.defaults
+++ b/IDE/Espressif/ESP-IDF/examples/wolfssl_benchmark/sdkconfig.defaults
@@ -28,4 +28,17 @@ CONFIG_COMPILER_OPTIMIZATION_ASSERTIONS_ENABLE=y
CONFIG_COMPILER_OPTIMIZATION_ASSERTION_LEVEL=2
CONFIG_COMPILER_HIDE_PATHS_MACROS=y
CONFIG_COMPILER_STACK_CHECK_MODE_NORM=y
-CONFIG_COMPILER_STACK_CHECK=y
\ No newline at end of file
+CONFIG_COMPILER_STACK_CHECK=y
+
+#
+# Partition Table
+#
+# CONFIG_PARTITION_TABLE_SINGLE_APP is not set
+CONFIG_PARTITION_TABLE_SINGLE_APP_LARGE=y
+# CONFIG_PARTITION_TABLE_TWO_OTA is not set
+# CONFIG_PARTITION_TABLE_CUSTOM is not set
+CONFIG_PARTITION_TABLE_CUSTOM_FILENAME="partitions.csv"
+CONFIG_PARTITION_TABLE_FILENAME="partitions_singleapp_large.csv"
+CONFIG_PARTITION_TABLE_OFFSET=0x8000
+CONFIG_PARTITION_TABLE_MD5=y
+# end of Partition Table
diff --git a/IDE/Espressif/ESP-IDF/examples/wolfssl_client/sdkconfig.defaults b/IDE/Espressif/ESP-IDF/examples/wolfssl_client/sdkconfig.defaults
new file mode 100644
index 0000000000..f8bce25ff3
--- /dev/null
+++ b/IDE/Espressif/ESP-IDF/examples/wolfssl_client/sdkconfig.defaults
@@ -0,0 +1,35 @@
+CONFIG_FREERTOS_HZ=1000
+CONFIG_ESP32_DEFAULT_CPU_FREQ_240=y
+
+#
+# Default main stack size
+#
+# This is typically way bigger than needed for stack size. See user_settings.h
+#
+CONFIG_ESP_MAIN_TASK_STACK_SIZE=55500
+
+# Legacy stack size for older ESP-IDF versions
+CONFIG_MAIN_TASK_STACK_SIZE=55500
+
+#
+# Compiler options
+#
+CONFIG_COMPILER_OPTIMIZATION_DEFAULT=y
+CONFIG_COMPILER_OPTIMIZATION_ASSERTIONS_ENABLE=y
+CONFIG_COMPILER_OPTIMIZATION_ASSERTION_LEVEL=2
+CONFIG_COMPILER_HIDE_PATHS_MACROS=y
+CONFIG_COMPILER_STACK_CHECK_MODE_NORM=y
+CONFIG_COMPILER_STACK_CHECK=y
+
+#
+# Partition Table
+#
+# CONFIG_PARTITION_TABLE_SINGLE_APP is not set
+CONFIG_PARTITION_TABLE_SINGLE_APP_LARGE=y
+# CONFIG_PARTITION_TABLE_TWO_OTA is not set
+# CONFIG_PARTITION_TABLE_CUSTOM is not set
+CONFIG_PARTITION_TABLE_CUSTOM_FILENAME="partitions.csv"
+CONFIG_PARTITION_TABLE_FILENAME="partitions_singleapp_large.csv"
+CONFIG_PARTITION_TABLE_OFFSET=0x8000
+CONFIG_PARTITION_TABLE_MD5=y
+# end of Partition Table
diff --git a/IDE/Espressif/ESP-IDF/examples/wolfssl_server/sdkconfig.defaults b/IDE/Espressif/ESP-IDF/examples/wolfssl_server/sdkconfig.defaults
new file mode 100644
index 0000000000..f8bce25ff3
--- /dev/null
+++ b/IDE/Espressif/ESP-IDF/examples/wolfssl_server/sdkconfig.defaults
@@ -0,0 +1,35 @@
+CONFIG_FREERTOS_HZ=1000
+CONFIG_ESP32_DEFAULT_CPU_FREQ_240=y
+
+#
+# Default main stack size
+#
+# This is typically way bigger than needed for stack size. See user_settings.h
+#
+CONFIG_ESP_MAIN_TASK_STACK_SIZE=55500
+
+# Legacy stack size for older ESP-IDF versions
+CONFIG_MAIN_TASK_STACK_SIZE=55500
+
+#
+# Compiler options
+#
+CONFIG_COMPILER_OPTIMIZATION_DEFAULT=y
+CONFIG_COMPILER_OPTIMIZATION_ASSERTIONS_ENABLE=y
+CONFIG_COMPILER_OPTIMIZATION_ASSERTION_LEVEL=2
+CONFIG_COMPILER_HIDE_PATHS_MACROS=y
+CONFIG_COMPILER_STACK_CHECK_MODE_NORM=y
+CONFIG_COMPILER_STACK_CHECK=y
+
+#
+# Partition Table
+#
+# CONFIG_PARTITION_TABLE_SINGLE_APP is not set
+CONFIG_PARTITION_TABLE_SINGLE_APP_LARGE=y
+# CONFIG_PARTITION_TABLE_TWO_OTA is not set
+# CONFIG_PARTITION_TABLE_CUSTOM is not set
+CONFIG_PARTITION_TABLE_CUSTOM_FILENAME="partitions.csv"
+CONFIG_PARTITION_TABLE_FILENAME="partitions_singleapp_large.csv"
+CONFIG_PARTITION_TABLE_OFFSET=0x8000
+CONFIG_PARTITION_TABLE_MD5=y
+# end of Partition Table
diff --git a/IDE/Espressif/ESP-IDF/examples/wolfssl_test/VisualGDB_wolfssl_test_IDF_v5_ESP32S3.vgdbproj b/IDE/Espressif/ESP-IDF/examples/wolfssl_test/VisualGDB_wolfssl_test_IDF_v5_ESP32S3.vgdbproj
new file mode 100644
index 0000000000..e483e12011
--- /dev/null
+++ b/IDE/Espressif/ESP-IDF/examples/wolfssl_test/VisualGDB_wolfssl_test_IDF_v5_ESP32S3.vgdbproj
@@ -0,0 +1,269 @@
+
+
+
+
+
+ Unknown
+
+ true
+
+ 35e5525f-318a-466e-a8c7-36548547d801
+ true
+ true
+ SourceDirs
+
+
+
+
+
+ com.visualgdb.xtensa-esp32-elf
+
+ 11.2.0
+ 9.2.90
+ 2
+
+
+
+ DEBUG
+ build/$(PlatformName)/$(ConfigurationName)
+
+ false
+ $(ToolchainNinja)
+ $(BuildDir)
+
+
+
+ false
+ $(SYSPROGS_CMAKE_PATH)
+
+
+ true
+ false
+ false
+ Ninja
+ false
+ RemoveBuildDirectory
+ false
+
+
+ true
+ true
+ true
+ false
+ true
+ false
+ true
+ HideOuterProjectTargets
+ true
+ false
+ true
+
+
+ true
+ eadcc9ab-72b3-4b51-a838-593e5d80ddf7
+
+ Upper
+ HeaderDirectoryAndSubdirectories
+ true
+
+
+ release/v5.0
+ esp-idf/v5.0
+ ESPIDF
+
+ COM20
+ false
+ false
+ ESP32
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Default
+
+
+
+ COM20
+
+ 115200
+ 8
+ None
+ One
+ None
+
+
+ 0
+ false
+ false
+ false
+ ASCII
+
+
+ 255
+ 0
+ 0
+ 0
+
+
+ 255
+ 169
+ 169
+ 169
+
+
+ 255
+ 211
+ 211
+ 211
+
+
+ 255
+ 144
+ 238
+ 144
+
+
+ 255
+ 169
+ 169
+ 169
+
+
+
+ 16
+ true
+ true
+ true
+ true
+ 0
+
+ LF
+ false
+ false
+ false
+
+
+
+ true
+
+
+
+
+ Unknown
+
+ true
+ true
+ true
+
+
+
+ false
+
+
+
+
+ Debug
+
+
+
+ Release
+
+
+
+
+
+
+
+
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+
+ false
+ false
+ false
+ false
+ false
+ false
+ true
+ false
+ None
+ false
+ false
+ app_main
+ true
+ false
+ false
+ true
+ 0
+ false
+ 0
+ true
+ false
+
+
+ openocd
+
+ -f interface/tigard.cfg -c "adapter_khz 3000" -f target/esp32s3.cfg
+
+
+
+ false
+
+ 131072
+ Enabled
+
+ set remotetimeout 60
+ target remote :$$SYS:GDB_PORT$$
+ mon gdb_breakpoint_override hard
+ mon reset halt
+ load
+
+ false
+ 0
+ 0
+ false
+
+ 5000
+ 1
+ true
+
+ size2MB
+ freq40M
+ DIO
+
+ true
+
+
+ true
+ Auto
+ 0
+ false
+ false
+ true
+ false
+ false
+
+ _estack
+ 0
+ false
+
+ true
+
+
\ No newline at end of file
diff --git a/IDE/Espressif/ESP-IDF/examples/wolfssl_test/main/main.c b/IDE/Espressif/ESP-IDF/examples/wolfssl_test/main/main.c
index 188bf1bd23..9bab066530 100644
--- a/IDE/Espressif/ESP-IDF/examples/wolfssl_test/main/main.c
+++ b/IDE/Espressif/ESP-IDF/examples/wolfssl_test/main/main.c
@@ -24,7 +24,9 @@
#include "sdkconfig.h"
/* wolfSSL */
+#include
#include
+#include
#ifndef WOLFSSL_ESPIDF
#warning "problem with wolfSSL user settings. Check components/wolfssl/include"
#endif
@@ -126,6 +128,63 @@ void my_atmel_free(int slotId)
void app_main(void)
{
int rc = 0;
+ ESP_LOGI(TAG, "--------------------------------------------------------");
+ ESP_LOGI(TAG, "--------------------------------------------------------");
+ ESP_LOGI(TAG, "---------------------- BEGIN MAIN ----------------------");
+ ESP_LOGI(TAG, "--------------------------------------------------------");
+ ESP_LOGI(TAG, "--------------------------------------------------------");
+
+
+ ESP_LOGI(TAG, "CONFIG_IDF_TARGET = %s", CONFIG_IDF_TARGET);
+ ESP_LOGI(TAG, "LIBWOLFSSL_VERSION_STRING = %s", LIBWOLFSSL_VERSION_STRING);
+
+#if defined(LIBWOLFSSL_VERSION_GIT_HASH)
+ ESP_LOGI(TAG, "LIBWOLFSSL_VERSION_GIT_HASH = %s", LIBWOLFSSL_VERSION_GIT_HASH);
+#endif
+
+#if defined(LIBWOLFSSL_VERSION_GIT_SHORT_HASH )
+ ESP_LOGI(TAG, "LIBWOLFSSL_VERSION_GIT_SHORT_HASH = %s", LIBWOLFSSL_VERSION_GIT_SHORT_HASH);
+#endif
+
+#if defined(LIBWOLFSSL_VERSION_GIT_HASH_DATE)
+ ESP_LOGI(TAG, "LIBWOLFSSL_VERSION_GIT_HASH_DATE = %s", LIBWOLFSSL_VERSION_GIT_HASH_DATE);
+#endif
+
+
+ /* some interesting settings are target specific (ESP32, -C3, -S3, etc */
+#if defined(CONFIG_IDF_TARGET_ESP32C3)
+ /* not available for C3 at this time */
+#elif defined(CONFIG_IDF_TARGET_ESP32S3)
+ ESP_LOGI(TAG, "CONFIG_ESP32S3_DEFAULT_CPU_FREQ_MHZ = %u MHz",
+ CONFIG_ESP32S3_DEFAULT_CPU_FREQ_MHZ
+ );
+ ESP_LOGI(TAG, "Xthal_have_ccount = %u", Xthal_have_ccount);
+#else
+ ESP_LOGI(TAG, "CONFIG_ESP32_DEFAULT_CPU_FREQ_MHZ = %u MHz",
+ CONFIG_ESP32_DEFAULT_CPU_FREQ_MHZ
+ );
+ ESP_LOGI(TAG, "Xthal_have_ccount = %u", Xthal_have_ccount);
+#endif
+
+ /* all platforms: stack high water mark check */
+ ESP_LOGI(TAG, "Stack HWM: %d\n", uxTaskGetStackHighWaterMark(NULL));
+
+ /* check to see if we are using hardware encryption */
+#if defined(NO_ESP32WROOM32_CRYPT)
+ ESP_LOGI(TAG, "NO_ESP32WROOM32_CRYPT defined! HW acceleration DISABLED.");
+#else
+ #if defined(CONFIG_IDF_TARGET_ESP32C3)
+ #error "ESP32WROOM32_CRYPT not yet supported on ESP32-C3"
+ #elif defined(CONFIG_IDF_TARGET_ESP32S2)
+ #error "ESP32WROOM32_CRYPT not yet supported on ESP32-S2"
+ #elif defined(CONFIG_IDF_TARGET_ESP32S3)
+ #error "ESP32WROOM32_CRYPT not yet supported on ESP32-S3"
+ #else
+ ESP_LOGI(TAG, "ESP32WROOM32_CRYPT is enabled.");
+ #endif
+#endif
+
+
#if defined (WOLFSSL_USE_TIME_HELPER)
set_time();
diff --git a/IDE/Espressif/ESP-IDF/examples/wolfssl_test/sdkconfig.defaults b/IDE/Espressif/ESP-IDF/examples/wolfssl_test/sdkconfig.defaults
index 7a1edc8c35..ccb7820e7b 100644
--- a/IDE/Espressif/ESP-IDF/examples/wolfssl_test/sdkconfig.defaults
+++ b/IDE/Espressif/ESP-IDF/examples/wolfssl_test/sdkconfig.defaults
@@ -6,7 +6,7 @@
CONFIG_ESP_MAIN_TASK_STACK_SIZE=55000
# Legacy stack size for older ESP-IDF versions
-CONFIG_MAIN_TASK_STACK_SIZE=11000
+CONFIG_MAIN_TASK_STACK_SIZE=55000
#
# Watchdog Timers
@@ -24,4 +24,26 @@ CONFIG_COMPILER_OPTIMIZATION_ASSERTIONS_ENABLE=y
CONFIG_COMPILER_OPTIMIZATION_ASSERTION_LEVEL=2
CONFIG_COMPILER_HIDE_PATHS_MACROS=y
CONFIG_COMPILER_STACK_CHECK_MODE_NORM=y
-CONFIG_COMPILER_STACK_CHECK=y
\ No newline at end of file
+CONFIG_COMPILER_STACK_CHECK=y
+
+# minimum C3 chip revision known to work is 2.
+# rev 0 and 1 not available for testing.
+# all revisions expected to work.
+CONFIG_ESP32C3_REV_MIN_0=
+CONFIG_ESP32C3_REV_MIN_1=
+CONFIG_ESP32C3_REV_MIN_2=y
+CONFIG_ESP32C3_REV_MIN_3=
+
+
+#
+# Partition Table
+#
+# CONFIG_PARTITION_TABLE_SINGLE_APP is not set
+CONFIG_PARTITION_TABLE_SINGLE_APP_LARGE=y
+# CONFIG_PARTITION_TABLE_TWO_OTA is not set
+# CONFIG_PARTITION_TABLE_CUSTOM is not set
+CONFIG_PARTITION_TABLE_CUSTOM_FILENAME="partitions.csv"
+CONFIG_PARTITION_TABLE_FILENAME="partitions_singleapp_large.csv"
+CONFIG_PARTITION_TABLE_OFFSET=0x8000
+CONFIG_PARTITION_TABLE_MD5=y
+# end of Partition Table
diff --git a/IDE/Espressif/include.am b/IDE/Espressif/include.am
index fa101a8845..c7d0d76b80 100644
--- a/IDE/Espressif/include.am
+++ b/IDE/Espressif/include.am
@@ -1,7 +1,77 @@
# vim:ft=automake
# included from Top Level Makefile.am
# All paths should be given relative to the root
+#
+# NOTE: append_wolfssl_git_version.sh is not included as the
+# distribution file set will not contain GitHub info
+#
+# see: https://github.com/wolfSSL/wolfssl/pull/5955
-EXTRA_DIST+= IDE/Espressif/ESP-IDF/setup_win.bat
-EXTRA_DIST+= IDE/Espressif/ESP-IDF/dummy_test_paths.h
EXTRA_DIST+= IDE/Espressif/ESP-IDF/compileAllExamples.sh
+EXTRA_DIST+= IDE/Espressif/ESP-IDF/dummy_config_h
+EXTRA_DIST+= IDE/Espressif/ESP-IDF/dummy_test_paths.h
+EXTRA_DIST+= IDE/Espressif/ESP-IDF/README.md
+EXTRA_DIST+= IDE/Espressif/ESP-IDF/README_32se.md
+EXTRA_DIST+= IDE/Espressif/ESP-IDF/setup.sh
+EXTRA_DIST+= IDE/Espressif/ESP-IDF/setup_win.bat
+EXTRA_DIST+= IDE/Espressif/ESP-IDF/UPDATE.md
+EXTRA_DIST+= IDE/Espressif/ESP-IDF/user_settings.h
+
+EXTRA_DIST+= IDE/Espressif/ESP-IDF/examples/wolfssl_benchmark/CMakeLists.txt
+EXTRA_DIST+= IDE/Espressif/ESP-IDF/examples/wolfssl_benchmark/main
+EXTRA_DIST+= IDE/Espressif/ESP-IDF/examples/wolfssl_benchmark/Makefile
+EXTRA_DIST+= IDE/Espressif/ESP-IDF/examples/wolfssl_benchmark/README.md
+EXTRA_DIST+= IDE/Espressif/ESP-IDF/examples/wolfssl_benchmark/sdkconfig.defaults
+EXTRA_DIST+= IDE/Espressif/ESP-IDF/examples/wolfssl_benchmark/VisualGDB_wolfssl_benchmark.vgdbproj
+EXTRA_DIST+= IDE/Espressif/ESP-IDF/examples/wolfssl_benchmark/main/CMakeLists.txt
+EXTRA_DIST+= IDE/Espressif/ESP-IDF/examples/wolfssl_benchmark/main/component.mk
+EXTRA_DIST+= IDE/Espressif/ESP-IDF/examples/wolfssl_benchmark/main/Kconfig.projbuild
+EXTRA_DIST+= IDE/Espressif/ESP-IDF/examples/wolfssl_benchmark/main/main.c
+EXTRA_DIST+= IDE/Espressif/ESP-IDF/examples/wolfssl_benchmark/main/main.h
+
+EXTRA_DIST+= IDE/Espressif/ESP-IDF/examples/wolfssl_client/CMakeLists.txt
+EXTRA_DIST+= IDE/Espressif/ESP-IDF/examples/wolfssl_client/main
+EXTRA_DIST+= IDE/Espressif/ESP-IDF/examples/wolfssl_client/Makefile
+EXTRA_DIST+= IDE/Espressif/ESP-IDF/examples/wolfssl_client/README.md
+EXTRA_DIST+= IDE/Espressif/ESP-IDF/examples/wolfssl_client/sdkconfig.defaults
+EXTRA_DIST+= IDE/Espressif/ESP-IDF/examples/wolfssl_client/VisualGDB_wolfssl_client.vgdbproj
+EXTRA_DIST+= IDE/Espressif/ESP-IDF/examples/wolfssl_client/main/client-tls.c
+EXTRA_DIST+= IDE/Espressif/ESP-IDF/examples/wolfssl_client/main/CMakeLists.txt
+EXTRA_DIST+= IDE/Espressif/ESP-IDF/examples/wolfssl_client/main/component.mk
+EXTRA_DIST+= IDE/Espressif/ESP-IDF/examples/wolfssl_client/main/Kconfig.projbuild
+EXTRA_DIST+= IDE/Espressif/ESP-IDF/examples/wolfssl_client/main/wifi_connect.c
+EXTRA_DIST+= IDE/Espressif/ESP-IDF/examples/wolfssl_client/main/include/wifi_connect.h
+
+EXTRA_DIST+= IDE/Espressif/ESP-IDF/examples/wolfssl_server/CMakeLists.txt
+EXTRA_DIST+= IDE/Espressif/ESP-IDF/examples/wolfssl_server/Makefile
+EXTRA_DIST+= IDE/Espressif/ESP-IDF/examples/wolfssl_server/README.md
+EXTRA_DIST+= IDE/Espressif/ESP-IDF/examples/wolfssl_server/sdkconfig.defaults
+EXTRA_DIST+= IDE/Espressif/ESP-IDF/examples/wolfssl_server/VisualGDB_wolfssl_server.vgdbproj
+EXTRA_DIST+= IDE/Espressif/ESP-IDF/examples/wolfssl_server/main/CMakeLists.txt
+EXTRA_DIST+= IDE/Espressif/ESP-IDF/examples/wolfssl_server/main/component.mk
+EXTRA_DIST+= IDE/Espressif/ESP-IDF/examples/wolfssl_server/main/server-tls.c
+EXTRA_DIST+= IDE/Espressif/ESP-IDF/examples/wolfssl_server/main/wifi_connect.c
+EXTRA_DIST+= IDE/Espressif/ESP-IDF/examples/wolfssl_server/main/include/wifi_connect.h
+
+EXTRA_DIST+= IDE/Espressif/ESP-IDF/examples/wolfssl_test/CMakeLists.txt
+EXTRA_DIST+= IDE/Espressif/ESP-IDF/examples/wolfssl_test/Makefile
+EXTRA_DIST+= IDE/Espressif/ESP-IDF/examples/wolfssl_test/README.md
+EXTRA_DIST+= IDE/Espressif/ESP-IDF/examples/wolfssl_test/sdkconfig.defaults
+EXTRA_DIST+= IDE/Espressif/ESP-IDF/examples/wolfssl_test/VisualGDB_wolfssl_test.vgdbproj
+EXTRA_DIST+= IDE/Espressif/ESP-IDF/examples/wolfssl_test/VisualGDB_wolfssl_test_IDF_v5_ESP32S3.vgdbproj
+EXTRA_DIST+= IDE/Espressif/ESP-IDF/examples/wolfssl_test/main/CMakeLists.txt
+EXTRA_DIST+= IDE/Espressif/ESP-IDF/examples/wolfssl_test/main/component.mk
+EXTRA_DIST+= IDE/Espressif/ESP-IDF/examples/wolfssl_test/main/Kconfig.projbuild
+EXTRA_DIST+= IDE/Espressif/ESP-IDF/examples/wolfssl_test/main/main.c
+EXTRA_DIST+= IDE/Espressif/ESP-IDF/examples/wolfssl_test/main/time_helper.c
+EXTRA_DIST+= IDE/Espressif/ESP-IDF/examples/wolfssl_test/main/time_helper.h
+
+EXTRA_DIST+= IDE/Espressif/ESP-IDF/libs/CMakeLists.txt
+EXTRA_DIST+= IDE/Espressif/ESP-IDF/libs/component.mk
+EXTRA_DIST+= IDE/Espressif/ESP-IDF/libs/README.md
+EXTRA_DIST+= IDE/Espressif/ESP-IDF/libs/tigard.cfg
+
+EXTRA_DIST+= IDE/Espressif/ESP-IDF/test/CMakeLists.txt
+EXTRA_DIST+= IDE/Espressif/ESP-IDF/test/component.mk
+EXTRA_DIST+= IDE/Espressif/ESP-IDF/test/README.md
+EXTRA_DIST+= IDE/Espressif/ESP-IDF/test/test_wolfssl.c
diff --git a/wolfcrypt/src/random.c b/wolfcrypt/src/random.c
index 514d619459..4cdd4bbff4 100644
--- a/wolfcrypt/src/random.c
+++ b/wolfcrypt/src/random.c
@@ -3397,6 +3397,9 @@ int wc_GenerateSeed(OS_Seed* os, byte* output, word32 sz)
/* Espressif ESP32 */
#include
+ #if defined(CONFIG_IDF_TARGET_ESP32S3)
+ #include
+ #endif
int wc_GenerateSeed(OS_Seed* os, byte* output, word32 sz)
{