From 089ac96f2ba6eb3ea6eecbe4eae8aee0a85f2cb5 Mon Sep 17 00:00:00 2001 From: Scott Powell Date: Wed, 19 Mar 2025 17:30:35 +1100 Subject: [PATCH] * verify() fix moved to Identity class --- src/Identity.cpp | 6 ++++++ src/Mesh.cpp | 4 +--- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/src/Identity.cpp b/src/Identity.cpp index e7c57d7e..138c66b7 100644 --- a/src/Identity.cpp +++ b/src/Identity.cpp @@ -2,6 +2,7 @@ #include #define ED25519_NO_SEED 1 #include +#include namespace mesh { @@ -14,7 +15,12 @@ Identity::Identity(const char* pub_hex) { } bool Identity::verify(const uint8_t* sig, const uint8_t* message, int msg_len) const { +#if 0 + // NOTE: memory corruption bug was found in this function!! return ed25519_verify(sig, message, msg_len, pub_key); +#else + return Ed25519::verify(sig, this->pub_key, message, msg_len); +#endif } bool Identity::readFrom(Stream& s) { diff --git a/src/Mesh.cpp b/src/Mesh.cpp index 705fdd3c..0a0fd769 100644 --- a/src/Mesh.cpp +++ b/src/Mesh.cpp @@ -1,6 +1,5 @@ #include "Mesh.h" //#include -#include namespace mesh { @@ -235,8 +234,7 @@ DispatcherAction Mesh::onRecvPacket(Packet* pkt) { memcpy(&message[msg_len], ×tamp, 4); msg_len += 4; memcpy(&message[msg_len], app_data, app_data_len); msg_len += app_data_len; - //is_ok = id.verify(signature, message, msg_len); - is_ok = Ed25519::verify(signature, id.pub_key, message, msg_len); + is_ok = id.verify(signature, message, msg_len); } if (is_ok) { MESH_DEBUG_PRINTLN("%s Mesh::onRecvPacket(): valid advertisement received!", getLogDateTime());