@@ -990,15 +990,17 @@ static WC_INLINE int Sha512Update(wc_Sha512* sha512, const byte* data, word32 le
990990 defined(NO_WOLFSSL_ESP32_CRYPT_HASH_SHA512 )
991991 ret = Transform_Sha512 (sha512 );
992992 #else
993- if (sha512 -> ctx .mode == ESP32_SHA_INIT ) {
993+ if (sha512 -> ctx .mode == ESP32_SHA_INIT ) {
994994 esp_sha_try_hw_lock (& sha512 -> ctx );
995995 }
996- ret = esp_sha512_process (sha512 );
997- if (ret == 0 && sha512 -> ctx .mode == ESP32_SHA_SW ){
996+ if (sha512 -> ctx .mode == ESP32_SHA_SW ) {
998997 ByteReverseWords64 (sha512 -> buffer , sha512 -> buffer ,
999998 WC_SHA512_BLOCK_SIZE );
1000999 ret = Transform_Sha512 (sha512 );
10011000 }
1001+ else {
1002+ ret = esp_sha512_process (sha512 );
1003+ }
10021004 #endif
10031005 if (ret == 0 )
10041006 sha512 -> buffLen = 0 ;
@@ -1884,7 +1886,8 @@ int wc_Sha512Copy(wc_Sha512* src, wc_Sha512* dst)
18841886 ret = wolfAsync_DevCopy (& src -> asyncDev , & dst -> asyncDev );
18851887#endif
18861888
1887- #if defined(WOLFSSL_USE_ESP32_CRYPT_HASH_HW )
1889+ #if defined(WOLFSSL_USE_ESP32_CRYPT_HASH_HW ) && \
1890+ !defined(NO_WOLFSSL_ESP32_CRYPT_HASH_SHA512 )
18881891 #if defined(CONFIG_IDF_TARGET_ESP32 )
18891892 if (ret == 0 ) {
18901893 ret = esp_sha512_ctx_copy (src , dst );
@@ -2169,7 +2172,8 @@ int wc_Sha384Copy(wc_Sha384* src, wc_Sha384* dst)
21692172 ret = wolfAsync_DevCopy (& src -> asyncDev , & dst -> asyncDev );
21702173#endif
21712174
2172- #if defined(WOLFSSL_USE_ESP32_CRYPT_HASH_HW )
2175+ #if defined(WOLFSSL_USE_ESP32_CRYPT_HASH_HW ) && \
2176+ !defined(NO_WOLFSSL_ESP32_CRYPT_HASH_SHA384 )
21732177 #if defined(CONFIG_IDF_TARGET_ESP32 )
21742178 esp_sha384_ctx_copy (src , dst );
21752179 #elif defined(CONFIG_IDF_TARGET_ESP32C2 ) || \
0 commit comments