Update openssl (1.1 -> 3.0) 97/295997/3
authorInkyun Kil <inkyun.kil@samsung.com>
Tue, 18 Jul 2023 05:47:02 +0000 (14:47 +0900)
committerInkyun Kil <inkyun.kil@samsung.com>
Tue, 8 Aug 2023 03:49:01 +0000 (12:49 +0900)
- openssl MD5_Init, MD5_Update, MD5_Final are deprecated

Change-Id: I6331f4ac29d4f13e58a3cae080d79efe16e3669e
Signed-off-by: Inkyun Kil <inkyun.kil@samsung.com>
CMakeLists.txt
packaging/message-port.spec
src/message_port_common.c

index f0fe7b52cf60a3c7b4b3034608aaa0e7a94a685f..54ec963dd67916e0fb8b7815507175b3096f55a1 100644 (file)
@@ -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)
index c860bd1e5d1fbdd89f6cda7156fe26bcbaf8eb4d..8c370ad1f2e98efe308ab7cb151c0521058edde0 100644 (file)
@@ -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}
index 80ea560d7a2a1bd09dc230e359f1eb9e2b7b08b4..5c9642889dc395c877ffe73d73a5c73449d664bc 100644 (file)
@@ -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()