-
Notifications
You must be signed in to change notification settings - Fork 918
Closed
Labels
Description
Contact Details
No response
Version
latest master
Description
Related to #7528 and #7533 the SHA256 test (only) fails on the ESP32 when #define SINGLE_THREADED is included in the user_settings.h.
Even though the ESP32 is already a multi-task FreeRTOS environment, forcing the SINGLE_THREADED mode should not cause a SHA256 failure.
Additionally, I discovered there's a macro logic problem when surgically disabling only SHA256 and/or SHA224:
#define NO_WOLFSSL_ESP32_CRYPT_HASH_SHA256
#define NO_WOLFSSL_ESP32_CRYPT_HASH_SHA224
Reproduction steps
Add above noted settings to respective user_settings.h for the wolfssl_test example.
Relevant log output
The SHA256 failuee looks like this:
I (642) esp32_util: LIBWOLFSSL_VERSION_STRING = 5.7.0
I (648) esp32_util: LIBWOLFSSL_VERSION_HEX = 5007000
I (653) esp32_util: Stack HWM: 9212
I (657) esp32_util:
I (660) esp32_util: Macro Name Defined Not Defined
I (667) esp32_util: ------------------------- --------- -------------
I (674) esp32_util: NO_ESPIDF_DEFAULT........ X
I (681) esp32_util: HW_MATH_ENABLED.......... X
I (687) esp32_util: WOLFSSL_SHA224........... X
I (692) esp32_util: WOLFSSL_SHA384........... X
I (698) esp32_util: WOLFSSL_SHA512........... X
I (703) esp32_util: WOLFSSL_SHA3............. X
I (709) esp32_util: HAVE_ED25519............. X
I (714) esp32_util: HAVE_AES_ECB............. X
I (721) esp32_util: HAVE_AES_DIRECT.......... X
I (728) esp32_util: USE_FAST_MATH............ X
I (733) esp32_util: WOLFSSL_SP_MATH_ALL...... X
I (740) esp32_util: SP_MATH.................. X
I (746) esp32_util: WOLFSSL_HW_METRICS....... X
I (752) esp32_util: RSA_LOW_MEM.............. X
I (757) esp32_util: SMALL_SESSION_CACHE...... X
I (764) esp32_util: WC_NO_HARDEN............. X
I (771) esp32_util: TFM_TIMING_RESISTANT..... X
I (776) esp32_util: ECC_TIMING_RESISTANT..... X
I (782) esp32_util: WC_NO_CACHE_RESISTANT.... X
I (787) esp32_util: WC_AES_BITSLICED......... X
I (794) esp32_util: WOLFSSL_AES_NO_UNROLL.... X
I (800) esp32_util: TFM_TIMING_RESISTANT..... X
I (806) esp32_util: ECC_TIMING_RESISTANT..... X
I (812) esp32_util: WC_RSA_BLINDING.......... X
I (817) esp32_util: NO_WRITEV................ X
I (823) esp32_util: FREERTOS................. X
I (828) esp32_util: NO_WOLFSSL_DIR........... X
I (834) esp32_util: WOLFSSL_NO_CURRDIR....... X
I (839) esp32_util: WOLFSSL_LWIP............. X
I (845) esp32_util:
I (848) esp32_util: Compiler Optimization: Default
I (853) esp32_util:
I (856) esp32_util: CONFIG_IDF_TARGET = esp32
W (861) esp32_util: Watchdog active; missing WOLFSSL_ESP_NO_WATCHDOG definition.
I (869) esp32_util: CONFIG_ESP32_DEFAULT_CPU_FREQ_MHZ: 240 MHz
I (876) esp32_util: Xthal_have_ccount: 1
I (880) esp32_util: CONFIG_MAIN_TASK_STACK_SIZE: 10500
I (886) esp32_util: CONFIG_ESP_MAIN_TASK_STACK_SIZE: 10500
I (892) esp32_util: CONFIG_TIMER_TASK_STACK_SIZE: 3584
I (898) esp32_util: CONFIG_TIMER_TASK_STACK_DEPTH: 2048
I (904) esp32_util: Stack HWM: 3ffb65af
I (908) esp32_util: ESP32_CRYPT is enabled for ESP32.
I (914) esp32_util: SINGLE_THREADED
I (918) esp32_util: Boot count: 1
------------------------------------------------------------------------------
wolfSSL version 5.7.0
------------------------------------------------------------------------------
error test passed!
MEMORY test passed!
base64 test passed!
base16 test passed!
asn test passed!
RANDOM test passed!
MD5 test passed!
MD2 test passed!
MD4 test passed!
SHA test passed!
SHA-224 test passed!
E (969) wc_test: Failed: Error = -1610916146 during sha256_test, line 3410Attempting to disable HW SHA256 (only) and forcing SINGLE_THREADED causes this compile-time error:
-- wolfSSL @ 5.7.0-test.rev02
Building in release mode
Compiling .pio\build\esp32dev\libb61\wolfSSL\wolfcrypt\src\sha256.o
.pio/libdeps/esp32dev/wolfSSL/src/wolfcrypt/src/sha256.c: In function 'wc_Sha224Update':
.pio/libdeps/esp32dev/wolfSSL/src/wolfcrypt/src/sha256.c:2090:15: error: 'wc_Sha224' {aka 'struct wc_Sha256'} has no member named 'ctx'
2090 | sha224->ctx.mode = ESP32_SHA_SW; /* no SHA224 HW, so always SW */
| ^~
*** [.pio\build\esp32dev\libb61\wolfSSL\wolfcrypt\src\sha256.o] Error 1
=================================================================== [FAILED] Took 20.16 seconds ===================================================================
* The terminal process "C:\Users\gojimmypi\.platformio\penv\Scripts\platformio.exe 'run'" terminated with exit code: 1.