-
Notifications
You must be signed in to change notification settings - Fork 833
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Espressif ESP32 Benchmark, Test, TLS 1.3 Client & Server Updates #6844
Espressif ESP32 Benchmark, Test, TLS 1.3 Client & Server Updates #6844
Conversation
c8b26be
to
ba18b8d
Compare
Jenkins retest this please |
Jenkins retest this please |
92113a1
to
5b01270
Compare
…essif-client-server-example
@@ -0,0 +1,333 @@ | |||
/* time_helper.c |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This (time_helper.c) and wifi_connect.c look to be duplicated with wolfssl_client and wolfssl_server. Not critical, and could be approved with out changing, but please take a look at combining them for ease of maintenance. Having the client and server use the same time_helper.c and wifi_connect.c files.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hi @JacobBarthelmeh, you are correct: the code is duplicated between both the client and server applications. It was always duplicated in the main.c
, but now it is more obvious in separate files.
I prefer to have the examples ready-to-run, fresh out of the source code, with no additional steps for install/setup (well, other than setting up the external ESP-IDF environment). These are also examples that are published as-is to the Espressif component registry. So it seems best to have the duplicate source code in order to have each example be stand-alone.
I do agree with the duplication and maintenance annoyance. @bandi13 also pointed that out in a recent PR of mine.
Other than moving it to something like esp_util.c
in wolfCrypt (where it arguably may not belong), do you have a suggestion where "common-but-not-wolfssl" code like this should live? Perhaps just move both the client and server to a shared directory with two separate projects but otherwise common code? This would be different than all the other examples. Completely open to suggestions here.
…essif-client-server-example
The latest commit addresses code review, polishes examples, and updates for these SoC devices:
For ESP32-C2 support, a future separate PR will be needed to actually enable HW encryption. (coming soon) |
Jenkins retest this please |
Description
This PR updates the Espressif ESP32 TLS Client and Server example apps.
Of particular interest is the new
CMakeLists.txt
that searches for wolfSSL source code and expects theuser_settings.h
to now be in the project directory:components/wolfssl/include
. See #6118.The update also adds support for the ESP-IDF v5 (specifically v5.1) as noted in #5909.
The Wi-Fi networking connection has been improved, using example ESP-IDF code when possible. There's also improved time-setting and NTP support, falling back to GitHub recent commit date, and then worst case to a fixed date time value.
SM Cipher support has been added. See #6671 and wolfSSL/wolfsm. The SM ciphers need to be manually installed as noted in the README.md. Enable SM in the local
user_settings.h
file. The wolfssl/certs_test_sm.h is also needed from #6681 / #6825 for these examples to work properly with SM ciphers.Edit: This PR now includes changes to support ESP-IDF v4.4, 5.0, and 5.1. See Espressif supported version list.
Edit (2): I've created Espressif Update wolfSSL component CMakeLists.txt #6877 to fix the Jenkins build failures in this PR.
Edit(3): This PR now updates all Espressif examples in preparation for Espressif ESP32-C3 ESP32-C6 ESP32-S2 Hardware Acceleration #6990
Fixes zd# n/a
See #6234 for a roadmap of Espressif updates.
Testing
How did you test?
Manually testing in VisualGDB and using ESP-IDF from command prompt.
Checklist