1# Copyright (C) 2021-2023 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("//base/security/huks/build/config.gni")
15import("//base/security/huks/huks.gni")
16import("//build/ohos.gni")
17
18if (os_level == "standard") {
19  ohos_static_library("libhuks_crypto_engine_standard_static") {
20    subsystem_name = "security"
21    part_name = "huks"
22    if (use_crypto_lib == "openssl") {
23      public_deps = [ "//base/security/huks/frameworks/huks_standard/main/crypto_engine/openssl:libhuks_openssl_standard_static" ]
24    }
25    if (use_crypto_lib == "mbedtls") {
26      public_deps = [ "//base/security/huks/frameworks/huks_standard/main/crypto_engine/mbedtls:libhuks_mbedtls_standard_static" ]
27    }
28
29    sources = [
30      "//base/security/huks/frameworks/huks_standard/main/crypto_engine/crypto_common/src/hks_core_ability.c",
31      "//base/security/huks/frameworks/huks_standard/main/crypto_engine/crypto_common/src/hks_core_get_main_key.c",
32    ]
33    include_dirs = [
34      "//base/security/huks/interfaces/inner_api/huks_standard/main/include",
35      "//base/security/huks/frameworks/huks_standard/main/common/include",
36      "//base/security/huks/frameworks/huks_standard/main/crypto_engine/crypto_common/include",
37    ]
38
39    external_deps = [ "c_utils:utils" ]
40
41    complete_static_lib = true
42
43    branch_protector_ret = "pac_ret"
44
45    sanitize = {
46      integer_overflow = true
47      cfi = true
48      debug = false
49      cfi_cross_dso = true
50      boundary_sanitize = true
51      ubsan = true
52    }
53    configs = [
54      "//base/security/huks/frameworks/config/build:l2_standard_common_config",
55    ]
56  }
57} else {
58  ohos_static_library("libhuks_crypto_engine_small_static") {
59    configs = [
60      "//base/security/huks/frameworks/config/build:l1_small_common_config",
61    ]
62
63    sources = [
64      "//base/security/huks/frameworks/huks_standard/main/crypto_engine/crypto_common/src/hks_core_ability.c",
65      "//base/security/huks/frameworks/huks_standard/main/crypto_engine/crypto_common/src/hks_core_get_main_key.c",
66    ]
67    include_dirs = [
68      "//base/security/huks/interfaces/inner_api/huks_standard/main/include",
69      "//base/security/huks/frameworks/huks_standard/main/common/include",
70      "//base/security/huks/frameworks/huks_standard/main/crypto_engine/crypto_common/include",
71      "//third_party/bounds_checking_function/include",
72    ]
73
74    if (huks_use_mbedtls) {
75      public_deps = [ "//base/security/huks/frameworks/huks_standard/main/crypto_engine/mbedtls:libhuks_mbedtls_small_static" ]
76    } else {
77      public_deps = [ "//base/security/huks/frameworks/huks_standard/main/crypto_engine/openssl:libhuks_openssl_small_static" ]
78    }
79
80    complete_static_lib = true
81  }
82}
83