diff --git a/esphome/core/hash_base.h b/esphome/core/hash_base.h index e549c3a515..f48093b63e 100644 --- a/esphome/core/hash_base.h +++ b/esphome/core/hash_base.h @@ -44,9 +44,10 @@ class HashBase { virtual size_t get_size() const = 0; protected: -// ESP32-S2/S3 hardware SHA uses DMA that requires 32-byte aligned buffers. -// Other platforms either don't have hardware SHA or don't require alignment. -#if defined(USE_ESP32_VARIANT_ESP32S2) || defined(USE_ESP32_VARIANT_ESP32S3) +// ESP32 variants with DMA-based hardware SHA (all except original ESP32) require 32-byte aligned buffers. +// Original ESP32 uses a different hardware SHA implementation without DMA alignment requirements. +// Other platforms (ESP8266, RP2040, LibreTiny) use software SHA and don't need alignment. +#if defined(USE_ESP32) && !defined(USE_ESP32_VARIANT_ESP32) alignas(32) #endif uint8_t digest_[32]; // Storage sized for max(MD5=16, SHA256=32) bytes