182efe392Sopenharmony_ci# Copyright (c) 2023-2024 Huawei Device Co., Ltd.
282efe392Sopenharmony_ci# Licensed under the Apache License, Version 2.0 (the "License");
382efe392Sopenharmony_ci# you may not use this file except in compliance with the License.
482efe392Sopenharmony_ci# You may obtain a copy of the License at
582efe392Sopenharmony_ci#
682efe392Sopenharmony_ci#     http://www.apache.org/licenses/LICENSE-2.0
782efe392Sopenharmony_ci#
882efe392Sopenharmony_ci# Unless required by applicable law or agreed to in writing, software
982efe392Sopenharmony_ci# distributed under the License is distributed on an "AS IS" BASIS,
1082efe392Sopenharmony_ci# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1182efe392Sopenharmony_ci# See the License for the specific language governing permissions and
1282efe392Sopenharmony_ci# limitations under the License.
1382efe392Sopenharmony_ci
1482efe392Sopenharmony_ciimport("//build/ohos.gni")
1582efe392Sopenharmony_ci
1682efe392Sopenharmony_ciohos_static_library("certificate_openssl_plugin_lib") {
1782efe392Sopenharmony_ci  sanitize = {
1882efe392Sopenharmony_ci    cfi = true
1982efe392Sopenharmony_ci    cfi_cross_dso = true
2082efe392Sopenharmony_ci    boundary_sanitize = true
2182efe392Sopenharmony_ci    debug = false
2282efe392Sopenharmony_ci    integer_overflow = true
2382efe392Sopenharmony_ci    ubsan = true
2482efe392Sopenharmony_ci  }
2582efe392Sopenharmony_ci  subsystem_name = "security"
2682efe392Sopenharmony_ci  part_name = "certificate_framework"
2782efe392Sopenharmony_ci  configs = [ "../../../config/build:coverage_flag" ]
2882efe392Sopenharmony_ci
2982efe392Sopenharmony_ci  include_dirs = [
3082efe392Sopenharmony_ci    "inc",
3182efe392Sopenharmony_ci    "../../core/v1.0/spi",
3282efe392Sopenharmony_ci  ]
3382efe392Sopenharmony_ci
3482efe392Sopenharmony_ci  sources = [
3582efe392Sopenharmony_ci    "src/certificate_openssl_common.c",
3682efe392Sopenharmony_ci    "src/x509_cert_chain_openssl.c",
3782efe392Sopenharmony_ci    "src/x509_cert_chain_openssl_ex.c",
3882efe392Sopenharmony_ci    "src/x509_cert_chain_validator_openssl.c",
3982efe392Sopenharmony_ci    "src/x509_certificate_openssl.c",
4082efe392Sopenharmony_ci    "src/x509_crl_entry_openssl.c",
4182efe392Sopenharmony_ci    "src/x509_crl_openssl.c",
4282efe392Sopenharmony_ci    "src/x509_distinguished_name_openssl.c",
4382efe392Sopenharmony_ci  ]
4482efe392Sopenharmony_ci
4582efe392Sopenharmony_ci  cflags = [
4682efe392Sopenharmony_ci    "-DHILOG_ENABLE",
4782efe392Sopenharmony_ci    "-DOPENSSL_NO_FILENAMES",
4882efe392Sopenharmony_ci    "-fPIC",
4982efe392Sopenharmony_ci    "-Wall",
5082efe392Sopenharmony_ci  ]
5182efe392Sopenharmony_ci
5282efe392Sopenharmony_ci  deps = [ "../../common:libcertificate_framework_common_static" ]
5382efe392Sopenharmony_ci
5482efe392Sopenharmony_ci  external_deps = [
5582efe392Sopenharmony_ci    "c_utils:utils",
5682efe392Sopenharmony_ci    "crypto_framework:crypto_framework_lib",
5782efe392Sopenharmony_ci    "hilog:libhilog",
5882efe392Sopenharmony_ci    "openssl:libcrypto_shared",
5982efe392Sopenharmony_ci    "openssl:libssl_shared",
6082efe392Sopenharmony_ci  ]
6182efe392Sopenharmony_ci}
62