summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorInkyun Kil <inkyun.kil@samsung.com>2023-07-18 14:47:02 +0900
committerInkyun Kil <inkyun.kil@samsung.com>2023-08-08 12:49:01 +0900
commit69f090ff384da4ceb897bce9de3d671fec33b907 (patch)
treeb59c0f8dcd32e7612f5f52982e92669ef379450d
parenta53c130f1376fdd0d1079d555bf05b0c7df424e5 (diff)
downloadmessage-port-69f090ff384da4ceb897bce9de3d671fec33b907.tar.gz
message-port-69f090ff384da4ceb897bce9de3d671fec33b907.tar.bz2
message-port-69f090ff384da4ceb897bce9de3d671fec33b907.zip
Update openssl (1.1 -> 3.0)
- openssl MD5_Init, MD5_Update, MD5_Final are deprecated Change-Id: I6331f4ac29d4f13e58a3cae080d79efe16e3669e Signed-off-by: Inkyun Kil <inkyun.kil@samsung.com>
-rw-r--r--CMakeLists.txt2
-rw-r--r--packaging/message-port.spec2
-rw-r--r--src/message_port_common.c65
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 <stdio.h>
#include <glib.h>
#include <gio/gio.h>
-#include <openssl/md5.h>
+#include <openssl/evp.h>
#include <gio/gio.h>
#include <pthread.h>
#include <glib-unix.h>
@@ -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()