From 068c55e7bb2ceb1eeffa06cc58fc51fe8139422e Mon Sep 17 00:00:00 2001 From: Gunnar Skjold Date: Sun, 26 Mar 2023 10:49:00 +0200 Subject: [PATCH] Fixed disabling encryption --- lib/SvelteUi/src/AmsWebServer.cpp | 27 ++++++++++++++++++--------- 1 file changed, 18 insertions(+), 9 deletions(-) diff --git a/lib/SvelteUi/src/AmsWebServer.cpp b/lib/SvelteUi/src/AmsWebServer.cpp index 7317afaf..8d607198 100644 --- a/lib/SvelteUi/src/AmsWebServer.cpp +++ b/lib/SvelteUi/src/AmsWebServer.cpp @@ -1165,16 +1165,25 @@ void AmsWebServer::handleSave() { meterConfig->productionCapacity = server.arg(F("mr")).toInt(); maxPwr = 0; - String encryptionKeyHex = server.arg(F("mek")); - if(!encryptionKeyHex.isEmpty()) { - encryptionKeyHex.replace(F("0x"), F("")); - fromHex(meterConfig->encryptionKey, encryptionKeyHex, 16); - } + if(server.hasArg(F("me")) && server.arg(F("me")) == F("true")) { + String encryptionKeyHex = server.arg(F("mek")); + if(!encryptionKeyHex.isEmpty()) { + encryptionKeyHex.replace(F("0x"), F("")); + fromHex(meterConfig->encryptionKey, encryptionKeyHex, 16); + } else { + memset(meterConfig->encryptionKey, 0, 16); + } - String authenticationKeyHex = server.arg(F("mea")); - if(!authenticationKeyHex.isEmpty()) { - authenticationKeyHex.replace(F("0x"), F("")); - fromHex(meterConfig->authenticationKey, authenticationKeyHex, 16); + String authenticationKeyHex = server.arg(F("mea")); + if(!authenticationKeyHex.isEmpty()) { + authenticationKeyHex.replace(F("0x"), F("")); + fromHex(meterConfig->authenticationKey, authenticationKeyHex, 16); + } else { + memset(meterConfig->authenticationKey, 0, 16); + } + } else { + memset(meterConfig->encryptionKey, 0, 16); + memset(meterConfig->authenticationKey, 0, 16); } meterConfig->wattageMultiplier = server.arg(F("mmw")).toDouble() * 1000;