11b8d9b87Sopenharmony_ci# Copyright (C) 2022-2023 Huawei Device Co., Ltd. 21b8d9b87Sopenharmony_ci# Licensed under the Apache License, Version 2.0 (the "License"); 31b8d9b87Sopenharmony_ci# you may not use this file except in compliance with the License. 41b8d9b87Sopenharmony_ci# You may obtain a copy of the License at 51b8d9b87Sopenharmony_ci# 61b8d9b87Sopenharmony_ci# http://www.apache.org/licenses/LICENSE-2.0 71b8d9b87Sopenharmony_ci# 81b8d9b87Sopenharmony_ci# Unless required by applicable law or agreed to in writing, software 91b8d9b87Sopenharmony_ci# distributed under the License is distributed on an "AS IS" BASIS, 101b8d9b87Sopenharmony_ci# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 111b8d9b87Sopenharmony_ci# See the License for the specific language governing permissions and 121b8d9b87Sopenharmony_ci# limitations under the License. 131b8d9b87Sopenharmony_ci 141b8d9b87Sopenharmony_ciimport("//base/security/crypto_framework/common/common.gni") 151b8d9b87Sopenharmony_ciimport("//base/security/crypto_framework/frameworks/frameworks.gni") 161b8d9b87Sopenharmony_ciimport("//build/ohos.gni") 171b8d9b87Sopenharmony_ci 181b8d9b87Sopenharmony_ciohos_shared_library("cj_cryptoframework_ffi") { 191b8d9b87Sopenharmony_ci branch_protector_ret = "pac_ret" 201b8d9b87Sopenharmony_ci include_dirs = [ "include" ] 211b8d9b87Sopenharmony_ci include_dirs += framework_inc_path 221b8d9b87Sopenharmony_ci 231b8d9b87Sopenharmony_ci if (os_level == "standard") { 241b8d9b87Sopenharmony_ci sanitize = { 251b8d9b87Sopenharmony_ci cfi = true 261b8d9b87Sopenharmony_ci cfi_cross_dso = true 271b8d9b87Sopenharmony_ci debug = false 281b8d9b87Sopenharmony_ci } 291b8d9b87Sopenharmony_ci } 301b8d9b87Sopenharmony_ci 311b8d9b87Sopenharmony_ci cflags = [ 321b8d9b87Sopenharmony_ci "-DHILOG_ENABLE", 331b8d9b87Sopenharmony_ci "-fPIC", 341b8d9b87Sopenharmony_ci "-g3", 351b8d9b87Sopenharmony_ci ] 361b8d9b87Sopenharmony_ci 371b8d9b87Sopenharmony_ci if (!defined(defines)) { 381b8d9b87Sopenharmony_ci defines = [] 391b8d9b87Sopenharmony_ci } 401b8d9b87Sopenharmony_ci 411b8d9b87Sopenharmony_ci if (!ohos_indep_compiler_enable && !build_ohos_sdk && 421b8d9b87Sopenharmony_ci product_name != "qemu-arm-linux-min" && 431b8d9b87Sopenharmony_ci product_name != "rk3568_mini_system") { 441b8d9b87Sopenharmony_ci deps = [ "${framework_path}:crypto_framework_lib" ] 451b8d9b87Sopenharmony_ci external_deps = [ 461b8d9b87Sopenharmony_ci "bounds_checking_function:libsec_shared", 471b8d9b87Sopenharmony_ci "hilog:libhilog", 481b8d9b87Sopenharmony_ci "napi:ace_napi", 491b8d9b87Sopenharmony_ci "napi:cj_bind_ffi", 501b8d9b87Sopenharmony_ci "napi:cj_bind_native", 511b8d9b87Sopenharmony_ci ] 521b8d9b87Sopenharmony_ci sources = [ 531b8d9b87Sopenharmony_ci "src/asy_key_generator_impl.cpp", 541b8d9b87Sopenharmony_ci "src/asy_key_spec_generator_impl.cpp", 551b8d9b87Sopenharmony_ci "src/cipher_impl.cpp", 561b8d9b87Sopenharmony_ci "src/crypto_ffi.cpp", 571b8d9b87Sopenharmony_ci "src/dh_key_util_impl.cpp", 581b8d9b87Sopenharmony_ci "src/ecc_key_util_impl.cpp", 591b8d9b87Sopenharmony_ci "src/kdf_impl.cpp", 601b8d9b87Sopenharmony_ci "src/key_agreement_impl.cpp", 611b8d9b87Sopenharmony_ci "src/key_impl.cpp", 621b8d9b87Sopenharmony_ci "src/key_pair_impl.cpp", 631b8d9b87Sopenharmony_ci "src/mac_impl.cpp", 641b8d9b87Sopenharmony_ci "src/md_impl.cpp", 651b8d9b87Sopenharmony_ci "src/pri_key_impl.cpp", 661b8d9b87Sopenharmony_ci "src/pub_key_impl.cpp", 671b8d9b87Sopenharmony_ci "src/random_impl.cpp", 681b8d9b87Sopenharmony_ci "src/sign_impl.cpp", 691b8d9b87Sopenharmony_ci "src/sm2_crypto_util_impl.cpp", 701b8d9b87Sopenharmony_ci "src/sym_key_generator_impl.cpp", 711b8d9b87Sopenharmony_ci "src/sym_key_impl.cpp", 721b8d9b87Sopenharmony_ci "src/verify_impl.cpp", 731b8d9b87Sopenharmony_ci ] 741b8d9b87Sopenharmony_ci } else { 751b8d9b87Sopenharmony_ci defines += [ "PREVIEWER" ] 761b8d9b87Sopenharmony_ci sources = [ "src/crypto_mock.cpp" ] 771b8d9b87Sopenharmony_ci external_deps = [ "napi:cj_bind_ffi" ] 781b8d9b87Sopenharmony_ci } 791b8d9b87Sopenharmony_ci 801b8d9b87Sopenharmony_ci if (is_ohos) { 811b8d9b87Sopenharmony_ci defines += [ "OHOS_PLATFORM" ] 821b8d9b87Sopenharmony_ci } 831b8d9b87Sopenharmony_ci 841b8d9b87Sopenharmony_ci if (is_mingw) { 851b8d9b87Sopenharmony_ci defines += [ "WINDOWS_PLATFORM" ] 861b8d9b87Sopenharmony_ci } 871b8d9b87Sopenharmony_ci 881b8d9b87Sopenharmony_ci innerapi_tags = [ "platformsdk" ] 891b8d9b87Sopenharmony_ci 901b8d9b87Sopenharmony_ci subsystem_name = "security" 911b8d9b87Sopenharmony_ci part_name = "crypto_framework" 921b8d9b87Sopenharmony_ci} 93