1# Copyright (c) 2021-2024 Huawei Device Co., Ltd.
2# Licensed under the Apache License, Version 2.0 (the "License");
3# you may not use this file except in compliance with the License.
4# You may obtain a copy of the License at
5#
6#     http://www.apache.org/licenses/LICENSE-2.0
7#
8# Unless required by applicable law or agreed to in writing, software
9# distributed under the License is distributed on an "AS IS" BASIS,
10# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
11# See the License for the specific language governing permissions and
12# limitations under the License.
13
14import("//build/ohos.gni")
15
16ohos_shared_library("huks") {
17  branch_protector_ret = "pac_ret"
18
19  sanitize = {
20    integer_overflow = true
21    cfi = true
22    debug = false
23    cfi_cross_dso = true
24    boundary_sanitize = true
25    ubsan = true
26  }
27  defines = [
28    "HUKS_NAPI_ERRORCODE_WITH_MESSAGE",
29    "L2_STANDARD",
30    "_HARDWARE_ROOT_KEY_",
31    "_HUKS_LOG_ENABLE_",
32  ]
33
34  include_dirs = [
35    "//base/security/huks/interfaces/inner_api/huks_standard/main/include",
36    "//base/security/huks/frameworks/huks_standard/main/common/include",
37    "include",
38    "include/v8",
39    "include/v9",
40    "include/v12",
41  ]
42
43  version_script = "libhuksnapi.map"
44
45  sources = [
46    "src/huks_napi.cpp",
47    "src/v12/huks_napi_attest_key_item_as_user.cpp",
48    "src/v12/huks_napi_delete_key_item_as_user.cpp",
49    "src/v12/huks_napi_export_key_item_as_user.cpp",
50    "src/v12/huks_napi_generate_key_item_as_user.cpp",
51    "src/v12/huks_napi_get_key_item_properties_as_user.cpp",
52    "src/v12/huks_napi_has_key_item_as_user.cpp",
53    "src/v12/huks_napi_import_key_item_as_user.cpp",
54    "src/v12/huks_napi_import_wrapped_key_item_as_user.cpp",
55    "src/v12/huks_napi_init_session_as_user.cpp",
56    "src/v12/huks_napi_list_aliases.cpp",
57    "src/v8/huks_napi_abort.cpp",
58    "src/v8/huks_napi_common.cpp",
59    "src/v8/huks_napi_delete_key.cpp",
60    "src/v8/huks_napi_export_key.cpp",
61    "src/v8/huks_napi_generate_key.cpp",
62    "src/v8/huks_napi_get_key_properties.cpp",
63    "src/v8/huks_napi_get_sdk_version.cpp",
64    "src/v8/huks_napi_import_key.cpp",
65    "src/v8/huks_napi_init.cpp",
66    "src/v8/huks_napi_is_key_exist.cpp",
67    "src/v8/huks_napi_update_finish.cpp",
68    "src/v9/huks_napi_abort_session.cpp",
69    "src/v9/huks_napi_attest_key_item.cpp",
70    "src/v9/huks_napi_common_item.cpp",
71    "src/v9/huks_napi_delete_key_item.cpp",
72    "src/v9/huks_napi_export_key_item.cpp",
73    "src/v9/huks_napi_generate_key_item.cpp",
74    "src/v9/huks_napi_get_key_item_properties.cpp",
75    "src/v9/huks_napi_has_key_item.cpp",
76    "src/v9/huks_napi_import_key_item.cpp",
77    "src/v9/huks_napi_import_wrapped_key_item.cpp",
78    "src/v9/huks_napi_init_session.cpp",
79    "src/v9/huks_napi_is_key_item_exist.cpp",
80    "src/v9/huks_napi_update_finish_session.cpp",
81  ]
82
83  deps = [
84    "//base/security/huks/frameworks/huks_standard/main/common:libhuks_common_standard_static",
85    "//base/security/huks/frameworks/huks_standard/main/os_dependency:libhuks_mem_standard_static",
86    "//base/security/huks/interfaces/inner_api/huks_standard/main:libhukssdk",
87  ]
88
89  external_deps = [
90    "c_utils:utils",
91    "hilog:libhilog",
92    "napi:ace_napi",
93  ]
94  cflags_cc = [
95    "-Wall",
96    "-Werror",
97  ]
98
99  relative_install_dir = "module/security"
100  subsystem_name = "security"
101  part_name = "huks"
102}
103