ADD_DEFINITIONS("-DTEL_STDOUT")
ENDIF(STDOUT_LOG)
-PKG_CHECK_MODULES(pkgs REQUIRED dlog tapi glib-2.0 capi-base-common openssl1.1
+PKG_CHECK_MODULES(pkgs REQUIRED dlog tapi glib-2.0 capi-base-common openssl3
capi-system-info cynara-client cynara-session cynara-creds-self gio-2.0)
INCLUDE_DIRECTORIES(${pkgs_INCLUDE_DIRS})
LINK_DIRECTORIES(${pkgs_LIBRARY_DIRS})
BuildRequires: pkgconfig(tapi)
BuildRequires: pkgconfig(glib-2.0)
BuildRequires: pkgconfig(capi-base-common)
-BuildRequires: pkgconfig(openssl1.1)
+BuildRequires: pkgconfig(openssl3)
BuildRequires: pkgconfig(capi-system-info)
BuildRequires: pkgconfig(cynara-client)
BuildRequires: pkgconfig(cynara-session)
#include <stdio.h>
#include <glib.h>
#include <gio/gio.h>
-#include <openssl/sha.h>
+#include <openssl/evp.h>
#include <tapi_common.h>
#include <TapiUtility.h>
#include <ITapiSim.h>
TelSimImsiInfo_t imsi_info;
error_code = tel_get_sim_imsi(tapi_h, &imsi_info);
if (error_code == TAPI_API_SUCCESS) {
- SHA256_CTX ctx;
+ EVP_MD_CTX *md_ctx;
+ const EVP_MD *sha256;
+ unsigned char md[EVP_MAX_MD_SIZE];
+ unsigned int md_len;
char *imsi;
- unsigned char md[SHA256_DIGEST_LENGTH];
int i;
imsi = g_strdup_printf("%s%s%s",
imsi_info.szMcc, imsi_info.szMnc, imsi_info.szMsin);
- SHA256_Init(&ctx);
- SHA256_Update(&ctx, imsi, strlen(imsi));
- SHA256_Final(md, &ctx);
+ md_ctx = EVP_MD_CTX_new();
+ sha256 = EVP_sha256();
- *subscriber_id = malloc(SHA256_DIGEST_LENGTH * 2 + 1);
- for (i = 0; i < SHA256_DIGEST_LENGTH; i++)
+ EVP_DigestInit_ex(md_ctx, sha256, NULL);
+ EVP_DigestUpdate(md_ctx, imsi, strlen(imsi));
+ EVP_DigestFinal_ex(md_ctx, md, &md_len);
+
+ subscriber_id = g_malloc0(md_len * 2 + 1);
+ for (i = 0; i < md_len; i++)
snprintf(*subscriber_id + (i * 2), 3, "%02x", md[i]);
INFO("Subscriber ID: [%s]", *subscriber_id);
g_free(imsi);
+ EVP_MD_CTX_free(md_ctx);
/* LCOV_EXCL_START */
} else if (error_code == TAPI_API_ACCESS_DENIED) {
ERR("get_subscriber_id: PERMISSION_DENIED");