1# Copyright (c) 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("//base/security/device_auth/deps_adapter/deviceauth_hals.gni") 15import("//base/security/device_auth/services/deviceauth.gni") 16 17#####################hydra-fuzz################### 18import("//build/config/features.gni") 19import("//build/ohos.gni") 20import("//build/test.gni") 21module_output_path = "device_auth/device_auth" 22 23##############################fuzztest########################################## 24ohos_fuzztest("DevAuthFuncFuzzTest") { 25 module_out_path = module_output_path 26 fuzz_config_file = "${deviceauth_path}/test/fuzztest/devauthfunc_fuzzer" 27 include_dirs = inc_path 28 include_dirs += hals_inc_path 29 30 include_dirs += [ 31 ".", 32 "../../unittest/deviceauth/include", 33 "../../unittest/deviceauth/unit_test/include", 34 "${dev_frameworks_path}/inc/hiview_adapter", 35 ] 36 37 sources = hal_common_files 38 sources -= [ "${common_lib_path}/impl/src/json_utils.c" ] 39 sources += [ 40 "${key_management_adapter_path}/impl/src/common/mbedtls_ec_adapter.c", 41 "${key_management_adapter_path}/impl/src/huks_adapter.c", 42 "${key_management_adapter_path}/impl/src/standard/crypto_hash_to_point.c", 43 "${key_management_adapter_path}/impl/src/standard/huks_adapter_diff_impl.c", 44 "${os_adapter_path}/impl/src/hc_log.c", 45 "${os_adapter_path}/impl/src/linux/hc_condition.c", 46 "${os_adapter_path}/impl/src/linux/hc_file.c", 47 "${os_adapter_path}/impl/src/linux/hc_init_protection.c", 48 "${os_adapter_path}/impl/src/linux/hc_thread.c", 49 "${os_adapter_path}/impl/src/linux/hc_types.c", 50 "../../unittest/deviceauth/source/hc_dev_info_mock.c", 51 "../../unittest/deviceauth/source/json_utils_mock.c", 52 ] 53 54 sources += dev_frameworks_files 55 sources += deviceauth_common_files 56 sources += database_manager_files 57 sources += cred_manager_files 58 sources += session_manager_files 59 sources += session_v1_files 60 sources += session_v2_files 61 sources += iso_protocol_files 62 sources += ec_speke_protocol_files 63 sources += auth_code_import_files 64 sources += pub_key_exchange_files 65 sources += save_trusted_info_files 66 sources += creds_manager_files 67 sources += broadcast_manager_files 68 sources += soft_bus_channel_mock_files 69 70 sources += group_auth_files 71 sources += group_auth_account_unrelated_files 72 73 sources += group_manager_files 74 sources += group_manager_peer_to_peer_files 75 76 sources += authenticators_p2p_files 77 sources += authenticators_p2p_iso_files 78 sources += authenticators_p2p_pake_files 79 sources += authenticators_standard_exchange_task_files 80 81 sources += account_related_files 82 83 sources += privacy_enhancement_files 84 sources += mk_agree_files 85 86 sources += security_label_adapter_files 87 88 sources -= [ 89 "${authenticators_path}/src/account_unrelated/iso_task/iso_task_main.c", 90 "${authenticators_path}/src/account_unrelated/pake_task/pake_v1_task/pake_v1_task_main.c", 91 ] 92 93 sources += [ 94 "${dev_frameworks_path}/src/plugin_adapter_mock/account_auth_plugin_proxy_mock.c", 95 "../../unittest/deviceauth/source/device_auth_ext_mock.c", 96 "../../unittest/deviceauth/source/os_account_adapter_mock.c", 97 "../../unittest/deviceauth/source/protocol_task_main_mock.c", 98 ] 99 defines = [ 100 "P2P_PAKE_DL_PRIME_LEN_384", 101 "P2P_PAKE_EC_TYPE", 102 "ENABLE_EC_SPEKE", 103 "ENABLE_ISO", 104 "ENABLE_AUTH_CODE_IMPORT", 105 "ENABLE_PUB_KEY_EXCHANGE", 106 "ENABLE_SAVE_TRUSTED_INFO", 107 "ENABLE_ACCOUNT_AUTH_ISO", 108 "ENABLE_ACCOUNT_AUTH_EC_SPEKE", 109 "ENABLE_P2P_BIND_ISO", 110 "ENABLE_P2P_BIND_EC_SPEKE", 111 "ENABLE_P2P_AUTH_ISO", 112 "ENABLE_P2P_AUTH_EC_SPEKE", 113 "DEV_AUTH_FUNC_TEST", 114 "ENABLE_PSEUDONYM", 115 ] 116 117 sources += identity_manager_files 118 include_dirs += identity_manager_inc 119 sources += [ "devauthfunc_fuzzer.cpp" ] 120 121 cflags = [ "-DHILOG_ENABLE" ] 122 cflags += [ 123 "-DDEV_AUTH_WORK_THREAD_STACK_SIZE=102400", 124 "-DMAX_AUTH_SESSION_COUNT=${max_auth_session_count}", 125 ] 126 127 external_deps = [ 128 "cJSON:cjson", 129 "c_utils:utils", 130 "hilog:libhilog", 131 "huks:libhukssdk", 132 "mbedtls:mbedtls_shared", 133 "openssl:libcrypto_static", 134 ] 135} 136 137############################################################################### 138group("fuzztest") { 139 testonly = true 140 deps = [] 141 deps += [ 142 # deps file 143 ":DevAuthFuncFuzzTest", 144 ] 145} 146############################################################################### 147