# Copyright (c) 2020-2022 Huawei Device Co., Ltd. # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. import("//build/ohos.gni") print("openssl detecting os now...") print("current_cpu = ${current_cpu}") print("current_os = ${current_os}") print("host_os = ${host_os}") openssl_selected_platform = "" print("is_mingw = ${is_mingw}") if (current_cpu == "arm" && !(current_os == "linux" || host_os == "mac")) { print("openssl selected linux-armv4") openssl_selected_platform = "linux-armv4" } else if (current_cpu == "arm64" && (!(current_os == "linux" || host_os == "mac") || current_os == "ohos")) { print("openssl selected linux-aarch64") openssl_selected_platform = "linux-aarch64" } else if ((current_cpu == "x64" || current_cpu == "x86_64") && (current_os == "mac" || current_os == "ios")) { # compilation for ios depends the platform print("openssl selected darwin64-x86_64-cc") openssl_selected_platform = "darwin64-x86_64-cc" } else if (current_cpu == "arm64" && (current_os == "mac" || current_os == "ios")) { # ios and macos both use the platform print("openssl selected darwin64-arm64-cc") openssl_selected_platform = "darwin64-arm64-cc" } else if ((current_cpu == "x64" || current_cpu == "x86_64") && current_os != "mingw") { print("openssl selected linux-x86_64") openssl_selected_platform = "linux-x86_64" } else if (is_mingw) { print("openssl selected mingw64") openssl_selected_platform = "mingw64" } else if (current_cpu == "arm" && current_os == "android") { print("openssl selected linux-armv4") openssl_selected_platform = "linux-armv4" } else if (current_cpu == "arm64" && current_os == "android") { print("openssl selected linux-aarch64") openssl_selected_platform = "linux-aarch64" } print( "openssl detecting os done. openssl_selected_platform = ${openssl_selected_platform}") openssl_selected_platform_full_path = "${target_out_dir}/build_all_generated/${openssl_selected_platform}" libcrypto_build_all_generated_linux_armv4_sources = [ "${openssl_selected_platform_full_path}/crypto/aes/aes-armv4.S", "${openssl_selected_platform_full_path}/crypto/aes/aesv8-armx.S", "${openssl_selected_platform_full_path}/crypto/aes/bsaes-armv7.S", "${openssl_selected_platform_full_path}/crypto/armv4cpuid.S", "${openssl_selected_platform_full_path}/crypto/bn/armv4-gf2m.S", "${openssl_selected_platform_full_path}/crypto/bn/armv4-mont.S", "${openssl_selected_platform_full_path}/crypto/chacha/chacha-armv4.S", "${openssl_selected_platform_full_path}/crypto/ec/ecp_nistz256-armv4.S", "${openssl_selected_platform_full_path}/crypto/modes/ghash-armv4.S", "${openssl_selected_platform_full_path}/crypto/modes/ghashv8-armx.S", "${openssl_selected_platform_full_path}/crypto/poly1305/poly1305-armv4.S", "${openssl_selected_platform_full_path}/crypto/sha/keccak1600-armv4.S", "${openssl_selected_platform_full_path}/crypto/sha/sha1-armv4-large.S", "${openssl_selected_platform_full_path}/crypto/sha/sha256-armv4.S", "${openssl_selected_platform_full_path}/crypto/sha/sha512-armv4.S", ] libcrypto_build_all_generated_linux_aarch64_sources = [ "${openssl_selected_platform_full_path}/crypto/aes/aesv8-armx.S", "${openssl_selected_platform_full_path}/crypto/aes/vpaes-armv8.S", "${openssl_selected_platform_full_path}/crypto/arm64cpuid.S", "${openssl_selected_platform_full_path}/crypto/bn/armv8-mont.S", "${openssl_selected_platform_full_path}/crypto/chacha/chacha-armv8.S", "${openssl_selected_platform_full_path}/crypto/ec/ecp_nistz256-armv8.S", "${openssl_selected_platform_full_path}/crypto/modes/aes-gcm-armv8_64.S", "${openssl_selected_platform_full_path}/crypto/modes/ghashv8-armx.S", "${openssl_selected_platform_full_path}/crypto/poly1305/poly1305-armv8.S", "${openssl_selected_platform_full_path}/crypto/sha/keccak1600-armv8.S", "${openssl_selected_platform_full_path}/crypto/sha/sha1-armv8.S", "${openssl_selected_platform_full_path}/crypto/sha/sha256-armv8.S", "${openssl_selected_platform_full_path}/crypto/sha/sha512-armv8.S", ] libcrypto_build_all_generated_darwin64_x86_64_cc_sources = [ "${openssl_selected_platform_full_path}/crypto/aes/aes-x86_64.s", "${openssl_selected_platform_full_path}/crypto/aes/aesni-mb-x86_64.s", "${openssl_selected_platform_full_path}/crypto/aes/aesni-sha1-x86_64.s", "${openssl_selected_platform_full_path}/crypto/aes/aesni-sha256-x86_64.s", "${openssl_selected_platform_full_path}/crypto/aes/aesni-x86_64.s", "${openssl_selected_platform_full_path}/crypto/aes/bsaes-x86_64.s", "${openssl_selected_platform_full_path}/crypto/aes/vpaes-x86_64.s", "${openssl_selected_platform_full_path}/crypto/bn/rsaz-avx2.s", "${openssl_selected_platform_full_path}/crypto/bn/rsaz-avx512.s", "${openssl_selected_platform_full_path}/crypto/bn/rsaz-x86_64.s", "${openssl_selected_platform_full_path}/crypto/bn/x86_64-gf2m.s", "${openssl_selected_platform_full_path}/crypto/bn/x86_64-mont.s", "${openssl_selected_platform_full_path}/crypto/bn/x86_64-mont5.s", "${openssl_selected_platform_full_path}/crypto/camellia/cmll-x86_64.s", "${openssl_selected_platform_full_path}/crypto/chacha/chacha-x86_64.s", "${openssl_selected_platform_full_path}/crypto/ec/ecp_nistz256-x86_64.s", "${openssl_selected_platform_full_path}/crypto/ec/x25519-x86_64.s", "${openssl_selected_platform_full_path}/crypto/md5/md5-x86_64.s", "${openssl_selected_platform_full_path}/crypto/modes/aesni-gcm-x86_64.s", "${openssl_selected_platform_full_path}/crypto/modes/ghash-x86_64.s", "${openssl_selected_platform_full_path}/crypto/poly1305/poly1305-x86_64.s", "${openssl_selected_platform_full_path}/crypto/rc4/rc4-md5-x86_64.s", "${openssl_selected_platform_full_path}/crypto/rc4/rc4-x86_64.s", "${openssl_selected_platform_full_path}/crypto/sha/keccak1600-x86_64.s", "${openssl_selected_platform_full_path}/crypto/sha/sha1-mb-x86_64.s", "${openssl_selected_platform_full_path}/crypto/sha/sha1-x86_64.s", "${openssl_selected_platform_full_path}/crypto/sha/sha256-mb-x86_64.s", "${openssl_selected_platform_full_path}/crypto/sha/sha256-x86_64.s", "${openssl_selected_platform_full_path}/crypto/sha/sha512-x86_64.s", "${openssl_selected_platform_full_path}/crypto/whrlpool/wp-x86_64.s", "${openssl_selected_platform_full_path}/crypto/x86_64cpuid.s", "${openssl_selected_platform_full_path}/engines/e_padlock-x86_64.s", ] libcrypto_build_all_generated_darwin64_arm64_cc_sources = [ "${openssl_selected_platform_full_path}/crypto/aes/aesv8-armx.S", "${openssl_selected_platform_full_path}/crypto/aes/vpaes-armv8.S", "${openssl_selected_platform_full_path}/crypto/arm64cpuid.S", "${openssl_selected_platform_full_path}/crypto/bn/armv8-mont.S", "${openssl_selected_platform_full_path}/crypto/chacha/chacha-armv8.S", "${openssl_selected_platform_full_path}/crypto/ec/ecp_nistz256-armv8.S", "${openssl_selected_platform_full_path}/crypto/modes/aes-gcm-armv8_64.S", "${openssl_selected_platform_full_path}/crypto/modes/ghashv8-armx.S", "${openssl_selected_platform_full_path}/crypto/poly1305/poly1305-armv8.S", "${openssl_selected_platform_full_path}/crypto/sha/keccak1600-armv8.S", "${openssl_selected_platform_full_path}/crypto/sha/sha1-armv8.S", "${openssl_selected_platform_full_path}/crypto/sha/sha256-armv8.S", "${openssl_selected_platform_full_path}/crypto/sha/sha512-armv8.S", ] libcrypto_build_all_generated_linux_x86_64_sources = [ "${openssl_selected_platform_full_path}/crypto/aes/aes-x86_64.s", "${openssl_selected_platform_full_path}/crypto/aes/aesni-mb-x86_64.s", "${openssl_selected_platform_full_path}/crypto/aes/aesni-sha1-x86_64.s", "${openssl_selected_platform_full_path}/crypto/aes/aesni-sha256-x86_64.s", "${openssl_selected_platform_full_path}/crypto/aes/aesni-x86_64.s", "${openssl_selected_platform_full_path}/crypto/aes/bsaes-x86_64.s", "${openssl_selected_platform_full_path}/crypto/aes/vpaes-x86_64.s", "${openssl_selected_platform_full_path}/crypto/bn/rsaz-avx2.s", "${openssl_selected_platform_full_path}/crypto/bn/rsaz-avx512.s", "${openssl_selected_platform_full_path}/crypto/bn/rsaz-x86_64.s", "${openssl_selected_platform_full_path}/crypto/bn/x86_64-gf2m.s", "${openssl_selected_platform_full_path}/crypto/bn/x86_64-mont.s", "${openssl_selected_platform_full_path}/crypto/bn/x86_64-mont5.s", "${openssl_selected_platform_full_path}/crypto/camellia/cmll-x86_64.s", "${openssl_selected_platform_full_path}/crypto/chacha/chacha-x86_64.s", "${openssl_selected_platform_full_path}/crypto/ec/ecp_nistz256-x86_64.s", "${openssl_selected_platform_full_path}/crypto/ec/x25519-x86_64.s", "${openssl_selected_platform_full_path}/crypto/md5/md5-x86_64.s", "${openssl_selected_platform_full_path}/crypto/modes/aesni-gcm-x86_64.s", "${openssl_selected_platform_full_path}/crypto/modes/ghash-x86_64.s", "${openssl_selected_platform_full_path}/crypto/poly1305/poly1305-x86_64.s", "${openssl_selected_platform_full_path}/crypto/rc4/rc4-md5-x86_64.s", "${openssl_selected_platform_full_path}/crypto/rc4/rc4-x86_64.s", "${openssl_selected_platform_full_path}/crypto/sha/keccak1600-x86_64.s", "${openssl_selected_platform_full_path}/crypto/sha/sha1-mb-x86_64.s", "${openssl_selected_platform_full_path}/crypto/sha/sha1-x86_64.s", "${openssl_selected_platform_full_path}/crypto/sha/sha256-mb-x86_64.s", "${openssl_selected_platform_full_path}/crypto/sha/sha256-x86_64.s", "${openssl_selected_platform_full_path}/crypto/sha/sha512-x86_64.s", "${openssl_selected_platform_full_path}/crypto/whrlpool/wp-x86_64.s", "${openssl_selected_platform_full_path}/crypto/x86_64cpuid.s", "${openssl_selected_platform_full_path}/engines/e_padlock-x86_64.s", ] libcrypto_build_all_generated_mingw64_sources = [ "${openssl_selected_platform_full_path}/crypto/aes/aes-x86_64.s", "${openssl_selected_platform_full_path}/crypto/aes/aesni-mb-x86_64.s", "${openssl_selected_platform_full_path}/crypto/aes/aesni-sha1-x86_64.s", "${openssl_selected_platform_full_path}/crypto/aes/aesni-sha256-x86_64.s", "${openssl_selected_platform_full_path}/crypto/aes/aesni-x86_64.s", "${openssl_selected_platform_full_path}/crypto/aes/bsaes-x86_64.s", "${openssl_selected_platform_full_path}/crypto/aes/vpaes-x86_64.s", "${openssl_selected_platform_full_path}/crypto/bn/rsaz-avx2.s", "${openssl_selected_platform_full_path}/crypto/bn/rsaz-avx512.s", "${openssl_selected_platform_full_path}/crypto/bn/rsaz-x86_64.s", "${openssl_selected_platform_full_path}/crypto/bn/x86_64-gf2m.s", "${openssl_selected_platform_full_path}/crypto/bn/x86_64-mont.s", "${openssl_selected_platform_full_path}/crypto/bn/x86_64-mont5.s", "${openssl_selected_platform_full_path}/crypto/camellia/cmll-x86_64.s", "${openssl_selected_platform_full_path}/crypto/chacha/chacha-x86_64.s", "${openssl_selected_platform_full_path}/crypto/ec/ecp_nistz256-x86_64.s", "${openssl_selected_platform_full_path}/crypto/ec/x25519-x86_64.s", "${openssl_selected_platform_full_path}/crypto/md5/md5-x86_64.s", "${openssl_selected_platform_full_path}/crypto/modes/aesni-gcm-x86_64.s", "${openssl_selected_platform_full_path}/crypto/modes/ghash-x86_64.s", "${openssl_selected_platform_full_path}/crypto/poly1305/poly1305-x86_64.s", "${openssl_selected_platform_full_path}/crypto/rc4/rc4-md5-x86_64.s", "${openssl_selected_platform_full_path}/crypto/rc4/rc4-x86_64.s", "${openssl_selected_platform_full_path}/crypto/sha/keccak1600-x86_64.s", "${openssl_selected_platform_full_path}/crypto/sha/sha1-mb-x86_64.s", "${openssl_selected_platform_full_path}/crypto/sha/sha1-x86_64.s", "${openssl_selected_platform_full_path}/crypto/sha/sha256-mb-x86_64.s", "${openssl_selected_platform_full_path}/crypto/sha/sha256-x86_64.s", "${openssl_selected_platform_full_path}/crypto/sha/sha512-x86_64.s", "${openssl_selected_platform_full_path}/crypto/whrlpool/wp-x86_64.s", "${openssl_selected_platform_full_path}/crypto/x86_64cpuid.s", "${openssl_selected_platform_full_path}/engines/e_padlock-x86_64.s", ] libcrypto_build_all_generated_selected_platform_sources = [] if (openssl_selected_platform == "linux-armv4") { libcrypto_build_all_generated_selected_platform_sources += libcrypto_build_all_generated_linux_armv4_sources } else if (openssl_selected_platform == "linux-aarch64") { libcrypto_build_all_generated_selected_platform_sources += libcrypto_build_all_generated_linux_aarch64_sources } else if (openssl_selected_platform == "darwin64-x86_64-cc") { libcrypto_build_all_generated_selected_platform_sources += libcrypto_build_all_generated_darwin64_x86_64_cc_sources } else if (openssl_selected_platform == "darwin64-arm64-cc") { libcrypto_build_all_generated_selected_platform_sources += libcrypto_build_all_generated_darwin64_arm64_cc_sources } else if (openssl_selected_platform == "linux-x86_64") { libcrypto_build_all_generated_selected_platform_sources += libcrypto_build_all_generated_linux_x86_64_sources } else if (openssl_selected_platform == "mingw64") { libcrypto_build_all_generated_selected_platform_sources += libcrypto_build_all_generated_mingw64_sources } libcommon_build_all_generated_selected_platform_sources = [ "${openssl_selected_platform_full_path}/providers/common/der/der_digests_gen.c", "${openssl_selected_platform_full_path}/providers/common/der/der_dsa_gen.c", "${openssl_selected_platform_full_path}/providers/common/der/der_ec_gen.c", "${openssl_selected_platform_full_path}/providers/common/der/der_ecx_gen.c", "${openssl_selected_platform_full_path}/providers/common/der/der_rsa_gen.c", "${openssl_selected_platform_full_path}/providers/common/der/der_wrap_gen.c", ] libdefault_build_all_generated_selected_platform_sources = [ "${openssl_selected_platform_full_path}/providers/common/der/der_sm2_gen.c", ] # We make use of both exec_script and action to build openssl build_all_generated items. # # Some modules use openssl in an incorrect way, leading to the confusing building sequences, # so the user modules building fail because openssl headers have not been generated at the building time. # The exec_script in the global area will be executed before ninja command, # and it ensures that the headers is generated properly before the building of any modules. # # Openssl generate some assembly codes before it is building. # The sources list in BUILD.gn include the assembly codes. # The gn build system requires that all items in sources list should be the output of another build item. # So we use an empty action to generate the assembly codes. # Actually we generate the assembly codes in exec_script, not in action. # # The gn build system requires the script in exec_script and action should be python script, # so we invoke the shell script in python script print(exec_script( rebase_path("//third_party/openssl/run_command.py"), [ rebase_path( "//third_party/openssl/make_openssl_build_all_generated.sh"), rebase_path("//third_party/openssl"), rebase_path("${target_out_dir}/build_all_generated"), openssl_selected_platform, ], "string", [])) action("openssl_build_all_generated") { script = rebase_path("//third_party/openssl/empty.py") outputs = [] outputs += libcommon_build_all_generated_selected_platform_sources outputs += libdefault_build_all_generated_selected_platform_sources outputs += libcrypto_build_all_generated_selected_platform_sources } openssl_internal_cflags = [ "-Wall", # ../../third_party/openssl/crypto/o_str.c:309:9: error: incompatible integer to pointer conversion assigning to 'char *' from 'int' [-Werror,-Wint-conversion] # err = strerror_r(errnum, buf, buflen); # ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ "-Wno-error=int-conversion", # ../../third_party/openssl/crypto/bn/bn_conv.c:92:34: error: implicit conversion from 'unsigned long long' to 'unsigned long' changes value from 10000000000000000000 to 2313682944 [-Werror,-Wconstant-conversion] # *lp = BN_div_word(t, BN_DEC_CONV); # ~~~~~~~~~~~ ^~~~~~~~~~~ "-Wno-error=constant-conversion", # ../../third_party/openssl/crypto/bn/bn_exp.c:382:38: error: shift count >= width of type [-Werror,-Wshift-count-overflow] # if (m->d[j - 1] & (((BN_ULONG)1) << (BN_BITS2 - 1))) { # ^ ~~~~~~~~~~~~~~ "-Wno-error=shift-count-overflow", # ../../third_party/openssl/crypto/conf/conf_def.c:31:11: error: 'stat' macro redefined [-Werror,-Wmacro-redefined] # # define stat _stat # ^ # ../../prebuilts/mingw-w64/ohos/linux-x86_64/clang-mingw/x86_64-w64-mingw32/include/sys/stat.h:279:9: note: previous definition is here # #define stat _stat64 # ^ # 1 error generated. "-Wno-error=macro-redefined", "-Wno-error=implicit-fallthrough", "-Wno-error=sign-compare", # Fix llvm-15 build error "-Wno-unused-but-set-variable", ] crypto_config_common_private_include_dirs = [ ".", "apps/include", "crypto", "crypto/bn", "crypto/ec", "crypto/ec/curve448", "crypto/modes", "crypto/rsa", "include", "providers/common/include", "providers/common/include/prov", "providers/implementations/include", "${openssl_selected_platform_full_path}/apps", "${openssl_selected_platform_full_path}/crypto", "${openssl_selected_platform_full_path}/include", "${openssl_selected_platform_full_path}/include/crypto", "${openssl_selected_platform_full_path}/include/openssl", "${openssl_selected_platform_full_path}/providers/common/include", "${openssl_selected_platform_full_path}/providers/common/include/prov", ] crypto_config_common_public_include_dirs = [ "include", "${openssl_selected_platform_full_path}/include", ] crypto_config_common_cflags = [ "-Wa,--noexecstack", "-DNDEBUG", "-DOPENSSL_BUILDING_OPENSSL", "-DOPENSSL_CPUID_OBJ", "-DOPENSSL_PIC", "-DENGINESDIR=\"\"", "-DMODULESDIR=\"\"", "-DOPENSSLDIR=\"\"", "-DSTATIC_LEGACY", ] crypto_config_linux_armv4_cflags = [ "-DOPENSSL_USE_NODELETE", "-fPIC", "-pthread", "-DAES_ASM", "-DBSAES_ASM", "-DECP_NISTZ256_ASM", "-DGHASH_ASM", "-DKECCAK1600_ASM", "-DOPENSSL_BN_ASM_GF2m", "-DOPENSSL_BN_ASM_MONT", "-DPOLY1305_ASM", "-DSHA1_ASM", "-DSHA256_ASM", "-DSHA512_ASM", ] crypto_config_linux_aarch64_cflags = [ "-DOPENSSL_USE_NODELETE", "-fPIC", "-pthread", "-DECP_NISTZ256_ASM", "-DKECCAK1600_ASM", "-DOPENSSL_BN_ASM_MONT", "-DPOLY1305_ASM", "-DSHA1_ASM", "-DSHA256_ASM", "-DSHA512_ASM", "-DVPAES_ASM", ] crypto_config_darwin64_x86_64_cc_cflags = [ "-fPIC", "-DL_ENDIAN", "-D_REENTRANT", "-DOPENSSL_IA32_SSE2", "-DAES_ASM", "-DBSAES_ASM", "-DCMLL_ASM", "-DECP_NISTZ256_ASM", "-DGHASH_ASM", "-DKECCAK1600_ASM", "-DMD5_ASM", "-DOPENSSL_BN_ASM_GF2m", "-DOPENSSL_BN_ASM_MONT", "-DOPENSSL_BN_ASM_MONT5", "-DPADLOCK_ASM", "-DPOLY1305_ASM", "-DSHA1_ASM", "-DSHA256_ASM", "-DSHA512_ASM", "-DVPAES_ASM", "-DWHIRLPOOL_ASM", "-DX25519_ASM", ] crypto_config_darwin64_arm64_cc_cflags = [ "-DL_ENDIAN", "-D_REENTRANT", "-fPIC", "-DECP_NISTZ256_ASM", "-DKECCAK1600_ASM", "-DOPENSSL_BN_ASM_MONT", "-DPOLY1305_ASM", "-DSHA1_ASM", "-DSHA256_ASM", "-DSHA512_ASM", "-DVPAES_ASM", ] crypto_config_linux_x86_64_cflags = [ "-DL_ENDIAN", "-DOPENSSL_IA32_SSE2", "-DOPENSSL_USE_NODELETE", "-fPIC", "-m64", "-pthread", "-DAES_ASM", "-DBSAES_ASM", "-DCMLL_ASM", "-DECP_NISTZ256_ASM", "-DGHASH_ASM", "-DKECCAK1600_ASM", "-DMD5_ASM", "-DOPENSSL_BN_ASM_GF2m", "-DOPENSSL_BN_ASM_MONT", "-DOPENSSL_BN_ASM_MONT5", "-DPADLOCK_ASM", "-DPOLY1305_ASM", "-DSHA1_ASM", "-DSHA256_ASM", "-DSHA512_ASM", "-DVPAES_ASM", "-DWHIRLPOOL_ASM", "-DX25519_ASM", ] crypto_config_mingw64_cflags = [ "-D_MT", "-D_UNICODE", "-DL_ENDIAN", "-DOPENSSL_IA32_SSE2", "-DUNICODE", "-DWIN32_LEAN_AND_MEAN", "-m64", "-DAES_ASM", "-DBSAES_ASM", "-DCMLL_ASM", "-DECP_NISTZ256_ASM", "-DGHASH_ASM", "-DKECCAK1600_ASM", "-DMD5_ASM", "-DOPENSSL_BN_ASM_GF2m", "-DOPENSSL_BN_ASM_MONT", "-DOPENSSL_BN_ASM_MONT5", "-DPADLOCK_ASM", "-DPOLY1305_ASM", "-DSHA1_ASM", "-DSHA256_ASM", "-DSHA512_ASM", "-DVPAES_ASM", "-DWHIRLPOOL_ASM", "-DX25519_ASM", ] crypto_config_current_platform_cflags = [] if (openssl_selected_platform == "linux-armv4") { crypto_config_current_platform_cflags += crypto_config_linux_armv4_cflags } else if (openssl_selected_platform == "linux-aarch64") { crypto_config_current_platform_cflags += crypto_config_linux_aarch64_cflags } else if (openssl_selected_platform == "darwin64-x86_64-cc") { crypto_config_current_platform_cflags += crypto_config_darwin64_x86_64_cc_cflags } else if (openssl_selected_platform == "darwin64-arm64-cc") { crypto_config_current_platform_cflags += crypto_config_darwin64_arm64_cc_cflags } else if (openssl_selected_platform == "linux-x86_64") { crypto_config_current_platform_cflags += crypto_config_linux_x86_64_cflags } else if (openssl_selected_platform == "mingw64") { crypto_config_current_platform_cflags += crypto_config_mingw64_cflags } mingw32_libs_path = [] mingw32_libs = [] if (is_mingw || is_win) { mingw32_libs_path += [ "//prebuilts/mingw-w64/ohos/linux-x86_64/clang-mingw/x86_64-w64-mingw32/lib" ] mingw32_libs += [ "ws2_32", "crypt32", ] } config("crypto_config_private") { include_dirs = crypto_config_common_private_include_dirs cflags = crypto_config_common_cflags + crypto_config_current_platform_cflags + openssl_internal_cflags lib_dirs = mingw32_libs_path libs = mingw32_libs } config("crypto_config_public") { include_dirs = crypto_config_common_public_include_dirs } libcommon_common_sources = [ "providers/common/der/der_dsa_key.c", "providers/common/der/der_dsa_sig.c", "providers/common/der/der_ec_key.c", "providers/common/der/der_ec_sig.c", "providers/common/der/der_ecx_key.c", "providers/common/der/der_rsa_key.c", "providers/common/provider_ctx.c", "providers/common/provider_err.c", "providers/implementations/ciphers/ciphercommon.c", "providers/implementations/ciphers/ciphercommon_block.c", "providers/implementations/ciphers/ciphercommon_ccm.c", "providers/implementations/ciphers/ciphercommon_ccm_hw.c", "providers/implementations/ciphers/ciphercommon_gcm.c", "providers/implementations/ciphers/ciphercommon_gcm_hw.c", "providers/implementations/ciphers/ciphercommon_hw.c", "providers/implementations/digests/digestcommon.c", "ssl/record/tls_pad.c", ] libdefault_common_sources = [ "providers/common/bio_prov.c", "providers/common/capabilities.c", "providers/common/der/der_rsa_sig.c", "providers/common/der/der_sm2_key.c", "providers/common/der/der_sm2_sig.c", "providers/common/digest_to_nid.c", "providers/common/provider_seeding.c", "providers/common/provider_util.c", "providers/common/securitycheck.c", "providers/common/securitycheck_default.c", "providers/implementations/asymciphers/rsa_enc.c", "providers/implementations/asymciphers/sm2_enc.c", "providers/implementations/ciphers/cipher_aes.c", "providers/implementations/ciphers/cipher_aes_cbc_hmac_sha.c", "providers/implementations/ciphers/cipher_aes_cbc_hmac_sha1_hw.c", "providers/implementations/ciphers/cipher_aes_cbc_hmac_sha256_hw.c", "providers/implementations/ciphers/cipher_aes_ccm.c", "providers/implementations/ciphers/cipher_aes_ccm_hw.c", "providers/implementations/ciphers/cipher_aes_gcm.c", "providers/implementations/ciphers/cipher_aes_gcm_hw.c", "providers/implementations/ciphers/cipher_aes_hw.c", "providers/implementations/ciphers/cipher_aes_ocb.c", "providers/implementations/ciphers/cipher_aes_ocb_hw.c", "providers/implementations/ciphers/cipher_aes_siv.c", "providers/implementations/ciphers/cipher_aes_siv_hw.c", "providers/implementations/ciphers/cipher_aes_wrp.c", "providers/implementations/ciphers/cipher_aes_xts.c", "providers/implementations/ciphers/cipher_aes_xts_fips.c", "providers/implementations/ciphers/cipher_aes_xts_hw.c", "providers/implementations/ciphers/cipher_aria.c", "providers/implementations/ciphers/cipher_aria_ccm.c", "providers/implementations/ciphers/cipher_aria_ccm_hw.c", "providers/implementations/ciphers/cipher_aria_gcm.c", "providers/implementations/ciphers/cipher_aria_gcm_hw.c", "providers/implementations/ciphers/cipher_aria_hw.c", "providers/implementations/ciphers/cipher_camellia.c", "providers/implementations/ciphers/cipher_camellia_hw.c", "providers/implementations/ciphers/cipher_chacha20.c", "providers/implementations/ciphers/cipher_chacha20_hw.c", "providers/implementations/ciphers/cipher_chacha20_poly1305.c", "providers/implementations/ciphers/cipher_chacha20_poly1305_hw.c", "providers/implementations/ciphers/cipher_cts.c", "providers/implementations/ciphers/cipher_null.c", "providers/implementations/ciphers/cipher_sm4.c", "providers/implementations/ciphers/cipher_sm4_hw.c", "providers/implementations/ciphers/cipher_tdes.c", "providers/implementations/ciphers/cipher_tdes_common.c", "providers/implementations/ciphers/cipher_tdes_default.c", "providers/implementations/ciphers/cipher_tdes_default_hw.c", "providers/implementations/ciphers/cipher_tdes_hw.c", "providers/implementations/ciphers/cipher_tdes_wrap.c", "providers/implementations/ciphers/cipher_tdes_wrap_hw.c", "providers/implementations/digests/blake2_prov.c", "providers/implementations/digests/blake2b_prov.c", "providers/implementations/digests/blake2s_prov.c", "providers/implementations/digests/md5_prov.c", "providers/implementations/digests/md5_sha1_prov.c", "providers/implementations/digests/null_prov.c", "providers/implementations/digests/ripemd_prov.c", "providers/implementations/digests/sha2_prov.c", "providers/implementations/digests/sha3_prov.c", "providers/implementations/digests/sm3_prov.c", "providers/implementations/encode_decode/decode_der2key.c", "providers/implementations/encode_decode/decode_epki2pki.c", "providers/implementations/encode_decode/decode_msblob2key.c", "providers/implementations/encode_decode/decode_pem2der.c", "providers/implementations/encode_decode/decode_pvk2key.c", "providers/implementations/encode_decode/decode_spki2typespki.c", "providers/implementations/encode_decode/encode_key2any.c", "providers/implementations/encode_decode/encode_key2blob.c", "providers/implementations/encode_decode/encode_key2ms.c", "providers/implementations/encode_decode/encode_key2text.c", "providers/implementations/encode_decode/endecoder_common.c", "providers/implementations/exchange/dh_exch.c", "providers/implementations/exchange/ecdh_exch.c", "providers/implementations/exchange/ecx_exch.c", "providers/implementations/exchange/kdf_exch.c", "providers/implementations/kdfs/hkdf.c", "providers/implementations/kdfs/kbkdf.c", "providers/implementations/kdfs/krb5kdf.c", "providers/implementations/kdfs/pbkdf2.c", "providers/implementations/kdfs/pbkdf2_fips.c", "providers/implementations/kdfs/pkcs12kdf.c", "providers/implementations/kdfs/scrypt.c", "providers/implementations/kdfs/sshkdf.c", "providers/implementations/kdfs/sskdf.c", "providers/implementations/kdfs/tls1_prf.c", "providers/implementations/kdfs/x942kdf.c", "providers/implementations/kem/rsa_kem.c", "providers/implementations/keymgmt/dh_kmgmt.c", "providers/implementations/keymgmt/dsa_kmgmt.c", "providers/implementations/keymgmt/ec_kmgmt.c", "providers/implementations/keymgmt/ecx_kmgmt.c", "providers/implementations/keymgmt/kdf_legacy_kmgmt.c", "providers/implementations/keymgmt/mac_legacy_kmgmt.c", "providers/implementations/keymgmt/rsa_kmgmt.c", "providers/implementations/macs/blake2b_mac.c", "providers/implementations/macs/blake2s_mac.c", "providers/implementations/macs/cmac_prov.c", "providers/implementations/macs/gmac_prov.c", "providers/implementations/macs/hmac_prov.c", "providers/implementations/macs/kmac_prov.c", "providers/implementations/macs/poly1305_prov.c", "providers/implementations/macs/siphash_prov.c", "providers/implementations/rands/crngt.c", "providers/implementations/rands/drbg.c", "providers/implementations/rands/drbg_ctr.c", "providers/implementations/rands/drbg_hash.c", "providers/implementations/rands/drbg_hmac.c", "providers/implementations/rands/seed_src.c", "providers/implementations/rands/seeding/rand_cpu_x86.c", "providers/implementations/rands/seeding/rand_tsc.c", "providers/implementations/rands/seeding/rand_unix.c", "providers/implementations/rands/seeding/rand_win.c", "providers/implementations/rands/test_rng.c", "providers/implementations/signature/dsa_sig.c", "providers/implementations/signature/ecdsa_sig.c", "providers/implementations/signature/eddsa_sig.c", "providers/implementations/signature/mac_legacy_sig.c", "providers/implementations/signature/rsa_sig.c", "providers/implementations/signature/sm2_sig.c", "providers/implementations/storemgmt/file_store.c", "providers/implementations/storemgmt/file_store_any2obj.c", "ssl/s3_cbc.c", ] liblegacy_sources = [ "providers/implementations/ciphers/cipher_blowfish.c", "providers/implementations/ciphers/cipher_blowfish_hw.c", "providers/implementations/ciphers/cipher_cast5.c", "providers/implementations/ciphers/cipher_cast5_hw.c", "providers/implementations/ciphers/cipher_des.c", "providers/implementations/ciphers/cipher_des_hw.c", "providers/implementations/ciphers/cipher_desx.c", "providers/implementations/ciphers/cipher_desx_hw.c", "providers/implementations/ciphers/cipher_idea.c", "providers/implementations/ciphers/cipher_idea_hw.c", "providers/implementations/ciphers/cipher_rc2.c", "providers/implementations/ciphers/cipher_rc2_hw.c", "providers/implementations/ciphers/cipher_rc4.c", "providers/implementations/ciphers/cipher_rc4_hmac_md5.c", "providers/implementations/ciphers/cipher_rc4_hmac_md5_hw.c", "providers/implementations/ciphers/cipher_rc4_hw.c", "providers/implementations/ciphers/cipher_seed.c", "providers/implementations/ciphers/cipher_seed_hw.c", "providers/implementations/digests/md4_prov.c", "providers/implementations/digests/mdc2_prov.c", "providers/implementations/digests/wp_prov.c", "providers/implementations/kdfs/pbkdf1.c", ] ohos_source_set("crypto_source") { subsystem_name = "thirdparty" part_name = "openssl" sources = [ "crypto/aes/aes_cfb.c", "crypto/aes/aes_ecb.c", "crypto/aes/aes_ige.c", "crypto/aes/aes_misc.c", "crypto/aes/aes_ofb.c", "crypto/aes/aes_wrap.c", "crypto/aria/aria.c", "crypto/asn1/a_bitstr.c", "crypto/asn1/a_d2i_fp.c", "crypto/asn1/a_digest.c", "crypto/asn1/a_dup.c", "crypto/asn1/a_gentm.c", "crypto/asn1/a_i2d_fp.c", "crypto/asn1/a_int.c", "crypto/asn1/a_mbstr.c", "crypto/asn1/a_object.c", "crypto/asn1/a_octet.c", "crypto/asn1/a_print.c", "crypto/asn1/a_sign.c", "crypto/asn1/a_strex.c", "crypto/asn1/a_strnid.c", "crypto/asn1/a_time.c", "crypto/asn1/a_type.c", "crypto/asn1/a_utctm.c", "crypto/asn1/a_utf8.c", "crypto/asn1/a_verify.c", "crypto/asn1/ameth_lib.c", "crypto/asn1/asn1_err.c", "crypto/asn1/asn1_gen.c", "crypto/asn1/asn1_item_list.c", "crypto/asn1/asn1_lib.c", "crypto/asn1/asn1_parse.c", "crypto/asn1/asn_mime.c", "crypto/asn1/asn_moid.c", "crypto/asn1/asn_mstbl.c", "crypto/asn1/asn_pack.c", "crypto/asn1/bio_asn1.c", "crypto/asn1/bio_ndef.c", "crypto/asn1/d2i_param.c", "crypto/asn1/d2i_pr.c", "crypto/asn1/d2i_pu.c", "crypto/asn1/evp_asn1.c", "crypto/asn1/f_int.c", "crypto/asn1/f_string.c", "crypto/asn1/i2d_evp.c", "crypto/asn1/n_pkey.c", "crypto/asn1/nsseq.c", "crypto/asn1/p5_pbe.c", "crypto/asn1/p5_pbev2.c", "crypto/asn1/p5_scrypt.c", "crypto/asn1/p8_pkey.c", "crypto/asn1/t_bitst.c", "crypto/asn1/t_pkey.c", "crypto/asn1/t_spki.c", "crypto/asn1/tasn_dec.c", "crypto/asn1/tasn_enc.c", "crypto/asn1/tasn_fre.c", "crypto/asn1/tasn_new.c", "crypto/asn1/tasn_prn.c", "crypto/asn1/tasn_scn.c", "crypto/asn1/tasn_typ.c", "crypto/asn1/tasn_utl.c", "crypto/asn1/x_algor.c", "crypto/asn1/x_bignum.c", "crypto/asn1/x_info.c", "crypto/asn1/x_int64.c", "crypto/asn1/x_long.c", "crypto/asn1/x_pkey.c", "crypto/asn1/x_sig.c", "crypto/asn1/x_spki.c", "crypto/asn1/x_val.c", "crypto/asn1_dsa.c", "crypto/async/arch/async_null.c", "crypto/async/arch/async_posix.c", "crypto/async/arch/async_win.c", "crypto/async/async.c", "crypto/async/async_err.c", "crypto/async/async_wait.c", "crypto/bf/bf_cfb64.c", "crypto/bf/bf_ecb.c", "crypto/bf/bf_enc.c", "crypto/bf/bf_ofb64.c", "crypto/bf/bf_skey.c", "crypto/bio/bf_buff.c", "crypto/bio/bf_lbuf.c", "crypto/bio/bf_nbio.c", "crypto/bio/bf_null.c", "crypto/bio/bf_prefix.c", "crypto/bio/bf_readbuff.c", "crypto/bio/bio_addr.c", "crypto/bio/bio_cb.c", "crypto/bio/bio_dump.c", "crypto/bio/bio_err.c", "crypto/bio/bio_lib.c", "crypto/bio/bio_meth.c", "crypto/bio/bio_print.c", "crypto/bio/bio_sock.c", "crypto/bio/bio_sock2.c", "crypto/bio/bss_acpt.c", "crypto/bio/bss_bio.c", "crypto/bio/bss_conn.c", "crypto/bio/bss_core.c", "crypto/bio/bss_dgram.c", "crypto/bio/bss_fd.c", "crypto/bio/bss_file.c", "crypto/bio/bss_log.c", "crypto/bio/bss_mem.c", "crypto/bio/bss_null.c", "crypto/bio/bss_sock.c", "crypto/bio/ossl_core_bio.c", "crypto/bn/bn_add.c", "crypto/bn/bn_blind.c", "crypto/bn/bn_const.c", "crypto/bn/bn_conv.c", "crypto/bn/bn_ctx.c", "crypto/bn/bn_depr.c", "crypto/bn/bn_dh.c", "crypto/bn/bn_div.c", "crypto/bn/bn_err.c", "crypto/bn/bn_exp.c", "crypto/bn/bn_exp2.c", "crypto/bn/bn_gcd.c", "crypto/bn/bn_gf2m.c", "crypto/bn/bn_intern.c", "crypto/bn/bn_kron.c", "crypto/bn/bn_lib.c", "crypto/bn/bn_mod.c", "crypto/bn/bn_mont.c", "crypto/bn/bn_mpi.c", "crypto/bn/bn_mul.c", "crypto/bn/bn_nist.c", "crypto/bn/bn_prime.c", "crypto/bn/bn_print.c", "crypto/bn/bn_rand.c", "crypto/bn/bn_recp.c", "crypto/bn/bn_rsa_fips186_4.c", "crypto/bn/bn_shift.c", "crypto/bn/bn_sqr.c", "crypto/bn/bn_sqrt.c", "crypto/bn/bn_srp.c", "crypto/bn/bn_word.c", "crypto/bn/bn_x931p.c", "crypto/bn/rsa_sup_mul.c", "crypto/bsearch.c", "crypto/buffer/buf_err.c", "crypto/buffer/buffer.c", "crypto/camellia/cmll_cfb.c", "crypto/camellia/cmll_ctr.c", "crypto/camellia/cmll_ecb.c", "crypto/camellia/cmll_misc.c", "crypto/camellia/cmll_ofb.c", "crypto/cast/c_cfb64.c", "crypto/cast/c_ecb.c", "crypto/cast/c_enc.c", "crypto/cast/c_ofb64.c", "crypto/cast/c_skey.c", "crypto/cmac/cmac.c", "crypto/cmp/cmp_asn.c", "crypto/cmp/cmp_client.c", "crypto/cmp/cmp_ctx.c", "crypto/cmp/cmp_err.c", "crypto/cmp/cmp_hdr.c", "crypto/cmp/cmp_http.c", "crypto/cmp/cmp_msg.c", "crypto/cmp/cmp_protect.c", "crypto/cmp/cmp_server.c", "crypto/cmp/cmp_status.c", "crypto/cmp/cmp_util.c", "crypto/cmp/cmp_vfy.c", "crypto/cms/cms_asn1.c", "crypto/cms/cms_att.c", "crypto/cms/cms_cd.c", "crypto/cms/cms_dd.c", "crypto/cms/cms_dh.c", "crypto/cms/cms_ec.c", "crypto/cms/cms_enc.c", "crypto/cms/cms_env.c", "crypto/cms/cms_err.c", "crypto/cms/cms_ess.c", "crypto/cms/cms_io.c", "crypto/cms/cms_kari.c", "crypto/cms/cms_lib.c", "crypto/cms/cms_pwri.c", "crypto/cms/cms_rsa.c", "crypto/cms/cms_sd.c", "crypto/cms/cms_smime.c", "crypto/comp/c_zlib.c", "crypto/comp/comp_err.c", "crypto/comp/comp_lib.c", "crypto/conf/conf_api.c", "crypto/conf/conf_def.c", "crypto/conf/conf_err.c", "crypto/conf/conf_lib.c", "crypto/conf/conf_mall.c", "crypto/conf/conf_mod.c", "crypto/conf/conf_sap.c", "crypto/conf/conf_ssl.c", "crypto/context.c", "crypto/core_algorithm.c", "crypto/core_fetch.c", "crypto/core_namemap.c", "crypto/cpt_err.c", "crypto/cpuid.c", "crypto/crmf/crmf_asn.c", "crypto/crmf/crmf_err.c", "crypto/crmf/crmf_lib.c", "crypto/crmf/crmf_pbm.c", "crypto/cryptlib.c", "crypto/ct/ct_b64.c", "crypto/ct/ct_err.c", "crypto/ct/ct_log.c", "crypto/ct/ct_oct.c", "crypto/ct/ct_policy.c", "crypto/ct/ct_prn.c", "crypto/ct/ct_sct.c", "crypto/ct/ct_sct_ctx.c", "crypto/ct/ct_vfy.c", "crypto/ct/ct_x509v3.c", "crypto/ctype.c", "crypto/cversion.c", "crypto/der_writer.c", "crypto/des/cbc_cksm.c", "crypto/des/cbc_enc.c", "crypto/des/cfb64ede.c", "crypto/des/cfb64enc.c", "crypto/des/cfb_enc.c", "crypto/des/des_enc.c", "crypto/des/ecb3_enc.c", "crypto/des/ecb_enc.c", "crypto/des/fcrypt.c", "crypto/des/fcrypt_b.c", "crypto/des/ofb64ede.c", "crypto/des/ofb64enc.c", "crypto/des/ofb_enc.c", "crypto/des/pcbc_enc.c", "crypto/des/qud_cksm.c", "crypto/des/rand_key.c", "crypto/des/set_key.c", "crypto/des/str2key.c", "crypto/des/xcbc_enc.c", "crypto/dh/dh_ameth.c", "crypto/dh/dh_asn1.c", "crypto/dh/dh_backend.c", "crypto/dh/dh_check.c", "crypto/dh/dh_depr.c", "crypto/dh/dh_err.c", "crypto/dh/dh_gen.c", "crypto/dh/dh_group_params.c", "crypto/dh/dh_kdf.c", "crypto/dh/dh_key.c", "crypto/dh/dh_lib.c", "crypto/dh/dh_meth.c", "crypto/dh/dh_pmeth.c", "crypto/dh/dh_prn.c", "crypto/dh/dh_rfc5114.c", "crypto/dsa/dsa_ameth.c", "crypto/dsa/dsa_asn1.c", "crypto/dsa/dsa_backend.c", "crypto/dsa/dsa_check.c", "crypto/dsa/dsa_depr.c", "crypto/dsa/dsa_err.c", "crypto/dsa/dsa_gen.c", "crypto/dsa/dsa_key.c", "crypto/dsa/dsa_lib.c", "crypto/dsa/dsa_meth.c", "crypto/dsa/dsa_ossl.c", "crypto/dsa/dsa_pmeth.c", "crypto/dsa/dsa_prn.c", "crypto/dsa/dsa_sign.c", "crypto/dsa/dsa_vrf.c", "crypto/dso/dso_dl.c", "crypto/dso/dso_dlfcn.c", "crypto/dso/dso_err.c", "crypto/dso/dso_lib.c", "crypto/dso/dso_openssl.c", "crypto/dso/dso_vms.c", "crypto/dso/dso_win32.c", "crypto/ebcdic.c", "crypto/ec/curve25519.c", "crypto/ec/curve448/arch_32/f_impl32.c", "crypto/ec/curve448/arch_64/f_impl64.c", "crypto/ec/curve448/curve448.c", "crypto/ec/curve448/curve448_tables.c", "crypto/ec/curve448/eddsa.c", "crypto/ec/curve448/f_generic.c", "crypto/ec/curve448/scalar.c", "crypto/ec/ec2_oct.c", "crypto/ec/ec2_smpl.c", "crypto/ec/ec_ameth.c", "crypto/ec/ec_asn1.c", "crypto/ec/ec_backend.c", "crypto/ec/ec_check.c", "crypto/ec/ec_curve.c", "crypto/ec/ec_cvt.c", "crypto/ec/ec_deprecated.c", "crypto/ec/ec_err.c", "crypto/ec/ec_key.c", "crypto/ec/ec_kmeth.c", "crypto/ec/ec_lib.c", "crypto/ec/ec_mult.c", "crypto/ec/ec_oct.c", "crypto/ec/ec_pmeth.c", "crypto/ec/ec_print.c", "crypto/ec/ecdh_kdf.c", "crypto/ec/ecdh_ossl.c", "crypto/ec/ecdsa_ossl.c", "crypto/ec/ecdsa_sign.c", "crypto/ec/ecdsa_vrf.c", "crypto/ec/eck_prn.c", "crypto/ec/ecp_mont.c", "crypto/ec/ecp_nist.c", "crypto/ec/ecp_nistz256.c", "crypto/ec/ecp_oct.c", "crypto/ec/ecp_smpl.c", "crypto/ec/ecx_backend.c", "crypto/ec/ecx_key.c", "crypto/ec/ecx_meth.c", "crypto/encode_decode/decoder_err.c", "crypto/encode_decode/decoder_lib.c", "crypto/encode_decode/decoder_meth.c", "crypto/encode_decode/decoder_pkey.c", "crypto/encode_decode/encoder_err.c", "crypto/encode_decode/encoder_lib.c", "crypto/encode_decode/encoder_meth.c", "crypto/encode_decode/encoder_pkey.c", "crypto/engine/eng_all.c", "crypto/engine/eng_cnf.c", "crypto/engine/eng_ctrl.c", "crypto/engine/eng_dyn.c", "crypto/engine/eng_err.c", "crypto/engine/eng_fat.c", "crypto/engine/eng_init.c", "crypto/engine/eng_lib.c", "crypto/engine/eng_list.c", "crypto/engine/eng_openssl.c", "crypto/engine/eng_pkey.c", "crypto/engine/eng_rdrand.c", "crypto/engine/eng_table.c", "crypto/engine/tb_asnmth.c", "crypto/engine/tb_cipher.c", "crypto/engine/tb_dh.c", "crypto/engine/tb_digest.c", "crypto/engine/tb_dsa.c", "crypto/engine/tb_eckey.c", "crypto/engine/tb_pkmeth.c", "crypto/engine/tb_rand.c", "crypto/engine/tb_rsa.c", "crypto/err/err.c", "crypto/err/err_all.c", "crypto/err/err_all_legacy.c", "crypto/err/err_blocks.c", "crypto/err/err_prn.c", "crypto/ess/ess_asn1.c", "crypto/ess/ess_err.c", "crypto/ess/ess_lib.c", "crypto/evp/asymcipher.c", "crypto/evp/bio_b64.c", "crypto/evp/bio_enc.c", "crypto/evp/bio_md.c", "crypto/evp/bio_ok.c", "crypto/evp/c_allc.c", "crypto/evp/c_alld.c", "crypto/evp/cmeth_lib.c", "crypto/evp/ctrl_params_translate.c", "crypto/evp/dh_ctrl.c", "crypto/evp/dh_support.c", "crypto/evp/digest.c", "crypto/evp/dsa_ctrl.c", "crypto/evp/e_aes.c", "crypto/evp/e_aes_cbc_hmac_sha1.c", "crypto/evp/e_aes_cbc_hmac_sha256.c", "crypto/evp/e_aria.c", "crypto/evp/e_bf.c", "crypto/evp/e_camellia.c", "crypto/evp/e_cast.c", "crypto/evp/e_chacha20_poly1305.c", "crypto/evp/e_des.c", "crypto/evp/e_des3.c", "crypto/evp/e_idea.c", "crypto/evp/e_null.c", "crypto/evp/e_old.c", "crypto/evp/e_rc2.c", "crypto/evp/e_rc4.c", "crypto/evp/e_rc4_hmac_md5.c", "crypto/evp/e_rc5.c", "crypto/evp/e_seed.c", "crypto/evp/e_sm4.c", "crypto/evp/e_xcbc_d.c", "crypto/evp/ec_ctrl.c", "crypto/evp/ec_support.c", "crypto/evp/encode.c", "crypto/evp/evp_cnf.c", "crypto/evp/evp_enc.c", "crypto/evp/evp_err.c", "crypto/evp/evp_fetch.c", "crypto/evp/evp_key.c", "crypto/evp/evp_lib.c", "crypto/evp/evp_pbe.c", "crypto/evp/evp_pkey.c", "crypto/evp/evp_rand.c", "crypto/evp/evp_utils.c", "crypto/evp/exchange.c", "crypto/evp/kdf_lib.c", "crypto/evp/kdf_meth.c", "crypto/evp/kem.c", "crypto/evp/keymgmt_lib.c", "crypto/evp/keymgmt_meth.c", "crypto/evp/legacy_blake2.c", "crypto/evp/legacy_md4.c", "crypto/evp/legacy_md5.c", "crypto/evp/legacy_md5_sha1.c", "crypto/evp/legacy_mdc2.c", "crypto/evp/legacy_ripemd.c", "crypto/evp/legacy_sha.c", "crypto/evp/legacy_wp.c", "crypto/evp/m_null.c", "crypto/evp/m_sigver.c", "crypto/evp/mac_lib.c", "crypto/evp/mac_meth.c", "crypto/evp/names.c", "crypto/evp/p5_crpt.c", "crypto/evp/p5_crpt2.c", "crypto/evp/p_dec.c", "crypto/evp/p_enc.c", "crypto/evp/p_legacy.c", "crypto/evp/p_lib.c", "crypto/evp/p_open.c", "crypto/evp/p_seal.c", "crypto/evp/p_sign.c", "crypto/evp/p_verify.c", "crypto/evp/pbe_scrypt.c", "crypto/evp/pmeth_check.c", "crypto/evp/pmeth_gn.c", "crypto/evp/pmeth_lib.c", "crypto/evp/signature.c", "crypto/ex_data.c", "crypto/ffc/ffc_backend.c", "crypto/ffc/ffc_dh.c", "crypto/ffc/ffc_key_generate.c", "crypto/ffc/ffc_key_validate.c", "crypto/ffc/ffc_params.c", "crypto/ffc/ffc_params_generate.c", "crypto/ffc/ffc_params_validate.c", "crypto/getenv.c", "crypto/hmac/hmac.c", "crypto/http/http_client.c", "crypto/http/http_err.c", "crypto/http/http_lib.c", "crypto/idea/i_cbc.c", "crypto/idea/i_cfb64.c", "crypto/idea/i_ecb.c", "crypto/idea/i_ofb64.c", "crypto/idea/i_skey.c", "crypto/info.c", "crypto/init.c", "crypto/initthread.c", "crypto/kdf/kdf_err.c", "crypto/lhash/lh_stats.c", "crypto/lhash/lhash.c", "crypto/md4/md4_dgst.c", "crypto/md4/md4_one.c", "crypto/md5/md5_dgst.c", "crypto/md5/md5_one.c", "crypto/md5/md5_sha1.c", "crypto/mdc2/mdc2_one.c", "crypto/mdc2/mdc2dgst.c", "crypto/mem.c", "crypto/mem_sec.c", "crypto/modes/cbc128.c", "crypto/modes/ccm128.c", "crypto/modes/cfb128.c", "crypto/modes/ctr128.c", "crypto/modes/cts128.c", "crypto/modes/gcm128.c", "crypto/modes/ocb128.c", "crypto/modes/ofb128.c", "crypto/modes/siv128.c", "crypto/modes/wrap128.c", "crypto/modes/xts128.c", "crypto/o_dir.c", "crypto/o_fopen.c", "crypto/o_init.c", "crypto/o_str.c", "crypto/o_time.c", "crypto/objects/o_names.c", "crypto/objects/obj_dat.c", "crypto/objects/obj_err.c", "crypto/objects/obj_lib.c", "crypto/objects/obj_xref.c", "crypto/ocsp/ocsp_asn.c", "crypto/ocsp/ocsp_cl.c", "crypto/ocsp/ocsp_err.c", "crypto/ocsp/ocsp_ext.c", "crypto/ocsp/ocsp_http.c", "crypto/ocsp/ocsp_lib.c", "crypto/ocsp/ocsp_prn.c", "crypto/ocsp/ocsp_srv.c", "crypto/ocsp/ocsp_vfy.c", "crypto/ocsp/v3_ocsp.c", "crypto/packet.c", "crypto/param_build.c", "crypto/param_build_set.c", "crypto/params.c", "crypto/params_dup.c", "crypto/params_from_text.c", "crypto/passphrase.c", "crypto/pem/pem_all.c", "crypto/pem/pem_err.c", "crypto/pem/pem_info.c", "crypto/pem/pem_lib.c", "crypto/pem/pem_oth.c", "crypto/pem/pem_pk8.c", "crypto/pem/pem_pkey.c", "crypto/pem/pem_sign.c", "crypto/pem/pem_x509.c", "crypto/pem/pem_xaux.c", "crypto/pem/pvkfmt.c", "crypto/pkcs12/p12_add.c", "crypto/pkcs12/p12_asn.c", "crypto/pkcs12/p12_attr.c", "crypto/pkcs12/p12_crpt.c", "crypto/pkcs12/p12_crt.c", "crypto/pkcs12/p12_decr.c", "crypto/pkcs12/p12_init.c", "crypto/pkcs12/p12_key.c", "crypto/pkcs12/p12_kiss.c", "crypto/pkcs12/p12_mutl.c", "crypto/pkcs12/p12_npas.c", "crypto/pkcs12/p12_p8d.c", "crypto/pkcs12/p12_p8e.c", "crypto/pkcs12/p12_sbag.c", "crypto/pkcs12/p12_utl.c", "crypto/pkcs12/pk12err.c", "crypto/pkcs7/bio_pk7.c", "crypto/pkcs7/pk7_asn1.c", "crypto/pkcs7/pk7_attr.c", "crypto/pkcs7/pk7_doit.c", "crypto/pkcs7/pk7_lib.c", "crypto/pkcs7/pk7_mime.c", "crypto/pkcs7/pk7_smime.c", "crypto/pkcs7/pkcs7err.c", "crypto/poly1305/poly1305.c", "crypto/property/defn_cache.c", "crypto/property/property.c", "crypto/property/property_err.c", "crypto/property/property_parse.c", "crypto/property/property_query.c", "crypto/property/property_string.c", "crypto/provider.c", "crypto/provider_child.c", "crypto/provider_conf.c", "crypto/provider_core.c", "crypto/provider_predefined.c", "crypto/punycode.c", "crypto/rand/prov_seed.c", "crypto/rand/rand_deprecated.c", "crypto/rand/rand_err.c", "crypto/rand/rand_lib.c", "crypto/rand/rand_meth.c", "crypto/rand/rand_pool.c", "crypto/rand/randfile.c", "crypto/rc2/rc2_cbc.c", "crypto/rc2/rc2_ecb.c", "crypto/rc2/rc2_skey.c", "crypto/rc2/rc2cfb64.c", "crypto/rc2/rc2ofb64.c", "crypto/ripemd/rmd_dgst.c", "crypto/ripemd/rmd_one.c", "crypto/rsa/rsa_ameth.c", "crypto/rsa/rsa_asn1.c", "crypto/rsa/rsa_backend.c", "crypto/rsa/rsa_chk.c", "crypto/rsa/rsa_crpt.c", "crypto/rsa/rsa_depr.c", "crypto/rsa/rsa_err.c", "crypto/rsa/rsa_gen.c", "crypto/rsa/rsa_lib.c", "crypto/rsa/rsa_meth.c", "crypto/rsa/rsa_mp.c", "crypto/rsa/rsa_mp_names.c", "crypto/rsa/rsa_none.c", "crypto/rsa/rsa_oaep.c", "crypto/rsa/rsa_ossl.c", "crypto/rsa/rsa_pk1.c", "crypto/rsa/rsa_pmeth.c", "crypto/rsa/rsa_prn.c", "crypto/rsa/rsa_pss.c", "crypto/rsa/rsa_saos.c", "crypto/rsa/rsa_schemes.c", "crypto/rsa/rsa_sign.c", "crypto/rsa/rsa_sp800_56b_check.c", "crypto/rsa/rsa_sp800_56b_gen.c", "crypto/rsa/rsa_x931.c", "crypto/rsa/rsa_x931g.c", "crypto/seed/seed.c", "crypto/seed/seed_cbc.c", "crypto/seed/seed_cfb.c", "crypto/seed/seed_ecb.c", "crypto/seed/seed_ofb.c", "crypto/self_test_core.c", "crypto/sha/sha1_one.c", "crypto/sha/sha1dgst.c", "crypto/sha/sha256.c", "crypto/sha/sha3.c", "crypto/sha/sha512.c", "crypto/siphash/siphash.c", "crypto/sm2/sm2_crypt.c", "crypto/sm2/sm2_err.c", "crypto/sm2/sm2_key.c", "crypto/sm2/sm2_sign.c", "crypto/sm3/legacy_sm3.c", "crypto/sm3/sm3.c", "crypto/sm4/sm4.c", "crypto/sparse_array.c", "crypto/srp/srp_lib.c", "crypto/srp/srp_vfy.c", "crypto/stack/stack.c", "crypto/store/store_err.c", "crypto/store/store_init.c", "crypto/store/store_lib.c", "crypto/store/store_meth.c", "crypto/store/store_register.c", "crypto/store/store_result.c", "crypto/store/store_strings.c", "crypto/threads_lib.c", "crypto/threads_none.c", "crypto/threads_pthread.c", "crypto/threads_win.c", "crypto/trace.c", "crypto/ts/ts_asn1.c", "crypto/ts/ts_conf.c", "crypto/ts/ts_err.c", "crypto/ts/ts_lib.c", "crypto/ts/ts_req_print.c", "crypto/ts/ts_req_utils.c", "crypto/ts/ts_rsp_print.c", "crypto/ts/ts_rsp_sign.c", "crypto/ts/ts_rsp_utils.c", "crypto/ts/ts_rsp_verify.c", "crypto/ts/ts_verify_ctx.c", "crypto/txt_db/txt_db.c", "crypto/ui/ui_err.c", "crypto/ui/ui_lib.c", "crypto/ui/ui_null.c", "crypto/ui/ui_openssl.c", "crypto/ui/ui_util.c", "crypto/uid.c", "crypto/whrlpool/wp_dgst.c", "crypto/x509/by_dir.c", "crypto/x509/by_file.c", "crypto/x509/by_store.c", "crypto/x509/pcy_cache.c", "crypto/x509/pcy_data.c", "crypto/x509/pcy_lib.c", "crypto/x509/pcy_map.c", "crypto/x509/pcy_node.c", "crypto/x509/pcy_tree.c", "crypto/x509/t_crl.c", "crypto/x509/t_req.c", "crypto/x509/t_x509.c", "crypto/x509/v3_addr.c", "crypto/x509/v3_admis.c", "crypto/x509/v3_akeya.c", "crypto/x509/v3_akid.c", "crypto/x509/v3_asid.c", "crypto/x509/v3_bcons.c", "crypto/x509/v3_bitst.c", "crypto/x509/v3_conf.c", "crypto/x509/v3_cpols.c", "crypto/x509/v3_crld.c", "crypto/x509/v3_enum.c", "crypto/x509/v3_extku.c", "crypto/x509/v3_genn.c", "crypto/x509/v3_ia5.c", "crypto/x509/v3_info.c", "crypto/x509/v3_int.c", "crypto/x509/v3_ist.c", "crypto/x509/v3_lib.c", "crypto/x509/v3_ncons.c", "crypto/x509/v3_pci.c", "crypto/x509/v3_pcia.c", "crypto/x509/v3_pcons.c", "crypto/x509/v3_pku.c", "crypto/x509/v3_pmaps.c", "crypto/x509/v3_prn.c", "crypto/x509/v3_purp.c", "crypto/x509/v3_san.c", "crypto/x509/v3_skid.c", "crypto/x509/v3_sxnet.c", "crypto/x509/v3_tlsf.c", "crypto/x509/v3_utf8.c", "crypto/x509/v3_utl.c", "crypto/x509/v3err.c", "crypto/x509/x509_att.c", "crypto/x509/x509_cmp.c", "crypto/x509/x509_d2.c", "crypto/x509/x509_def.c", "crypto/x509/x509_err.c", "crypto/x509/x509_ext.c", "crypto/x509/x509_lu.c", "crypto/x509/x509_meth.c", "crypto/x509/x509_obj.c", "crypto/x509/x509_r2x.c", "crypto/x509/x509_req.c", "crypto/x509/x509_set.c", "crypto/x509/x509_trust.c", "crypto/x509/x509_txt.c", "crypto/x509/x509_v3.c", "crypto/x509/x509_vfy.c", "crypto/x509/x509_vpm.c", "crypto/x509/x509cset.c", "crypto/x509/x509name.c", "crypto/x509/x509rset.c", "crypto/x509/x509spki.c", "crypto/x509/x509type.c", "crypto/x509/x_all.c", "crypto/x509/x_attrib.c", "crypto/x509/x_crl.c", "crypto/x509/x_exten.c", "crypto/x509/x_name.c", "crypto/x509/x_pubkey.c", "crypto/x509/x_req.c", "crypto/x509/x_x509.c", "crypto/x509/x_x509a.c", "engines/e_capi.c", "engines/e_padlock.c", "providers/baseprov.c", "providers/defltprov.c", "providers/legacyprov.c", "providers/nullprov.c", "providers/prov_running.c", ] sources += libcommon_common_sources sources += libcommon_build_all_generated_selected_platform_sources sources += libdefault_common_sources sources += libdefault_build_all_generated_selected_platform_sources sources += libcrypto_build_all_generated_selected_platform_sources sources += liblegacy_sources if (openssl_selected_platform == "linux-armv4") { sources += [ "crypto/aes/aes_cbc.c", "crypto/armcap.c", "crypto/bn/bn_asm.c", "crypto/camellia/camellia.c", "crypto/camellia/cmll_cbc.c", "crypto/rc4/rc4_enc.c", "crypto/rc4/rc4_skey.c", "crypto/whrlpool/wp_block.c", "engines/e_afalg.c", ] } else if (openssl_selected_platform == "linux-aarch64") { sources += [ "crypto/aes/aes_cbc.c", "crypto/aes/aes_core.c", "crypto/armcap.c", "crypto/bn/bn_asm.c", "crypto/camellia/camellia.c", "crypto/camellia/cmll_cbc.c", "crypto/rc4/rc4_enc.c", "crypto/rc4/rc4_skey.c", "crypto/whrlpool/wp_block.c", "engines/e_afalg.c", ] } else if (openssl_selected_platform == "darwin64-x86_64-cc") { sources += [ "crypto/bn/asm/x86_64-gcc.c", "crypto/bn/rsaz_exp.c", "crypto/bn/rsaz_exp_x2.c", ] } else if (openssl_selected_platform == "darwin64-arm64-cc") { sources += [ "crypto/aes/aes_cbc.c", "crypto/aes/aes_core.c", "crypto/armcap.c", "crypto/bn/bn_asm.c", "crypto/camellia/camellia.c", "crypto/camellia/cmll_cbc.c", "crypto/rc4/rc4_enc.c", "crypto/rc4/rc4_skey.c", "crypto/whrlpool/wp_block.c", ] } else if (openssl_selected_platform == "linux-x86_64") { sources += [ "crypto/bn/asm/x86_64-gcc.c", "crypto/bn/rsaz_exp.c", "crypto/bn/rsaz_exp_x2.c", "engines/e_afalg.c", ] } else if (openssl_selected_platform == "mingw64") { sources += [ "crypto/bn/asm/x86_64-gcc.c", "crypto/bn/rsaz_exp.c", "crypto/bn/rsaz_exp_x2.c", "crypto/dllmain.c", ] } configs = [ ":crypto_config_private" ] public_configs = [ ":crypto_config_public" ] deps = [ ":openssl_build_all_generated" ] } ohos_static_library("libcrypto_static") { subsystem_name = "thirdparty" part_name = "openssl" deps = [ ":crypto_source" ] public_configs = [ ":crypto_config_public" ] complete_static_lib = true } if (is_mingw || is_mac) { ohos_shared_library("libcrypto_restool") { deps = [ ":crypto_source" ] subsystem_name = "thirdparty" part_name = "openssl" public_configs = [ ":crypto_config_public" ] install_images = [ "system", "updater", ] } } ohos_shared_library("libcrypto_shared") { deps = [ ":crypto_source" ] output_name = "libcrypto_openssl" subsystem_name = "thirdparty" part_name = "openssl" public_configs = [ ":crypto_config_public" ] install_images = [ "system", "updater", ] } unused_variables = [] unused_variables += unused_variables unused_variables += crypto_config_common_private_include_dirs unused_variables += crypto_config_common_public_include_dirs unused_variables += crypto_config_common_cflags unused_variables += crypto_config_linux_armv4_cflags unused_variables += crypto_config_linux_aarch64_cflags unused_variables += crypto_config_darwin64_x86_64_cc_cflags unused_variables += crypto_config_darwin64_arm64_cc_cflags unused_variables += crypto_config_linux_x86_64_cflags unused_variables += crypto_config_mingw64_cflags unused_variables += libcommon_common_sources unused_variables += libdefault_common_sources unused_variables += libcrypto_build_all_generated_linux_armv4_sources unused_variables += libcrypto_build_all_generated_linux_aarch64_sources unused_variables += libcrypto_build_all_generated_darwin64_x86_64_cc_sources unused_variables += libcrypto_build_all_generated_darwin64_arm64_cc_sources unused_variables += libcrypto_build_all_generated_linux_x86_64_sources unused_variables += libcrypto_build_all_generated_mingw64_sources config("ssl_config_private") { include_dirs = crypto_config_common_private_include_dirs cflags = crypto_config_common_cflags + crypto_config_current_platform_cflags + openssl_internal_cflags } config("ssl_config_public") { include_dirs = crypto_config_common_public_include_dirs } ohos_source_set("ssl_source") { subsystem_name = "thirdparty" part_name = "openssl" sources = [ "ssl/bio_ssl.c", "ssl/d1_lib.c", "ssl/d1_msg.c", "ssl/d1_srtp.c", "ssl/methods.c", "ssl/pqueue.c", "ssl/record/dtls1_bitmap.c", "ssl/record/rec_layer_d1.c", "ssl/record/rec_layer_s3.c", "ssl/record/ssl3_buffer.c", "ssl/record/ssl3_record.c", "ssl/record/ssl3_record_tls13.c", # ssl/s3_cbc.c has been added into libdefault_common_sources "ssl/s3_enc.c", "ssl/s3_lib.c", "ssl/s3_msg.c", "ssl/ssl_asn1.c", "ssl/ssl_cert.c", "ssl/ssl_ciph.c", "ssl/ssl_conf.c", "ssl/ssl_err.c", "ssl/ssl_err_legacy.c", "ssl/ssl_init.c", "ssl/ssl_lib.c", "ssl/ssl_mcnf.c", "ssl/ssl_rsa.c", "ssl/ssl_rsa_legacy.c", "ssl/ssl_sess.c", "ssl/ssl_stat.c", "ssl/ssl_txt.c", "ssl/ssl_utst.c", # ssl/record/tls_pad.c has been added into libcommon_common_sources "ssl/statem/extensions.c", "ssl/statem/extensions_clnt.c", "ssl/statem/extensions_cust.c", "ssl/statem/extensions_srvr.c", "ssl/statem/statem.c", "ssl/statem/statem_clnt.c", "ssl/statem/statem_dtls.c", "ssl/statem/statem_lib.c", "ssl/statem/statem_srvr.c", "ssl/t1_enc.c", "ssl/t1_lib.c", "ssl/t1_trce.c", "ssl/tls13_enc.c", "ssl/tls_depr.c", "ssl/tls_srp.c", ] configs = [ ":ssl_config_private" ] public_configs = [ ":ssl_config_public" ] deps = [ ":openssl_build_all_generated" ] } ohos_static_library("libssl_static") { subsystem_name = "thirdparty" part_name = "openssl" deps = [ ":ssl_source" ] public_configs = [ ":ssl_config_public" ] complete_static_lib = true } ohos_shared_library("libssl_shared") { deps = [ ":libcrypto_shared", ":ssl_source", ] output_name = "libssl_openssl" subsystem_name = "thirdparty" part_name = "openssl" public_configs = [ ":crypto_config_public", ":ssl_config_public", ] install_images = [ "system", # compile libssl_openssl.z.so to the updater image for wpa to use "updater", ] }