From 7bc56ec5076e1e847b8cba681108ea168db3a0b4 Mon Sep 17 00:00:00 2001
From: Sebastião Guerra <sebastiao.luiz.guerra@gmail.com>
Date: Wed, 23 Sep 2026 09:17:53 -0300
Subject: Handle Net-SNMP builds without MD5 support
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Signed-off-by: Sebastião Guerra <sebastiao.luiz.guerra@gmail.com>
---
 ksim/monitors/snmp/session.cpp |  2 ++
 ksim/monitors/snmp/snmp.cpp    | 15 +++++++++++++--
 2 files changed, 15 insertions(+), 2 deletions(-)

diff --git a/ksim/monitors/snmp/session.cpp b/ksim/monitors/snmp/session.cpp
index b52fe5c5..0a4babe8 100644
--- a/ksim/monitors/snmp/session.cpp
+++ b/ksim/monitors/snmp/session.cpp
@@ -158,11 +158,13 @@ bool Session::initialize( ErrorInfo *error )
 
     // ### clean me up
     switch ( source.authentication.protocol ) {
+#ifndef NETSNMP_DISABLE_MD5
         case MD5Auth: {
                           d->defaultSession.securityAuthProto = usmHMACMD5AuthProtocol;
                           d->defaultSession.securityAuthProtoLen = USM_AUTH_PROTO_MD5_LEN;
                           break;
                       }
+#endif
         case SHA1Auth: {
                            d->defaultSession.securityAuthProto = usmHMACSHA1AuthProtocol;
                            d->defaultSession.securityAuthProtoLen = USM_AUTH_PROTO_SHA_LEN;
diff --git a/ksim/monitors/snmp/snmp.cpp b/ksim/monitors/snmp/snmp.cpp
index 12562281..2189b0ce 100644
--- a/ksim/monitors/snmp/snmp.cpp
+++ b/ksim/monitors/snmp/snmp.cpp
@@ -44,11 +44,22 @@ static const struct EnumStringMapInfo
     { AuthNoPriv, "AuthNoPriv", SNMP_SEC_LEVEL_AUTHNOPRIV },
     { AuthPriv, "AuthPriv", SNMP_SEC_LEVEL_AUTHPRIV },
     { 0, 0, 0 }
-}, authenticationProtocolStrings[ 3 ] = {
+};
+
+#ifdef NETSNMP_DISABLE_MD5
+static const struct EnumStringMapInfo authenticationProtocolStrings[ 2 ] = {
+    { SHA1Auth, "SHA1", 0 },
+    { 0, 0, 0 }
+};
+#else
+static const struct EnumStringMapInfo authenticationProtocolStrings[ 3 ] = {
     { MD5Auth, "MD5", 0 },
     { SHA1Auth, "SHA1", 0 },
     { 0, 0, 0 }
-}, privacyProtocolStrings[ 3 ] = {
+};
+#endif
+
+static const struct EnumStringMapInfo privacyProtocolStrings[ 3 ] = {
     { AESPrivacy, "AES", 0 },
     { DESPrivacy, "DES", 0 },
     { 0, 0, 0 }
-- 
cgit v1.2.3

