From b03a651499f2f8f98860d0fedfbe93e2cceb190b Mon Sep 17 00:00:00 2001 From: "J. Nick Koston" Date: Sun, 14 Sep 2025 10:48:26 -0500 Subject: [PATCH] [md5] Optimize MD5::get_hex() to eliminate sprintf dependency --- esphome/components/md5/md5.cpp | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/esphome/components/md5/md5.cpp b/esphome/components/md5/md5.cpp index 980cb98699..fb0d9f401f 100644 --- a/esphome/components/md5/md5.cpp +++ b/esphome/components/md5/md5.cpp @@ -1,4 +1,3 @@ -#include #include #include "md5.h" #ifdef USE_MD5 @@ -44,7 +43,11 @@ void MD5Digest::get_bytes(uint8_t *output) { memcpy(output, this->digest_, 16); void MD5Digest::get_hex(char *output) { for (size_t i = 0; i < 16; i++) { - sprintf(output + i * 2, "%02x", this->digest_[i]); + uint8_t byte = this->digest_[i]; + uint8_t high = byte >> 4; + uint8_t low = byte & 0x0F; + output[i * 2] = high < 10 ? '0' + high : 'a' + (high - 10); + output[i * 2 + 1] = low < 10 ? '0' + low : 'a' + (low - 10); } }