ElementsProject / libwally-core

Useful primitives for wallets
Other
284 stars 136 forks source link

mbed_tls: don't byteswap if HW acceleration is already big endian #431

Closed greenaddress closed 1 year ago

greenaddress commented 1 year ago

Tested on:

esp32:

esp32s3:

should also work on esp32s2, esp32c3, esp32c6, esp32p4, etc

Please note:

There's 4 implementations: software, parallel engine, block engine, dma

SOC_SHA_SUPPORT_PARALLEL_ENG is only defined for esp32. esp32s3 uses DMA

SOC_SHA_ENDIANNESS_BE is not available in release branches, only in master and only for esp32 AFAIK

example of how idf checks for things https://github.com/espressif/esp-idf/blob/master/components/mbedtls/port/sha/esp_sha.c#L19

We depend on #include <soc/soc_caps.h> to get SOC_SHA_SUPPORT_PARALLEL_ENG (which wasn't available to wally before!!!) and we depend on `#include to get CONFIG_MBEDTLS_HARDWARE_SHA which is necessary to distinguish between mbedtls with or without hw acceleration.

instead of including sdkconfig.h (and or soc_caps.h) we could have other flags like HAVE_MBEDTLS_SHA256_H and HAVE_MBEDTLS_SHA512_H

jgriffiths commented 1 year ago

Merged with README tweaks, thanks!