#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>
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) {
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()