ESPHome 2025.10.0-dev
Loading...
Searching...
No Matches
md5.cpp
Go to the documentation of this file.
1#include <cstring>
2#include "md5.h"
3#ifdef USE_MD5
5
6namespace esphome {
7namespace md5 {
8
9#if defined(USE_ARDUINO) && !defined(USE_RP2040) && !defined(USE_ESP32)
11 memset(this->digest_, 0, 16);
12 MD5Init(&this->ctx_);
13}
14
15void MD5Digest::add(const uint8_t *data, size_t len) { MD5Update(&this->ctx_, data, len); }
16
17void MD5Digest::calculate() { MD5Final(this->digest_, &this->ctx_); }
18#endif // USE_ARDUINO && !USE_RP2040
19
20#ifdef USE_ESP32
21void MD5Digest::init() {
22 memset(this->digest_, 0, 16);
23 esp_rom_md5_init(&this->ctx_);
24}
25
26void MD5Digest::add(const uint8_t *data, size_t len) { esp_rom_md5_update(&this->ctx_, data, len); }
27
28void MD5Digest::calculate() { esp_rom_md5_final(this->digest_, &this->ctx_); }
29#endif // USE_ESP32
30
31#ifdef USE_RP2040
32void MD5Digest::init() {
33 memset(this->digest_, 0, 16);
34 br_md5_init(&this->ctx_);
35}
36
37void MD5Digest::add(const uint8_t *data, size_t len) { br_md5_update(&this->ctx_, data, len); }
38
39void MD5Digest::calculate() { br_md5_out(&this->ctx_, this->digest_); }
40#endif // USE_RP2040
41
42} // namespace md5
43} // namespace esphome
44#endif
uint8_t digest_[32]
Definition hash_base.h:53
void calculate() override
Compute the digest, based on the provided data.
Definition md5.cpp:17
void add(const uint8_t *data, size_t len) override
Add bytes of data for the digest.
Definition md5.cpp:15
void init() override
Initialize a new MD5 digest computation.
Definition md5.cpp:10
MD5_CTX_TYPE ctx_
Definition md5.h:50
Providing packet encoding functions for exchanging data with a remote host.
Definition a01nyub.cpp:7
std::string size_t len
Definition helpers.h:291