From 5c6e92a089d8925731812639efe3b09a534b38d3 Mon Sep 17 00:00:00 2001 From: Mike Black W9MDB Date: Fri, 15 Apr 2022 22:44:53 -0500 Subject: [PATCH] Change make_md5 to rig_make_md5 and export for the DLL build https://github.com/Hamlib/Hamlib/issues/813 --- security/md5.c | 2 +- {src => security}/md5.h | 3 ++- security/password.c | 5 ++--- tests/Makefile.am | 6 +++--- tests/rigctl_parse.c | 2 +- tests/rigctld.c | 5 ++--- 6 files changed, 11 insertions(+), 12 deletions(-) rename {src => security}/md5.h (95%) diff --git a/security/md5.c b/security/md5.c index 9bdba5835..521821b91 100644 --- a/security/md5.c +++ b/security/md5.c @@ -291,7 +291,7 @@ unsigned char *make_hash(char *arg) return digest; } -char *make_md5(char *pass) +char *rig_make_md5(char *pass) { unsigned char *hash = make_hash("password"); char *md5str = make_digest(hash, 16); diff --git a/src/md5.h b/security/md5.h similarity index 95% rename from src/md5.h rename to security/md5.h index d89e3fd87..e05422e65 100644 --- a/src/md5.h +++ b/security/md5.h @@ -27,8 +27,9 @@ #include #include +#include "hamlib/rig.h" -char *make_md5(char *pass); +extern HAMLIB_EXPORT(char*) rig_make_md5(char *pass); typedef unsigned long MD5_u32plus; diff --git a/security/password.c b/security/password.c index a4befcc8a..e36dcedf4 100644 --- a/security/password.c +++ b/security/password.c @@ -26,11 +26,10 @@ #include #include "hamlib/rig.h" #include "password.h" +#include "md5.h" #define HAMLIB_SECRET_LENGTH 32 -extern char *make_md5(char *password); - // makes a 32-byte secret key from password using MD5 // yes -- this is security-by-obscurity // but password hacking software doesn't use this type of logic @@ -52,7 +51,7 @@ HAMLIB_EXPORT(void) rig_password_generate_secret(char *pass, snprintf(newpass, sizeof(newpass) - 1, "%s\t%lu\n", pass, (long)rand()); printf("debug=%s\n", newpass); - char *md5str = make_md5(newpass); + char *md5str = rig_make_md5(newpass); strncpy(result, md5str, HAMLIB_SECRET_LENGTH); diff --git a/tests/Makefile.am b/tests/Makefile.am index fb7cf799d..69cd60be3 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -38,18 +38,18 @@ if HAVE_LIBUSB endif # include generated include files ahead of any in sources -rigctl_CPPFLAGS = -I$(top_builddir)/tests -I$(top_builddir)/src -I$(srcdir) -I$(srcdir)/security $(AM_CPPFLAGS) +rigctl_CPPFLAGS = -I$(top_builddir)/tests -I$(top_builddir)/src -I$(srcdir) -I$(top_builddir)/security $(AM_CPPFLAGS) # all the programs need this LDADD = $(top_builddir)/src/libhamlib.la $(top_builddir)/lib/libmisc.la $(DL_LIBS) rigmem_CFLAGS = $(AM_CFLAGS) $(LIBXML2_CFLAGS) -I$(top_builddir)/src -rigctld_CFLAGS = $(AM_CFLAGS) $(PTHREAD_CFLAGS) -I$(top_builddir)/src -I$(srcdir)/security +rigctld_CFLAGS = $(AM_CFLAGS) $(PTHREAD_CFLAGS) -I$(top_builddir)/src -I$(top_builddir)/security rotctl_CFLAGS = $(AM_CFLAGS) $(PTHREAD_CFLAGS) -I$(top_builddir)/src rotctld_CFLAGS = $(AM_CFLAGS) $(PTHREAD_CFLAGS) -I$(top_builddir)/src ampctl_CFLAGS = $(AM_CFLAGS) $(PTHREAD_CFLAGS) -I$(top_builddir)/src ampctld_CFLAGS = $(AM_CFLAGS) $(PTHREAD_CFLAGS) -I$(top_builddir)/src -rigctlcom_CFLAGS = $(AM_CFLAGS) $(PTHREAD_CFLAGS) +rigctlcom_CFLAGS = $(AM_CFLAGS) $(PTHREAD_CFLAGS) -I$(top_builddir)/security if HAVE_LIBUSB rigtestlibusb_CFLAGS = $(AM_CFLAGS) $(PTHREAD_CFLAGS) $(LIBUSB_CFLAGS) endif diff --git a/tests/rigctl_parse.c b/tests/rigctl_parse.c index 70d22c51e..fe5ef0d83 100644 --- a/tests/rigctl_parse.c +++ b/tests/rigctl_parse.c @@ -4946,7 +4946,7 @@ int rigctld_password_check(RIG *rig, const char *md5) rig_debug(RIG_DEBUG_TRACE, "%s: %s == %s\n", __func__, md5, rigctld_password); is_passwordOK = 0; - char *mymd5 = make_md5(rigctld_password); + char *mymd5 = rig_make_md5(rigctld_password); if (strcmp(md5, mymd5) == 0) { diff --git a/tests/rigctld.c b/tests/rigctld.c index 67ae728fa..345907c1c 100644 --- a/tests/rigctld.c +++ b/tests/rigctld.c @@ -75,6 +75,7 @@ #include "serial.h" #include "sprintflst.h" #include "network.h" +#include "md5.h" #include "rigctl_parse.h" @@ -238,8 +239,6 @@ static void handle_error(enum rig_debug_level_e lvl, const char *msg) } -extern char *make_md5(char *password); - int main(int argc, char *argv[]) { rig_model_t my_model = RIG_MODEL_DUMMY; @@ -308,7 +307,7 @@ int main(int argc, char *argv[]) case 'A': strncpy(rigctld_password, optarg, sizeof(rigctld_password) - 1); - char *md5 = make_md5(rigctld_password); + char *md5 = rig_make_md5(rigctld_password); printf("Secret key: %s\n", md5); break;