From 69f090ff384da4ceb897bce9de3d671fec33b907 Mon Sep 17 00:00:00 2001 From: Inkyun Kil Date: Tue, 18 Jul 2023 14:47:02 +0900 Subject: Update openssl (1.1 -> 3.0) - openssl MD5_Init, MD5_Update, MD5_Final are deprecated Change-Id: I6331f4ac29d4f13e58a3cae080d79efe16e3669e Signed-off-by: Inkyun Kil --- CMakeLists.txt | 2 +- packaging/message-port.spec | 2 +- src/message_port_common.c | 65 +++++++++++++++++++++++++++++++-------------- 3 files changed, 47 insertions(+), 22 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index f0fe7b5..54ec963 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -30,7 +30,7 @@ PKG_CHECK_MODULES(DLOG_DEPS REQUIRED dlog) PKG_CHECK_MODULES(GLIB_DEPS REQUIRED glib-2.0) PKG_CHECK_MODULES(GIO_DEPS REQUIRED gio-2.0) PKG_CHECK_MODULES(AUL_DEPS REQUIRED aul) -PKG_CHECK_MODULES(OPENSSL_DEPS REQUIRED openssl1.1) +PKG_CHECK_MODULES(OPENSSL_DEPS REQUIRED openssl3) PKG_CHECK_MODULES(BASE_COMMON_DEPS REQUIRED capi-base-common) PKG_CHECK_MODULES(PKGMGR_INFO_DEPS REQUIRED pkgmgr-info) PKG_CHECK_MODULES(GIO_UNIX_DEPS REQUIRED gio-unix-2.0) diff --git a/packaging/message-port.spec b/packaging/message-port.spec index c860bd1..8c370ad 100644 --- a/packaging/message-port.spec +++ b/packaging/message-port.spec @@ -13,7 +13,7 @@ BuildRequires: pkgconfig(glib-2.0) BuildRequires: pkgconfig(aul) BuildRequires: pkgconfig(pkgmgr) BuildRequires: pkgconfig(pkgmgr-info) -BuildRequires: pkgconfig(openssl1.1) +BuildRequires: pkgconfig(openssl3) BuildRequires: pkgconfig(gmock) %if 0%{?gcov:1} diff --git a/src/message_port_common.c b/src/message_port_common.c index 80ea560..5c96428 100644 --- a/src/message_port_common.c +++ b/src/message_port_common.c @@ -26,7 +26,7 @@ #include #include #include -#include +#include #include #include #include @@ -295,12 +295,12 @@ char *get_encoded_name(const char *remote_app_id, const char *port_name, bool is int postfix_len = 1; char *postfix = is_trusted ? "1" : "0"; - unsigned char c[MD5_DIGEST_LENGTH] = {0}; - char *md5_interface = NULL; char *temp; int index = 0; - MD5_CTX mdContext; - int encoded_bus_name_len = prefix_len + postfix_len + (MD5_DIGEST_LENGTH * 2) + 2; + EVP_MD_CTX *mdctx; + char *md5_digest = NULL; + unsigned int md5_digest_len = EVP_MD_size(EVP_md5()); + int encoded_bus_name_len = prefix_len + postfix_len + (md5_digest_len * 2) + 2; int bus_name_len = strlen(remote_app_id) + strlen(port_name) + 2; char *bus_name = (char *)calloc(bus_name_len, sizeof(char)); if (bus_name == NULL) { @@ -310,36 +310,61 @@ char *get_encoded_name(const char *remote_app_id, const char *port_name, bool is snprintf(bus_name, bus_name_len, "%s_%s", remote_app_id, port_name); - MD5_Init(&mdContext); - MD5_Update(&mdContext, bus_name, bus_name_len); - MD5_Final(c, &mdContext); - - md5_interface = (char *)calloc(encoded_bus_name_len , sizeof(char)); - if (md5_interface == NULL) { + // MD5_Init + mdctx = EVP_MD_CTX_new(); + if (mdctx == NULL) { if (bus_name) free(bus_name); - _LOGE("md5_interface calloc failed!!"); + _LOGE("EVP_MD_CTX_new failed!!"); + return 0; + } + EVP_DigestInit_ex(mdctx, EVP_md5(), NULL); + + // MD5_Update + EVP_DigestUpdate(mdctx, bus_name, bus_name_len); + + if (bus_name) + free(bus_name); + + // MD5_Final + unsigned char *c = + (unsigned char *)calloc(md5_digest_len, sizeof(unsigned char)); + if (c == NULL) { + _LOGE("calloc failed!!"); + EVP_MD_CTX_free(mdctx); return 0; } - snprintf(md5_interface, encoded_bus_name_len, "%s", MESSAGEPORT_BUS_NAME_PREFIX); - temp = md5_interface; + EVP_DigestFinal_ex(mdctx, c, &md5_digest_len); + EVP_MD_CTX_free(mdctx); + + md5_digest = (char *)calloc(encoded_bus_name_len, sizeof(char)); + if (md5_digest == NULL) { + if (c) + free(c); + + _LOGE("md5_digest calloc failed!!"); + return 0; + } + + snprintf(md5_digest, encoded_bus_name_len, "%s", MESSAGEPORT_BUS_NAME_PREFIX); + temp = md5_digest; temp += prefix_len; - for (index = 0; index < MD5_DIGEST_LENGTH; index++) { + for (index = 0; index < md5_digest_len; index++) { snprintf(temp, 3, "%02x", c[index]); temp += 2; } if (postfix && postfix_len > 0) - snprintf(temp, encoded_bus_name_len - (temp - md5_interface), "%s", postfix); - if (bus_name) - free(bus_name); + snprintf(temp, encoded_bus_name_len - (temp - md5_digest), "%s", postfix); + if (c) + free(c); - _LOGD("encoded_bus_name : %s ", md5_interface); + _LOGD("encoded_bus_name : %s ", md5_digest); - return md5_interface; + return md5_digest; } void message_port_lock_mutex() -- cgit v1.2.3