diff --git a/frameworks/huks_standard/main/os_dependency/sysinfo/src/hks_get_udid.c b/frameworks/huks_standard/main/os_dependency/sysinfo/src/hks_get_udid.c index 61b2e16630e3d97c7d0ff11332a00303636c5cf4..a38bd38fa36872a1d050974520723eece9c0f609 100644 --- a/frameworks/huks_standard/main/os_dependency/sysinfo/src/hks_get_udid.c +++ b/frameworks/huks_standard/main/os_dependency/sysinfo/src/hks_get_udid.c @@ -25,24 +25,15 @@ #ifndef _CUT_AUTHENTICATE_ #ifdef GET_DEV_UDID_ENABLE -#include "pms_interface_inner.h" +#include "hks_crypto_hal.h" +#include "parameter.h" #define HKS_HARDWARE_UDID_STRING_LEN (HKS_HARDWARE_UDID_LEN * 2 + 1) -static uint8_t CharToHex(char data) +static int32_t ComputeHash(const char *data, uint32_t len, struct HksBlob *hash) { - if (data >= 'a' && data <= 'f') { - return ((uint8_t)(data - 'a') + 10); // ASCII hex(16) to decimal(10) - } else if (data >= 'A' && data <= 'F') { - return ((uint8_t)(data - 'A') + 10); // ASCII hex(16) to decimal(10) - } else { - return (uint8_t)(data - '0'); - } -} - -static uint8_t StringToHex(char high, char low) -{ - return (CharToHex(high) << 0x4) | CharToHex(low); // ASCII hex to hex + struct HksBlob srcData = { len, (uint8_t *)data }; + return HksCryptoHalHash(HKS_DIGEST_SHA256, &srcData, hash); } #endif @@ -50,18 +41,19 @@ static uint8_t StringToHex(char high, char low) int32_t HksGetHardwareUdid(uint8_t *udid, uint32_t udidLen) { #ifdef GET_DEV_UDID_ENABLE - int ret; char devUdidString[HKS_HARDWARE_UDID_STRING_LEN] = { 0 }; - uint8_t devUdid[HKS_HARDWARE_UDID_LEN] = { 0 }; - - ret = RequestDevUdid((unsigned char*)devUdidString, sizeof(devUdidString)); - if (ret != EOK) { - HKS_LOG_E("Get dev udid error!"); + int32_t ret = GetDevUdid(devUdidString, sizeof(devUdidString)); + if (ret != 0) { + HKS_LOG_E("Get dev udid error, ret = 0x%x", ret); return HKS_ERROR_NO_PERMISSION; } - for (uint32_t i = 0; i < HKS_HARDWARE_UDID_LEN; i++) { - devUdid[i] = StringToHex(devUdidString[i * 2], devUdidString[i * 2 + 1]); // 2 : two characters + uint8_t devUdid[HKS_HARDWARE_UDID_LEN] = { 0 }; + struct HksBlob hashData = { HKS_HARDWARE_UDID_LEN, devUdid }; + ret = ComputeHash(devUdidString, sizeof(devUdidString), &hashData); + if (ret != HKS_SUCCESS) { + HKS_LOG_E("compute udid hash failed"); + return ret; } #else /* simulation implementation */ diff --git a/interfaces/innerkits/huks_lite/BUILD.gn b/interfaces/innerkits/huks_lite/BUILD.gn index 922d6cb52b06462b2dddc816aa174fe2a923c035..2298336094bc77dd94d6f1a5bffe97b2cde0470c 100755 --- a/interfaces/innerkits/huks_lite/BUILD.gn +++ b/interfaces/innerkits/huks_lite/BUILD.gn @@ -148,7 +148,7 @@ config("public_huks_config") { config("get_dev_udid_config") { cflags = [ "-DGET_DEV_UDID_ENABLE" ] include_dirs = [ - "//base/security/permission/interfaces/innerkits/permission_lite/", + "//base/startup/syspara_lite/interfaces/kits", ] } @@ -194,20 +194,22 @@ if (ohos_kernel_type == "liteos_m") { sources += huks_access_sources sources += [ "../../../frameworks/huks_standard/main/os_dependency/log/hks_log_lite.c" ] - deps = [ "//base/security/permission/services/permission_lite/pms_client:pms_client" ] + deps = [ "//base/startup/syspara_lite/frameworks/parameter/src:sysparam" ] if (huks_use_mbedtls == true) { sources += huks_mbedtls_engine_sources deps += [ "//build/lite/config/component/openssl:openssl_shared", - "//third_party/bounds_checking_function:libsec_shared", "//third_party/mbedtls:mbedtls_shared", ] configs += [ ":mbedtls_engine" ] } configs += [ ":hilog_dir" ] - deps += [ "//base/hiviewdfx/hilog_lite/frameworks/featured:hilog_shared" ] + deps += [ + "//base/hiviewdfx/hilog_lite/frameworks/featured:hilog_shared", + "//third_party/bounds_checking_function:libsec_shared", + ] } #if (ohos_build_type == "debug") { # group("huks_new_test") {