237 lines
10 KiB
Diff
237 lines
10 KiB
Diff
From c7fe7e1422af2a0b4fdbd7e514f8b8c6054170e8 Mon Sep 17 00:00:00 2001
|
|
From: "beiling.xie" <xiekunxunn@huawei.com>
|
|
Date: Tue, 19 Jul 2022 21:01:41 +0800
|
|
Subject: [PATCH] support huks for openeuler
|
|
|
|
Signed-off-by: beiling.xie <xiekunxun@huawei.com>
|
|
---
|
|
frameworks/huks_standard/main/BUILD.gn | 1 +
|
|
.../huks_standard/main/core/src/hks_verifier.c | 10 ++++++----
|
|
.../crypto_engine/openssl/src/hks_openssl_kdf.c | 4 +++-
|
|
.../huks_standard/main/os_dependency/BUILD.gn | 15 ++++++++++-----
|
|
.../main/os_dependency/log/hks_log.c | 14 +++++++-------
|
|
interfaces/innerkits/huks_standard/main/BUILD.gn | 1 +
|
|
.../huks_service/main/os_dependency/BUILD.gn | 2 +-
|
|
.../huks_service/main/os_dependency/idl/BUILD.gn | 6 +++---
|
|
utils/file_operator/hks_file_operator.c | 6 +++---
|
|
9 files changed, 35 insertions(+), 24 deletions(-)
|
|
|
|
diff --git a/frameworks/huks_standard/main/BUILD.gn b/frameworks/huks_standard/main/BUILD.gn
|
|
index 83d7750..cd899cd 100755
|
|
--- a/frameworks/huks_standard/main/BUILD.gn
|
|
+++ b/frameworks/huks_standard/main/BUILD.gn
|
|
@@ -20,6 +20,7 @@ group("huks_standard_frameworks") {
|
|
"//base/security/huks/frameworks/huks_standard/main/core:libhuks_core_standard_static",
|
|
"//base/security/huks/frameworks/huks_standard/main/crypto_engine:libhuks_crypto_engine_standard_static",
|
|
"//base/security/huks/frameworks/huks_standard/main/os_dependency:libhuks_os_dependency_standard_static",
|
|
+ "//base/security/huks/services/huks_standard/huks_service/main/os_dependency:libhuks_service_os_dependency_standard_static",
|
|
]
|
|
}
|
|
}
|
|
diff --git a/frameworks/huks_standard/main/core/src/hks_verifier.c b/frameworks/huks_standard/main/core/src/hks_verifier.c
|
|
index 149137d..a65f27e 100755
|
|
--- a/frameworks/huks_standard/main/core/src/hks_verifier.c
|
|
+++ b/frameworks/huks_standard/main/core/src/hks_verifier.c
|
|
@@ -250,8 +250,9 @@ static int32_t ExtractTlvLength(const uint8_t *in, uint32_t inLen, uint32_t *hea
|
|
uint8_t *buf = (uint8_t *)in;
|
|
uint32_t length = 0; /* length of the payload */
|
|
|
|
- uint32_t tmp;
|
|
- HKS_ASN1_DECODE_BYTE(buf, tmp); /* get type */
|
|
+// uint32_t tmp;
|
|
+// HKS_ASN1_DECODE_BYTE(buf, tmp); /* get type */
|
|
+ buf++;
|
|
if (buf[0] < ASN_1_MIN_VAL_1_EXTRA_LEN_BYTE) {
|
|
/* Current byte tells the length */
|
|
HKS_ASN1_DECODE_BYTE(buf, length);
|
|
@@ -301,8 +302,9 @@ static int32_t ExtractTlvData(const uint8_t *in, uint32_t inLen, uint8_t *out, u
|
|
uint8_t *buf = (uint8_t *)in;
|
|
uint32_t length = 0; /* length of the payload */
|
|
|
|
- uint32_t tmp;
|
|
- HKS_ASN1_DECODE_BYTE(buf, tmp); /* get type */
|
|
+// uint32_t tmp;
|
|
+// HKS_ASN1_DECODE_BYTE(buf, tmp); /* get type */
|
|
+ buf++;
|
|
if (buf[0] < ASN_1_MIN_VAL_1_EXTRA_LEN_BYTE) {
|
|
/* Current byte tells the length */
|
|
HKS_ASN1_DECODE_BYTE(buf, length);
|
|
diff --git a/frameworks/huks_standard/main/crypto_engine/openssl/src/hks_openssl_kdf.c b/frameworks/huks_standard/main/crypto_engine/openssl/src/hks_openssl_kdf.c
|
|
index 258b206..5db3e4d 100755
|
|
--- a/frameworks/huks_standard/main/crypto_engine/openssl/src/hks_openssl_kdf.c
|
|
+++ b/frameworks/huks_standard/main/crypto_engine/openssl/src/hks_openssl_kdf.c
|
|
@@ -57,6 +57,7 @@ int32_t HksOpensslHkdf(const struct HksBlob *mainKey, const struct HksKeySpec *d
|
|
EVP_PKEY_CTX *pctx;
|
|
pctx = EVP_PKEY_CTX_new_id(EVP_PKEY_HKDF, NULL);
|
|
int32_t ret = HKS_FAILURE;
|
|
+
|
|
do {
|
|
if (EVP_PKEY_derive_init(pctx) <= 0) {
|
|
HksLogOpensslError();
|
|
@@ -78,7 +79,8 @@ int32_t HksOpensslHkdf(const struct HksBlob *mainKey, const struct HksKeySpec *d
|
|
HksLogOpensslError();
|
|
break;
|
|
}
|
|
- if (EVP_PKEY_derive(pctx, derivedKey->data, (size_t *)&derivedKey->size) <= 0) {
|
|
+ size_t new = derivedKey->size;
|
|
+ if (EVP_PKEY_derive(pctx, derivedKey->data, &new) <= 0) {
|
|
HksLogOpensslError();
|
|
break;
|
|
}
|
|
diff --git a/frameworks/huks_standard/main/os_dependency/BUILD.gn b/frameworks/huks_standard/main/os_dependency/BUILD.gn
|
|
index 7d03e55..6da94a5 100755
|
|
--- a/frameworks/huks_standard/main/os_dependency/BUILD.gn
|
|
+++ b/frameworks/huks_standard/main/os_dependency/BUILD.gn
|
|
@@ -26,6 +26,8 @@ ohos_static_library("libhuks_os_dependency_standard_static") {
|
|
public_configs = [ ":huks_config" ]
|
|
include_dirs = [
|
|
"log",
|
|
+ "sysinfo/include",
|
|
+ "../../../../services/huks_standard/huks_service/main/core/include/",
|
|
"//utils/native/base/include",
|
|
"//utils/system/safwk/native/include",
|
|
]
|
|
@@ -35,17 +37,20 @@ ohos_static_library("libhuks_os_dependency_standard_static") {
|
|
"_HUKS_LOG_ENABLE_",
|
|
]
|
|
sources = [
|
|
- "./ipc/src/hks_client_service_ipc.c",
|
|
- "./ipc/src/hks_ipc_check.c",
|
|
- "./ipc/src/hks_ipc_serialization.c",
|
|
- "./ipc/src/hks_ipc_slice.c",
|
|
- "./ipc/src/hks_request.cpp",
|
|
+# "./ipc/src/hks_client_service_ipc.c",
|
|
+# "./ipc/src/hks_ipc_check.c",
|
|
+# "./ipc/src/hks_ipc_serialization.c",
|
|
+# "./ipc/src/hks_ipc_slice.c",
|
|
+# "./ipc/src/hks_request.cpp",
|
|
+ "./ipc/src/hks_client_service_passthrough.c",
|
|
+ "./sysinfo/src/hks_get_process_info_passthrough.c",
|
|
"./log/hks_log.c",
|
|
"./posix/hks_mem.c",
|
|
]
|
|
deps = [
|
|
"//base/security/huks/frameworks/huks_standard/main/common:libhuks_common_standard_static",
|
|
"//utils/native/base:utils",
|
|
+ "//third_party/bounds_checking_function:libsec_shared",
|
|
]
|
|
external_deps = [
|
|
"hiviewdfx_hilog_native:libhilog",
|
|
diff --git a/frameworks/huks_standard/main/os_dependency/log/hks_log.c b/frameworks/huks_standard/main/os_dependency/log/hks_log.c
|
|
index ef7d264..5beadab 100755
|
|
--- a/frameworks/huks_standard/main/os_dependency/log/hks_log.c
|
|
+++ b/frameworks/huks_standard/main/os_dependency/log/hks_log.c
|
|
@@ -22,8 +22,8 @@
|
|
|
|
#undef LOG_DOMAIN
|
|
#undef LOG_TAG
|
|
-static const unsigned int LOG_DOMAIN = 0xD002F01;
|
|
-static const char* LOG_TAG = "HUKS";
|
|
+//static const unsigned int LOG_DOMAIN = 0xD002F01;
|
|
+//static const char* LOG_TAG = "HUKS";
|
|
|
|
#define MAX_LOG_BUFF_LEN 512
|
|
|
|
@@ -48,16 +48,16 @@ void HksLog(uint32_t logLevel, const char *funcName, uint32_t lineNo, const char
|
|
|
|
switch (logLevel) {
|
|
case HKS_LOG_LEVEL_I:
|
|
- HILOG_INFO(LOG_CORE, "%{public}s[%{public}u]: %{public}s\n", funcName, lineNo, buf);
|
|
+ HILOG_INFO(LOG_CORE, "%s[%u]: %s\n", funcName, lineNo, buf);
|
|
break;
|
|
case HKS_LOG_LEVEL_E:
|
|
- HILOG_ERROR(LOG_CORE, "%{public}s[%{public}u]: %{public}s\n", funcName, lineNo, buf);
|
|
+ HILOG_ERROR(LOG_CORE, "%s[%u]: %s\n", funcName, lineNo, buf);
|
|
break;
|
|
case HKS_LOG_LEVEL_W:
|
|
- HILOG_WARN(LOG_CORE, "%{public}s[%{public}u]: %{public}s\n", funcName, lineNo, buf);
|
|
+ HILOG_WARN(LOG_CORE, "%s[%u]: %s\n", funcName, lineNo, buf);
|
|
break;
|
|
case HKS_LOG_LEVEL_D:
|
|
- HILOG_DEBUG(LOG_CORE, "%{public}s[%{public}u]: %{private}s\n", funcName, lineNo, buf);
|
|
+ HILOG_DEBUG(LOG_CORE, "%s[%u]: %s\n", funcName, lineNo, buf);
|
|
break;
|
|
default:
|
|
HKS_FREE_PTR(buf);
|
|
@@ -65,4 +65,4 @@ void HksLog(uint32_t logLevel, const char *funcName, uint32_t lineNo, const char
|
|
}
|
|
|
|
HKS_FREE_PTR(buf);
|
|
-}
|
|
\ No newline at end of file
|
|
+}
|
|
diff --git a/interfaces/innerkits/huks_standard/main/BUILD.gn b/interfaces/innerkits/huks_standard/main/BUILD.gn
|
|
index 1ca1e02..88e620d 100755
|
|
--- a/interfaces/innerkits/huks_standard/main/BUILD.gn
|
|
+++ b/interfaces/innerkits/huks_standard/main/BUILD.gn
|
|
@@ -41,6 +41,7 @@ if (os_level == "standard") {
|
|
deps = [
|
|
"//base/security/huks/frameworks/huks_standard/main:huks_standard_frameworks",
|
|
"//base/security/huks/utils/crypto_adapter:libhuks_utils_client_service_adapter_static",
|
|
+ "//base/security/huks/services/huks_standard/huks_engine/main/core:huks_engine_core_standard",
|
|
]
|
|
}
|
|
}
|
|
diff --git a/services/huks_standard/huks_service/main/os_dependency/BUILD.gn b/services/huks_standard/huks_service/main/os_dependency/BUILD.gn
|
|
index 931d20c..01078b7 100755
|
|
--- a/services/huks_standard/huks_service/main/os_dependency/BUILD.gn
|
|
+++ b/services/huks_standard/huks_service/main/os_dependency/BUILD.gn
|
|
@@ -34,7 +34,7 @@ ohos_static_library("libhuks_service_os_dependency_standard_static") {
|
|
]
|
|
sources = [
|
|
"posix/hks_rwlock.c",
|
|
- "sa/hks_sa.cpp",
|
|
+# "sa/hks_sa.cpp",
|
|
]
|
|
deps = [
|
|
"//base/security/huks/frameworks/huks_standard/main/common:libhuks_common_standard_static",
|
|
diff --git a/services/huks_standard/huks_service/main/os_dependency/idl/BUILD.gn b/services/huks_standard/huks_service/main/os_dependency/idl/BUILD.gn
|
|
index e86a491..3ffcfa1 100755
|
|
--- a/services/huks_standard/huks_service/main/os_dependency/idl/BUILD.gn
|
|
+++ b/services/huks_standard/huks_service/main/os_dependency/idl/BUILD.gn
|
|
@@ -32,9 +32,9 @@ ohos_static_library("libhuks_service_idl_standard_static") {
|
|
"_HUKS_LOG_ENABLE_",
|
|
]
|
|
sources = [
|
|
- "ipc/hks_ipc_serialization.c",
|
|
- "ipc/hks_ipc_service.c",
|
|
- "ipc/hks_response.cpp",
|
|
+# "ipc/hks_ipc_serialization.c",
|
|
+# "ipc/hks_ipc_service.c",
|
|
+# "ipc/hks_response.cpp",
|
|
"passthrough/huks_access.c",
|
|
"passthrough/huks_core_dynamic_hal.c",
|
|
]
|
|
diff --git a/utils/file_operator/hks_file_operator.c b/utils/file_operator/hks_file_operator.c
|
|
index 5543c38..5c2e704 100755
|
|
--- a/utils/file_operator/hks_file_operator.c
|
|
+++ b/utils/file_operator/hks_file_operator.c
|
|
@@ -93,7 +93,7 @@ static uint32_t FileRead(const char *fileName, uint32_t offset, uint8_t *buf, ui
|
|
}
|
|
|
|
char filePath[PATH_MAX + 1] = {0};
|
|
- (void)realpath(fileName, filePath);
|
|
+ char *path __attribute__((unused)) = realpath(fileName, filePath);
|
|
if (strstr(filePath, "../") != NULL) {
|
|
HKS_LOG_E("invalid filePath, path %s", filePath);
|
|
return 0;
|
|
@@ -137,7 +137,7 @@ static int32_t FileWrite(const char *fileName, uint32_t offset, const uint8_t *b
|
|
if (memcpy_s(filePath, sizeof(filePath) - 1, fileName, strlen(fileName)) != EOK) {
|
|
return HKS_ERROR_BAD_STATE;
|
|
}
|
|
- (void)realpath(fileName, filePath);
|
|
+ char *path __attribute__((unused)) = realpath(fileName, filePath);
|
|
if (strstr(filePath, "../") != NULL) {
|
|
HKS_LOG_E("invalid filePath, path %s", filePath);
|
|
return HKS_ERROR_INVALID_KEY_FILE;
|
|
@@ -519,4 +519,4 @@ uint32_t HksFileSize(const char *path, const char *fileName)
|
|
int32_t HksGetFileName(const char *path, const char *fileName, char *fullFileName, uint32_t fullFileNameLen)
|
|
{
|
|
return GetFileName(path, fileName, fullFileName, fullFileNameLen);
|
|
-}
|
|
\ No newline at end of file
|
|
+}
|
|
--
|
|
2.25.1
|
|
|