• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1#
2# Copyright (c) 2021-2022 Huawei Device Co., Ltd.
3# Licensed under the Apache License, Version 2.0 (the "License");
4# you may not use this file except in compliance with the License.
5# You may obtain a copy of the License at
6#
7#     http://www.apache.org/licenses/LICENSE-2.0
8#
9# Unless required by applicable law or agreed to in writing, software
10# distributed under the License is distributed on an "AS IS" BASIS,
11# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12# See the License for the specific language governing permissions and
13# limitations under the License.
14#
15
16import("//base/security/huks/build/config.gni")
17import("//build/ohos.gni")
18
19huks_sources = [
20  "../../../frameworks/huks_standard/main/common/src/hks_ability.c",
21  "../../../frameworks/huks_standard/main/common/src/hks_base_check.c",
22  "../../../frameworks/huks_standard/main/common/src/hks_check_paramset.c",
23  "../../../frameworks/huks_standard/main/common/src/hks_common_check.c",
24  "../../../frameworks/huks_standard/main/common/src/hks_crypto_adapter.c",
25  "../../../frameworks/huks_standard/main/common/src/hks_param.c",
26  "../../../frameworks/huks_standard/main/core/src/hks_local_engine.c",
27  "../../../frameworks/huks_standard/main/os_dependency/ipc/src/hks_client_service_passthrough.c",
28  "../../../frameworks/huks_standard/main/os_dependency/posix/hks_mem.c",
29  "../../../frameworks/huks_standard/main/os_dependency/sysinfo/src/hks_get_process_info_passthrough.c",
30  "../../../frameworks/huks_standard/main/os_dependency/sysinfo/src/hks_get_udid.c",
31  "../../../interfaces/innerkits/huks_standard/main/src/hks_api.c",
32  "../../../interfaces/innerkits/huks_standard/main/src/hks_api_adapter.c",
33  "../../../services/huks_standard/huks_engine/main/core/src/hks_auth.c",
34  "../../../services/huks_standard/huks_engine/main/core/src/hks_core_interfaces.c",
35  "../../../services/huks_standard/huks_engine/main/core/src/hks_core_service.c",
36  "../../../services/huks_standard/huks_engine/main/core/src/hks_core_service_three_stage.c",
37  "../../../services/huks_standard/huks_engine/main/core/src/hks_keyblob.c",
38  "../../../services/huks_standard/huks_engine/main/core/src/hks_keynode.c",
39  "../../../services/huks_standard/huks_engine/main/core/src/hks_rkc.c",
40  "../../../services/huks_standard/huks_engine/main/core/src/hks_rkc_rw.c",
41  "../../../services/huks_standard/huks_engine/main/core/src/hks_secure_access.c",
42  "../../../services/huks_standard/huks_engine/main/core/src/hks_upgrade_key_info.c",
43  "../../../services/huks_standard/huks_service/main/core/src/hks_client_check.c",
44  "../../../services/huks_standard/huks_service/main/core/src/hks_client_service.c",
45  "../../../services/huks_standard/huks_service/main/core/src/hks_hitrace.c",
46  "../../../services/huks_standard/huks_service/main/core/src/hks_report.c",
47  "../../../services/huks_standard/huks_service/main/core/src/hks_session_manager.c",
48  "../../../services/huks_standard/huks_service/main/core/src/hks_upgrade_storage_data.c",
49  "../../../services/huks_standard/huks_service/main/os_dependency/idl/passthrough/huks_access.c",
50  "../../../services/huks_standard/huks_service/main/os_dependency/idl/passthrough/huks_core_static_hal.c",
51  "../../../utils/crypto_adapter/hks_client_service_adapter_common.c",
52  "../../../utils/crypto_adapter/hks_client_service_adapter_lite.c",
53  "../../../utils/file_operator/hks_file_operator_lite.c",
54  "../../../utils/list/hks_double_list.c",
55  "../../../utils/mutex/hks_mutex.c",
56]
57
58if (huks_use_mbedtls == true) {
59  huks_mbedtls_engine_sources = [
60    "../../../frameworks/huks_standard/main/crypto_engine/mbedtls/src/hks_crypto_ed25519.c",
61    "../../../frameworks/huks_standard/main/crypto_engine/mbedtls/src/hks_mbedtls_ability.c",
62    "../../../frameworks/huks_standard/main/crypto_engine/mbedtls/src/hks_mbedtls_aes.c",
63    "../../../frameworks/huks_standard/main/crypto_engine/mbedtls/src/hks_mbedtls_bn.c",
64    "../../../frameworks/huks_standard/main/crypto_engine/mbedtls/src/hks_mbedtls_common.c",
65    "../../../frameworks/huks_standard/main/crypto_engine/mbedtls/src/hks_mbedtls_ecc.c",
66    "../../../frameworks/huks_standard/main/crypto_engine/mbedtls/src/hks_mbedtls_ecdh.c",
67    "../../../frameworks/huks_standard/main/crypto_engine/mbedtls/src/hks_mbedtls_ecdsa.c",
68    "../../../frameworks/huks_standard/main/crypto_engine/mbedtls/src/hks_mbedtls_engine.c",
69    "../../../frameworks/huks_standard/main/crypto_engine/mbedtls/src/hks_mbedtls_hash.c",
70    "../../../frameworks/huks_standard/main/crypto_engine/mbedtls/src/hks_mbedtls_hmac.c",
71    "../../../frameworks/huks_standard/main/crypto_engine/mbedtls/src/hks_mbedtls_kdf.c",
72    "../../../frameworks/huks_standard/main/crypto_engine/mbedtls/src/hks_mbedtls_rsa.c",
73    "../../../frameworks/huks_standard/main/crypto_engine/mbedtls/src/hks_mbedtls_x25519.c",
74  ]
75}
76
77if (huks_use_lite_storage == true) {
78  huks_storage_source = [
79    "../../../services/huks_standard/huks_service/main/core/src/hks_storage_adapter.c",
80    "../../../services/huks_standard/huks_service/main/core/src/hks_storage_lite.c",
81    "../../../services/huks_standard/huks_engine/main/core/src/hks_keyblob_lite.c",
82  ]
83} else {
84  huks_storage_source = [
85    "../../../services/huks_standard/huks_service/main/core/src/hks_storage.c",
86  ]
87}
88config("hilog_dir") {
89  include_dirs =
90      [ "//base/hiviewdfx/hilog_lite/interfaces/native/innerkits/hilog/" ]
91}
92config("hilog_lite_dir") {
93  include_dirs =
94      [ "//base/hiviewdfx/hilog_lite/interfaces/native/kits/hilog_lite/" ]
95}
96
97config("mbedtls_engine") {
98  include_dirs =
99      [ "../../../frameworks/huks_standard/main/crypto_engine/mbedtls/include" ]
100}
101
102config("soft_huks_config") {
103  include_dirs = [
104    "../../../frameworks/huks_standard/main/common/include",
105    "../../../frameworks/huks_standard/main/core/include",
106    "../../../frameworks/huks_standard/main/crypto_engine/mbedtls/include",
107    "../../../frameworks/huks_standard/main/os_dependency/ipc/include",
108    "../../../frameworks/huks_standard/main/os_dependency/sysinfo/include",
109    "../../../services/huks_standard/huks_engine/main/core/include",
110    "../../../services/huks_standard/huks_service/main/core/include",
111    "//commonlibrary/utils_lite/memory/include/",
112    "//commonlibrary/utils_lite/include/",
113    "//base/security/huks/services/huks_standard/huks_engine/main/core/include",
114    "//base/security/huks/services/huks_standard/huks_service/main/os_dependency/idl/passthrough",
115    "//base/security/huks/utils/crypto_adapter",
116    "//base/security/huks/utils/file_operator",
117    "//base/security/huks/utils/list",
118    "//base/security/huks/utils/mutex",
119  ]
120
121  if (board_toolchain_type != "iccarm") {
122    defines = [ "_FORTIFY_SOURCE = 2" ]
123  }
124  if (board_toolchain_type == "iccarm") {
125    cflags = [
126      "--diag_suppress",
127      "Pe370,Pe226",
128    ]
129  } else {
130    cflags = [
131      "-fvisibility=hidden",
132      "-Wall",
133      "-Werror",
134    ]
135  }
136
137  if (disable_authenticate == true) {
138    cflags += [ "-D_CUT_AUTHENTICATE_" ]
139  }
140
141  if (ohos_kernel_type != "liteos_m") {
142    cflags += [ "-flto" ]
143  }
144
145  if (huks_use_hardware_root_key == true) {
146    cflags += [ "-D_HARDWARE_ROOT_KEY_" ]
147  }
148
149  if (huks_use_lite_storage == true) {
150    cflags += [ "-D_STORAGE_LITE_" ]
151  } else {
152    if (ohos_kernel_type == "liteos_a") {
153      cflags += [ "-D_BSD_SOURCE" ]
154    } else {
155      cflags += [ "-D_DEFAULT_SOURCE" ]
156    }
157  }
158
159  if (ohos_kernel_type != "liteos_m" || huks_enable_log == true) {
160    cflags += [ "-D_HUKS_LOG_ENABLE_" ]
161  }
162
163  if (huks_config_file != "") {
164    print(huks_config_file)
165    cflags += [ "-DHKS_CONFIG_FILE=\"${huks_config_file}\"" ]
166  }
167
168  cflags += [ "-DHKS_CONFIG_KEY_STORE_PATH=\"${huks_key_store_path}\"" ]
169}
170
171config("public_huks_config") {
172  include_dirs = [ "../../../interfaces/innerkits/huks_standard/main/include" ]
173}
174
175config("get_dev_udid_config") {
176  cflags = [ "-DGET_DEV_UDID_ENABLE" ]
177}
178
179#begin: add
180if (ohos_kernel_type == "liteos_m") {
181  ohos_static_library("huks_3.0_sdk") {
182    public_configs = [ ":public_huks_config" ]
183    configs = [ ":soft_huks_config" ]
184
185    sources = huks_sources
186    sources += huks_storage_source
187    sources += [ "hks_tmp_client.c" ]
188
189    include_dirs = [
190      "//commonlibrary/c_utils/base/include",
191      "//base/security/huks/frameworks/huks_standard/main/common/include",
192      "//base/security/huks/services/huks_standard/huks_engine/main/core/include",
193    ]
194    deps = []
195    if (huks_use_mbedtls == true) {
196      sources += huks_mbedtls_engine_sources
197      if (huks_dependency_mbedtls_path != "") {
198        deps += [ huks_dependency_mbedtls_path ]
199      } else {
200        deps += [ "//third_party/mbedtls:mbedtls_static" ]
201      }
202      configs += [ ":mbedtls_engine" ]
203    }
204
205    defines = [
206      "MBEDTLS_ECP_RESTARTABLE=1",
207      "LOG_ENGINE_HILOG_MODULE_SCY",
208    ]
209
210    if (huks_enable_log == true) {
211      configs += [ ":hilog_lite_dir" ]
212      deps += [ "//base/hiviewdfx/hilog_lite/frameworks/mini:hilog_lite" ]
213    }
214  }
215} else {
216  ohos_shared_library("huks_3.0_sdk") {
217    public_configs = [ ":public_huks_config" ]
218    configs = [ ":soft_huks_config" ]
219    configs += [ ":get_dev_udid_config" ]
220    sources = huks_sources
221    sources += huks_storage_source
222
223    include_dirs = [
224      "//commonlibrary/c_utils/base/include",
225      "//base/security/huks/frameworks/huks_standard/main/common/include",
226      "//base/security/huks/services/huks_standard/huks_engine/main/core/include",
227      "//frameworks/huks_standard/main/os_dependency/ipc/include",
228    ]
229    deps = []
230    external_deps = [ "init_lite:libbegetutil" ]
231
232    if (huks_use_mbedtls == true) {
233      sources += huks_mbedtls_engine_sources
234      if (huks_dependency_mbedtls_path != "") {
235        deps += [ huks_dependency_mbedtls_path ]
236      } else {
237        deps += [ "//third_party/mbedtls:mbedtls_shared" ]
238      }
239      if (huks_dependency_openssl_path != "") {
240        deps += [ huks_dependency_openssl_path ]
241      } else {
242        deps += [ "//build/lite/config/component/openssl:openssl_shared" ]
243      }
244      configs += [ ":mbedtls_engine" ]
245    }
246
247    defines = [
248      "MBEDTLS_ECP_RESTARTABLE=1",
249      "LOG_ENGINE_HILOG_MODULE_SCY",
250    ]
251
252    configs += [ ":hilog_dir" ]
253    deps += [
254      "//base/hiviewdfx/hilog_lite/frameworks/featured:hilog_shared",
255      "//third_party/bounds_checking_function:libsec_shared",
256    ]
257  }
258  if (ohos_build_type == "debug") {
259    group("huks_3.0_test") {
260      deps = [ "//base/security/huks/test:unittest" ]
261    }
262  }
263}
264