• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# Copyright (c) 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("$build_root/ark.gni")
15
16openssl_selected_platform = ""
17if (current_cpu == "arm" && !(current_os == "linux" || host_os == "mac")) {
18  openssl_selected_platform = "linux-armv4"
19} else if (current_cpu == "arm64" &&
20           (!(current_os == "linux" || host_os == "mac") ||
21            current_os == "ohos")) {
22  openssl_selected_platform = "linux-aarch64"
23} else if ((current_cpu == "x64" || current_cpu == "x86_64") &&
24           (current_os == "mac" || current_os == "ios")) {
25  openssl_selected_platform = "darwin64-x86_64-cc"
26} else if (current_cpu == "arm64" &&
27           (current_os == "mac" || current_os == "ios")) {
28  openssl_selected_platform = "darwin64-arm64-cc"
29} else if ((current_cpu == "x64" || current_cpu == "x86_64") &&
30           current_os != "mingw") {
31  openssl_selected_platform = "linux-x86_64"
32} else if (current_cpu == "x86" && current_os != "mingw") {
33  openssl_selected_platform = "linux-x86"
34} else if (is_mingw) {
35  openssl_selected_platform = "mingw64"
36} else if (current_cpu == "mipsel") {
37  openssl_selected_platform = "linux-mips32"
38}
39
40openssl_selected_platform_full_path =
41    "${target_out_dir}/build_all_generated/${openssl_selected_platform}"
42
43libcrypto_build_all_generated_linux_armv4_sources = [
44  "${openssl_selected_platform_full_path}/crypto/aes/aes-armv4.S",
45  "${openssl_selected_platform_full_path}/crypto/aes/aesv8-armx.S",
46  "${openssl_selected_platform_full_path}/crypto/aes/bsaes-armv7.S",
47  "${openssl_selected_platform_full_path}/crypto/armv4cpuid.S",
48  "${openssl_selected_platform_full_path}/crypto/bn/armv4-gf2m.S",
49  "${openssl_selected_platform_full_path}/crypto/bn/armv4-mont.S",
50  "${openssl_selected_platform_full_path}/crypto/chacha/chacha-armv4.S",
51  "${openssl_selected_platform_full_path}/crypto/ec/ecp_nistz256-armv4.S",
52  "${openssl_selected_platform_full_path}/crypto/modes/ghash-armv4.S",
53  "${openssl_selected_platform_full_path}/crypto/modes/ghashv8-armx.S",
54  "${openssl_selected_platform_full_path}/crypto/poly1305/poly1305-armv4.S",
55  "${openssl_selected_platform_full_path}/crypto/sha/keccak1600-armv4.S",
56  "${openssl_selected_platform_full_path}/crypto/sha/sha1-armv4-large.S",
57  "${openssl_selected_platform_full_path}/crypto/sha/sha256-armv4.S",
58  "${openssl_selected_platform_full_path}/crypto/sha/sha512-armv4.S",
59]
60libcrypto_build_all_generated_linux_aarch64_sources = [
61  "${openssl_selected_platform_full_path}/crypto/aes/aesv8-armx.S",
62  "${openssl_selected_platform_full_path}/crypto/aes/vpaes-armv8.S",
63  "${openssl_selected_platform_full_path}/crypto/arm64cpuid.S",
64  "${openssl_selected_platform_full_path}/crypto/bn/armv8-mont.S",
65  "${openssl_selected_platform_full_path}/crypto/chacha/chacha-armv8.S",
66  "${openssl_selected_platform_full_path}/crypto/ec/ecp_nistz256-armv8.S",
67  "${openssl_selected_platform_full_path}/crypto/modes/aes-gcm-armv8_64.S",
68  "${openssl_selected_platform_full_path}/crypto/modes/ghashv8-armx.S",
69  "${openssl_selected_platform_full_path}/crypto/poly1305/poly1305-armv8.S",
70  "${openssl_selected_platform_full_path}/crypto/sha/keccak1600-armv8.S",
71  "${openssl_selected_platform_full_path}/crypto/sha/sha1-armv8.S",
72  "${openssl_selected_platform_full_path}/crypto/sha/sha256-armv8.S",
73  "${openssl_selected_platform_full_path}/crypto/sha/sha512-armv8.S",
74]
75libcrypto_build_all_generated_darwin64_x86_64_cc_sources = [
76  "${openssl_selected_platform_full_path}/crypto/aes/aes-x86_64.s",
77  "${openssl_selected_platform_full_path}/crypto/aes/aesni-mb-x86_64.s",
78  "${openssl_selected_platform_full_path}/crypto/aes/aesni-sha1-x86_64.s",
79  "${openssl_selected_platform_full_path}/crypto/aes/aesni-sha256-x86_64.s",
80  "${openssl_selected_platform_full_path}/crypto/aes/aesni-x86_64.s",
81  "${openssl_selected_platform_full_path}/crypto/aes/bsaes-x86_64.s",
82  "${openssl_selected_platform_full_path}/crypto/aes/vpaes-x86_64.s",
83  "${openssl_selected_platform_full_path}/crypto/bn/rsaz-avx2.s",
84  "${openssl_selected_platform_full_path}/crypto/bn/rsaz-avx512.s",
85  "${openssl_selected_platform_full_path}/crypto/bn/rsaz-x86_64.s",
86  "${openssl_selected_platform_full_path}/crypto/bn/x86_64-gf2m.s",
87  "${openssl_selected_platform_full_path}/crypto/bn/x86_64-mont.s",
88  "${openssl_selected_platform_full_path}/crypto/bn/x86_64-mont5.s",
89  "${openssl_selected_platform_full_path}/crypto/camellia/cmll-x86_64.s",
90  "${openssl_selected_platform_full_path}/crypto/chacha/chacha-x86_64.s",
91  "${openssl_selected_platform_full_path}/crypto/ec/ecp_nistz256-x86_64.s",
92  "${openssl_selected_platform_full_path}/crypto/ec/x25519-x86_64.s",
93  "${openssl_selected_platform_full_path}/crypto/md5/md5-x86_64.s",
94  "${openssl_selected_platform_full_path}/crypto/modes/aesni-gcm-x86_64.s",
95  "${openssl_selected_platform_full_path}/crypto/modes/ghash-x86_64.s",
96  "${openssl_selected_platform_full_path}/crypto/poly1305/poly1305-x86_64.s",
97  "${openssl_selected_platform_full_path}/crypto/rc4/rc4-md5-x86_64.s",
98  "${openssl_selected_platform_full_path}/crypto/rc4/rc4-x86_64.s",
99  "${openssl_selected_platform_full_path}/crypto/sha/keccak1600-x86_64.s",
100  "${openssl_selected_platform_full_path}/crypto/sha/sha1-mb-x86_64.s",
101  "${openssl_selected_platform_full_path}/crypto/sha/sha1-x86_64.s",
102  "${openssl_selected_platform_full_path}/crypto/sha/sha256-mb-x86_64.s",
103  "${openssl_selected_platform_full_path}/crypto/sha/sha256-x86_64.s",
104  "${openssl_selected_platform_full_path}/crypto/sha/sha512-x86_64.s",
105  "${openssl_selected_platform_full_path}/crypto/whrlpool/wp-x86_64.s",
106  "${openssl_selected_platform_full_path}/crypto/x86_64cpuid.s",
107  "${openssl_selected_platform_full_path}/engines/e_padlock-x86_64.s",
108]
109libcrypto_build_all_generated_darwin64_arm64_cc_sources = [
110  "${openssl_selected_platform_full_path}/crypto/aes/aesv8-armx.S",
111  "${openssl_selected_platform_full_path}/crypto/aes/vpaes-armv8.S",
112  "${openssl_selected_platform_full_path}/crypto/arm64cpuid.S",
113  "${openssl_selected_platform_full_path}/crypto/bn/armv8-mont.S",
114  "${openssl_selected_platform_full_path}/crypto/chacha/chacha-armv8.S",
115  "${openssl_selected_platform_full_path}/crypto/ec/ecp_nistz256-armv8.S",
116  "${openssl_selected_platform_full_path}/crypto/modes/aes-gcm-armv8_64.S",
117  "${openssl_selected_platform_full_path}/crypto/modes/ghashv8-armx.S",
118  "${openssl_selected_platform_full_path}/crypto/poly1305/poly1305-armv8.S",
119  "${openssl_selected_platform_full_path}/crypto/sha/keccak1600-armv8.S",
120  "${openssl_selected_platform_full_path}/crypto/sha/sha1-armv8.S",
121  "${openssl_selected_platform_full_path}/crypto/sha/sha256-armv8.S",
122  "${openssl_selected_platform_full_path}/crypto/sha/sha512-armv8.S",
123]
124libcrypto_build_all_generated_linux_x86_64_sources = [
125  "${openssl_selected_platform_full_path}/crypto/aes/aes-x86_64.s",
126  "${openssl_selected_platform_full_path}/crypto/aes/aesni-mb-x86_64.s",
127  "${openssl_selected_platform_full_path}/crypto/aes/aesni-sha1-x86_64.s",
128  "${openssl_selected_platform_full_path}/crypto/aes/aesni-sha256-x86_64.s",
129  "${openssl_selected_platform_full_path}/crypto/aes/aesni-x86_64.s",
130  "${openssl_selected_platform_full_path}/crypto/aes/bsaes-x86_64.s",
131  "${openssl_selected_platform_full_path}/crypto/aes/vpaes-x86_64.s",
132  "${openssl_selected_platform_full_path}/crypto/bn/rsaz-avx2.s",
133  "${openssl_selected_platform_full_path}/crypto/bn/rsaz-avx512.s",
134  "${openssl_selected_platform_full_path}/crypto/bn/rsaz-x86_64.s",
135  "${openssl_selected_platform_full_path}/crypto/bn/x86_64-gf2m.s",
136  "${openssl_selected_platform_full_path}/crypto/bn/x86_64-mont.s",
137  "${openssl_selected_platform_full_path}/crypto/bn/x86_64-mont5.s",
138  "${openssl_selected_platform_full_path}/crypto/camellia/cmll-x86_64.s",
139  "${openssl_selected_platform_full_path}/crypto/chacha/chacha-x86_64.s",
140  "${openssl_selected_platform_full_path}/crypto/ec/ecp_nistz256-x86_64.s",
141  "${openssl_selected_platform_full_path}/crypto/ec/x25519-x86_64.s",
142  "${openssl_selected_platform_full_path}/crypto/md5/md5-x86_64.s",
143  "${openssl_selected_platform_full_path}/crypto/modes/aesni-gcm-x86_64.s",
144  "${openssl_selected_platform_full_path}/crypto/modes/ghash-x86_64.s",
145  "${openssl_selected_platform_full_path}/crypto/poly1305/poly1305-x86_64.s",
146  "${openssl_selected_platform_full_path}/crypto/rc4/rc4-md5-x86_64.s",
147  "${openssl_selected_platform_full_path}/crypto/rc4/rc4-x86_64.s",
148  "${openssl_selected_platform_full_path}/crypto/sha/keccak1600-x86_64.s",
149  "${openssl_selected_platform_full_path}/crypto/sha/sha1-mb-x86_64.s",
150  "${openssl_selected_platform_full_path}/crypto/sha/sha1-x86_64.s",
151  "${openssl_selected_platform_full_path}/crypto/sha/sha256-mb-x86_64.s",
152  "${openssl_selected_platform_full_path}/crypto/sha/sha256-x86_64.s",
153  "${openssl_selected_platform_full_path}/crypto/sha/sha512-x86_64.s",
154  "${openssl_selected_platform_full_path}/crypto/whrlpool/wp-x86_64.s",
155  "${openssl_selected_platform_full_path}/crypto/x86_64cpuid.s",
156  "${openssl_selected_platform_full_path}/engines/e_padlock-x86_64.s",
157]
158libcrypto_build_all_generated_linux_x86_sources = []
159libcrypto_build_all_generated_mingw64_sources = [
160  "${openssl_selected_platform_full_path}/crypto/aes/aes-x86_64.s",
161  "${openssl_selected_platform_full_path}/crypto/aes/aesni-mb-x86_64.s",
162  "${openssl_selected_platform_full_path}/crypto/aes/aesni-sha1-x86_64.s",
163  "${openssl_selected_platform_full_path}/crypto/aes/aesni-sha256-x86_64.s",
164  "${openssl_selected_platform_full_path}/crypto/aes/aesni-x86_64.s",
165  "${openssl_selected_platform_full_path}/crypto/aes/bsaes-x86_64.s",
166  "${openssl_selected_platform_full_path}/crypto/aes/vpaes-x86_64.s",
167  "${openssl_selected_platform_full_path}/crypto/bn/rsaz-avx2.s",
168  "${openssl_selected_platform_full_path}/crypto/bn/rsaz-avx512.s",
169  "${openssl_selected_platform_full_path}/crypto/bn/rsaz-x86_64.s",
170  "${openssl_selected_platform_full_path}/crypto/bn/x86_64-gf2m.s",
171  "${openssl_selected_platform_full_path}/crypto/bn/x86_64-mont.s",
172  "${openssl_selected_platform_full_path}/crypto/bn/x86_64-mont5.s",
173  "${openssl_selected_platform_full_path}/crypto/camellia/cmll-x86_64.s",
174  "${openssl_selected_platform_full_path}/crypto/chacha/chacha-x86_64.s",
175  "${openssl_selected_platform_full_path}/crypto/ec/ecp_nistz256-x86_64.s",
176  "${openssl_selected_platform_full_path}/crypto/ec/x25519-x86_64.s",
177  "${openssl_selected_platform_full_path}/crypto/md5/md5-x86_64.s",
178  "${openssl_selected_platform_full_path}/crypto/modes/aesni-gcm-x86_64.s",
179  "${openssl_selected_platform_full_path}/crypto/modes/ghash-x86_64.s",
180  "${openssl_selected_platform_full_path}/crypto/poly1305/poly1305-x86_64.s",
181  "${openssl_selected_platform_full_path}/crypto/rc4/rc4-md5-x86_64.s",
182  "${openssl_selected_platform_full_path}/crypto/rc4/rc4-x86_64.s",
183  "${openssl_selected_platform_full_path}/crypto/sha/keccak1600-x86_64.s",
184  "${openssl_selected_platform_full_path}/crypto/sha/sha1-mb-x86_64.s",
185  "${openssl_selected_platform_full_path}/crypto/sha/sha1-x86_64.s",
186  "${openssl_selected_platform_full_path}/crypto/sha/sha256-mb-x86_64.s",
187  "${openssl_selected_platform_full_path}/crypto/sha/sha256-x86_64.s",
188  "${openssl_selected_platform_full_path}/crypto/sha/sha512-x86_64.s",
189  "${openssl_selected_platform_full_path}/crypto/whrlpool/wp-x86_64.s",
190  "${openssl_selected_platform_full_path}/crypto/x86_64cpuid.s",
191  "${openssl_selected_platform_full_path}/engines/e_padlock-x86_64.s",
192]
193
194libcrypto_build_all_generated_selected_platform_sources = []
195if (openssl_selected_platform == "linux-armv4") {
196  libcrypto_build_all_generated_selected_platform_sources +=
197      libcrypto_build_all_generated_linux_armv4_sources
198} else if (openssl_selected_platform == "linux-aarch64") {
199  libcrypto_build_all_generated_selected_platform_sources +=
200      libcrypto_build_all_generated_linux_aarch64_sources
201} else if (openssl_selected_platform == "darwin64-x86_64-cc") {
202  libcrypto_build_all_generated_selected_platform_sources +=
203      libcrypto_build_all_generated_darwin64_x86_64_cc_sources
204} else if (openssl_selected_platform == "darwin64-arm64-cc") {
205  libcrypto_build_all_generated_selected_platform_sources +=
206      libcrypto_build_all_generated_darwin64_arm64_cc_sources
207} else if (openssl_selected_platform == "linux-x86_64") {
208  libcrypto_build_all_generated_selected_platform_sources +=
209      libcrypto_build_all_generated_linux_x86_64_sources
210} else if (openssl_selected_platform == "linux-x86") {
211  libcrypto_build_all_generated_selected_platform_sources +=
212      libcrypto_build_all_generated_linux_x86_sources
213} else if (openssl_selected_platform == "mingw64") {
214  libcrypto_build_all_generated_selected_platform_sources +=
215      libcrypto_build_all_generated_mingw64_sources
216}
217
218libcommon_build_all_generated_selected_platform_sources = [
219  "${openssl_selected_platform_full_path}/providers/common/der/der_digests_gen.c",
220  "${openssl_selected_platform_full_path}/providers/common/der/der_dsa_gen.c",
221  "${openssl_selected_platform_full_path}/providers/common/der/der_ec_gen.c",
222  "${openssl_selected_platform_full_path}/providers/common/der/der_ecx_gen.c",
223  "${openssl_selected_platform_full_path}/providers/common/der/der_rsa_gen.c",
224  "${openssl_selected_platform_full_path}/providers/common/der/der_wrap_gen.c",
225]
226
227libdefault_build_all_generated_selected_platform_sources = [
228  "${openssl_selected_platform_full_path}/providers/common/der/der_sm2_gen.c",
229]
230
231# We make use of both exec_script and action to build openssl build_all_generated items.
232#
233# Some modules use openssl in an incorrect way, leading to the confusing building sequences,
234# so the user modules building fail because openssl headers have not been generated at the building time.
235# The exec_script in the global area will be executed before ninja command,
236# and it ensures that the headers is generated properly before the building of any modules.
237#
238# Openssl generate some assembly codes before it is building.
239# The sources list in BUILD.gn include the assembly codes.
240# The gn build system requires that all items in sources list should be the output of another build item.
241# So we use an empty action to generate the assembly codes.
242# Actually we generate the assembly codes in exec_script, not in action.
243#
244# The gn build system requires the script in exec_script and action should be python script,
245# so we invoke the shell script in python script
246action("openssl_build_all_generated") {
247  if (current_cpu == "arm" && !(current_os == "linux" || host_os == "mac")) {
248    print("openssl current_platform linux-armv4")
249    openssl_current_platform = "linux-armv4"
250  } else if (current_cpu == "arm64" &&
251             (!(current_os == "linux" || host_os == "mac") ||
252              current_os == "ohos")) {
253    print("openssl currcurrent_platforment linux-aarch64")
254    openssl_current_platform = "linux-aarch64"
255  } else if ((current_cpu == "x64" || current_cpu == "x86_64") &&
256             (current_os == "mac" || current_os == "ios")) {
257    # compilation for ios depends the platform
258    print("openssl current_platform darwin64-x86_64-cc")
259    openssl_current_platform = "darwin64-x86_64-cc"
260  } else if (current_cpu == "arm64" &&
261             (current_os == "mac" || current_os == "ios")) {
262    # ios and macos both use the platform
263    print("openssl current_platform darwin64-arm64-cc")
264    openssl_current_platform = "darwin64-arm64-cc"
265  } else if ((current_cpu == "x64" || current_cpu == "x86_64") &&
266             current_os != "mingw") {
267    print("openssl current_platform linux-x86_64")
268    openssl_current_platform = "linux-x86_64"
269  } else if (current_cpu == "x86" && current_os != "mingw") {
270    print("openssl current_platform linux-x86")
271    openssl_current_platform = "linux-x86"
272  } else if (is_mingw) {
273    print("openssl current_platform mingw64")
274    openssl_current_platform = "mingw64"
275  } else if (current_cpu == "mipsel") {
276    print("openssl current_platform linux-mip32")
277    openssl_current_platform = "linux-mips32"
278  }
279
280  script = rebase_path("//third_party/openssl/run_command.py")
281  args = [
282    rebase_path("//third_party/openssl/make_openssl_build_all_generated.sh"),
283    rebase_path("//third_party/openssl"),
284    rebase_path("${target_out_dir}/build_all_generated"),
285    openssl_current_platform,
286  ]
287  outputs = []
288  outputs += libcommon_build_all_generated_selected_platform_sources
289  outputs += libdefault_build_all_generated_selected_platform_sources
290  outputs += libcrypto_build_all_generated_selected_platform_sources
291  outputs += [ "${openssl_selected_platform_full_path}/apps/progs.c" ]
292  if (openssl_selected_platform == "mingw64") {
293    outputs += [ "${openssl_selected_platform_full_path}/apps/openssl.rc" ]
294  }
295}
296
297openssl_internal_cflags = [
298  "-Wall",
299
300  # ../../third_party/openssl/crypto/o_str.c:309:9: error: incompatible integer to pointer conversion assigning to 'char *' from 'int' [-Werror,-Wint-conversion]
301  #     err = strerror_r(errnum, buf, buflen);
302  #         ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
303  "-Wno-error=int-conversion",
304
305  # ../../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]
306  #             *lp = BN_div_word(t, BN_DEC_CONV);
307  #                   ~~~~~~~~~~~    ^~~~~~~~~~~
308  "-Wno-error=constant-conversion",
309
310  # ../../third_party/openssl/crypto/bn/bn_exp.c:382:38: error: shift count >= width of type [-Werror,-Wshift-count-overflow]
311  #     if (m->d[j - 1] & (((BN_ULONG)1) << (BN_BITS2 - 1))) {
312  #                                      ^  ~~~~~~~~~~~~~~
313  "-Wno-error=shift-count-overflow",
314
315  # ../../third_party/openssl/crypto/conf/conf_def.c:31:11: error: 'stat' macro redefined [-Werror,-Wmacro-redefined]
316  # #  define stat    _stat
317  #           ^
318  # ../../prebuilts/mingw-w64/ohos/linux-x86_64/clang-mingw/x86_64-w64-mingw32/include/sys/stat.h:279:9: note: previous definition is here
319  # #define stat _stat64
320  #         ^
321  # 1 error generated.
322  "-Wno-error=macro-redefined",
323
324  "-Wno-error=implicit-fallthrough",
325  "-Wno-error=sign-compare",
326
327  # Fix llvm-15 build error
328  "-Wno-unused-but-set-variable",
329]
330
331crypto_config_common_private_include_dirs = [
332  "//third_party/openssl/",
333  "//third_party/openssl/apps/include",
334  "//third_party/openssl/crypto",
335  "//third_party/openssl/crypto/bn",
336  "//third_party/openssl/crypto/ec",
337  "//third_party/openssl/crypto/ec/curve448",
338  "//third_party/openssl/crypto/modes",
339  "//third_party/openssl/crypto/rsa",
340  "//third_party/openssl/include",
341  "//third_party/openssl/providers/common/include",
342  "//third_party/openssl/providers/common/include/prov",
343  "//third_party/openssl/providers/implementations/include",
344  "${openssl_selected_platform_full_path}/apps",
345  "${openssl_selected_platform_full_path}/crypto",
346  "${openssl_selected_platform_full_path}/include",
347  "${openssl_selected_platform_full_path}/include/crypto",
348  "${openssl_selected_platform_full_path}/include/openssl",
349  "${openssl_selected_platform_full_path}/providers/common/include",
350  "${openssl_selected_platform_full_path}/providers/common/include/prov",
351]
352crypto_config_common_public_include_dirs = [
353  "include",
354  "${openssl_selected_platform_full_path}/include",
355]
356
357# located at /system/etc/
358ohos_prebuilt_etc("openssl.cnf") {
359  source = "//third_party/openssl/open_harmony_openssl_config/openssl.cnf"
360  subsystem_name = "thirdparty"
361  part_name = "openssl"
362}
363
364crypto_config_common_cflags = [
365  "-Wa,--noexecstack",
366  "-DNDEBUG",
367  "-DOPENSSL_BUILDING_OPENSSL",
368  "-DOPENSSL_CPUID_OBJ",
369  "-DOPENSSL_PIC",
370  "-DENGINESDIR=\"\"",
371  "-DMODULESDIR=\"\"",
372
373  # to locate openssl.cnf
374  "-DOPENSSLDIR=\"/system/etc\"",
375
376  "-DSTATIC_LEGACY",
377]
378
379crypto_config_linux_armv4_cflags = [
380  "-DOPENSSL_USE_NODELETE",
381  "-fPIC",
382  "-pthread",
383
384  "-DAES_ASM",
385  "-DBSAES_ASM",
386  "-DECP_NISTZ256_ASM",
387  "-DGHASH_ASM",
388  "-DKECCAK1600_ASM",
389  "-DOPENSSL_BN_ASM_GF2m",
390  "-DOPENSSL_BN_ASM_MONT",
391  "-DPOLY1305_ASM",
392  "-DSHA1_ASM",
393  "-DSHA256_ASM",
394  "-DSHA512_ASM",
395]
396
397crypto_config_linux_aarch64_cflags = [
398  "-DOPENSSL_USE_NODELETE",
399  "-fPIC",
400  "-pthread",
401
402  "-DECP_NISTZ256_ASM",
403  "-DKECCAK1600_ASM",
404  "-DOPENSSL_BN_ASM_MONT",
405  "-DPOLY1305_ASM",
406  "-DSHA1_ASM",
407  "-DSHA256_ASM",
408  "-DSHA512_ASM",
409  "-DVPAES_ASM",
410]
411
412crypto_config_darwin64_x86_64_cc_cflags = [
413  "-fPIC",
414  "-DL_ENDIAN",
415  "-D_REENTRANT",
416  "-DOPENSSL_IA32_SSE2",
417
418  "-DAES_ASM",
419  "-DBSAES_ASM",
420  "-DCMLL_ASM",
421  "-DECP_NISTZ256_ASM",
422  "-DGHASH_ASM",
423  "-DKECCAK1600_ASM",
424  "-DMD5_ASM",
425  "-DOPENSSL_BN_ASM_GF2m",
426  "-DOPENSSL_BN_ASM_MONT",
427  "-DOPENSSL_BN_ASM_MONT5",
428  "-DPADLOCK_ASM",
429  "-DPOLY1305_ASM",
430  "-DSHA1_ASM",
431  "-DSHA256_ASM",
432  "-DSHA512_ASM",
433  "-DVPAES_ASM",
434  "-DWHIRLPOOL_ASM",
435  "-DX25519_ASM",
436]
437
438crypto_config_darwin64_arm64_cc_cflags = [
439  "-DL_ENDIAN",
440  "-D_REENTRANT",
441  "-fPIC",
442
443  "-DECP_NISTZ256_ASM",
444  "-DKECCAK1600_ASM",
445  "-DOPENSSL_BN_ASM_MONT",
446  "-DPOLY1305_ASM",
447  "-DSHA1_ASM",
448  "-DSHA256_ASM",
449  "-DSHA512_ASM",
450  "-DVPAES_ASM",
451]
452
453crypto_config_linux_x86_64_cflags = [
454  "-DL_ENDIAN",
455  "-DOPENSSL_IA32_SSE2",
456  "-DOPENSSL_USE_NODELETE",
457  "-fPIC",
458  "-m64",
459  "-pthread",
460
461  "-DAES_ASM",
462  "-DBSAES_ASM",
463  "-DCMLL_ASM",
464  "-DECP_NISTZ256_ASM",
465  "-DGHASH_ASM",
466  "-DKECCAK1600_ASM",
467  "-DMD5_ASM",
468  "-DOPENSSL_BN_ASM_GF2m",
469  "-DOPENSSL_BN_ASM_MONT",
470  "-DOPENSSL_BN_ASM_MONT5",
471  "-DPADLOCK_ASM",
472  "-DPOLY1305_ASM",
473  "-DSHA1_ASM",
474  "-DSHA256_ASM",
475  "-DSHA512_ASM",
476  "-DVPAES_ASM",
477  "-DWHIRLPOOL_ASM",
478  "-DX25519_ASM",
479]
480
481crypto_config_linux_x86_cflags = []
482
483crypto_config_mingw64_cflags = [
484  "-D_MT",
485  "-D_UNICODE",
486  "-DL_ENDIAN",
487  "-DOPENSSL_IA32_SSE2",
488  "-DUNICODE",
489  "-DWIN32_LEAN_AND_MEAN",
490  "-m64",
491
492  "-DAES_ASM",
493  "-DBSAES_ASM",
494  "-DCMLL_ASM",
495  "-DECP_NISTZ256_ASM",
496  "-DGHASH_ASM",
497  "-DKECCAK1600_ASM",
498  "-DMD5_ASM",
499  "-DOPENSSL_BN_ASM_GF2m",
500  "-DOPENSSL_BN_ASM_MONT",
501  "-DOPENSSL_BN_ASM_MONT5",
502  "-DPADLOCK_ASM",
503  "-DPOLY1305_ASM",
504  "-DSHA1_ASM",
505  "-DSHA256_ASM",
506  "-DSHA512_ASM",
507  "-DVPAES_ASM",
508  "-DWHIRLPOOL_ASM",
509  "-DX25519_ASM",
510]
511
512crypto_config_current_platform_cflags = []
513if (openssl_selected_platform == "linux-armv4") {
514  crypto_config_current_platform_cflags += crypto_config_linux_armv4_cflags
515} else if (openssl_selected_platform == "linux-aarch64") {
516  crypto_config_current_platform_cflags += crypto_config_linux_aarch64_cflags
517} else if (openssl_selected_platform == "darwin64-x86_64-cc") {
518  crypto_config_current_platform_cflags +=
519      crypto_config_darwin64_x86_64_cc_cflags
520} else if (openssl_selected_platform == "darwin64-arm64-cc") {
521  crypto_config_current_platform_cflags +=
522      crypto_config_darwin64_arm64_cc_cflags
523} else if (openssl_selected_platform == "linux-x86_64") {
524  crypto_config_current_platform_cflags += crypto_config_linux_x86_64_cflags
525} else if (openssl_selected_platform == "linux-x86") {
526  crypto_config_current_platform_cflags += crypto_config_linux_x86_cflags
527} else if (openssl_selected_platform == "mingw64") {
528  crypto_config_current_platform_cflags += crypto_config_mingw64_cflags
529}
530
531mingw32_libs_path = []
532mingw32_libs = []
533if (is_mingw || is_win) {
534  mingw32_libs_path += [ "//prebuilts/mingw-w64/ohos/linux-x86_64/clang-mingw/x86_64-w64-mingw32/lib" ]
535  mingw32_libs += [
536    "ws2_32",
537    "crypt32",
538  ]
539}
540
541config("crypto_config_private") {
542  include_dirs = crypto_config_common_private_include_dirs
543  cflags = crypto_config_common_cflags + crypto_config_current_platform_cflags +
544           openssl_internal_cflags
545  lib_dirs = mingw32_libs_path
546  libs = mingw32_libs
547}
548
549config("crypto_config_public") {
550  include_dirs = crypto_config_common_public_include_dirs
551  libs = mingw32_libs
552}
553
554libcommon_common_sources = [
555  "//third_party/openssl/providers/common/der/der_dsa_key.c",
556  "//third_party/openssl/providers/common/der/der_dsa_sig.c",
557  "//third_party/openssl/providers/common/der/der_ec_key.c",
558  "//third_party/openssl/providers/common/der/der_ec_sig.c",
559  "//third_party/openssl/providers/common/der/der_ecx_key.c",
560  "//third_party/openssl/providers/common/der/der_rsa_key.c",
561  "//third_party/openssl/providers/common/provider_ctx.c",
562  "//third_party/openssl/providers/common/provider_err.c",
563  "//third_party/openssl/providers/implementations/ciphers/ciphercommon.c",
564  "//third_party/openssl/providers/implementations/ciphers/ciphercommon_block.c",
565  "//third_party/openssl/providers/implementations/ciphers/ciphercommon_ccm.c",
566  "//third_party/openssl/providers/implementations/ciphers/ciphercommon_ccm_hw.c",
567  "//third_party/openssl/providers/implementations/ciphers/ciphercommon_gcm.c",
568  "//third_party/openssl/providers/implementations/ciphers/ciphercommon_gcm_hw.c",
569  "//third_party/openssl/providers/implementations/ciphers/ciphercommon_hw.c",
570  "//third_party/openssl/providers/implementations/digests/digestcommon.c",
571  "//third_party/openssl/ssl/record/tls_pad.c",
572]
573
574libdefault_common_sources = [
575  "//third_party/openssl/providers/common/bio_prov.c",
576  "//third_party/openssl/providers/common/capabilities.c",
577  "//third_party/openssl/providers/common/der/der_rsa_sig.c",
578  "//third_party/openssl/providers/common/der/der_sm2_key.c",
579  "//third_party/openssl/providers/common/der/der_sm2_sig.c",
580  "//third_party/openssl/providers/common/digest_to_nid.c",
581  "//third_party/openssl/providers/common/provider_seeding.c",
582  "//third_party/openssl/providers/common/provider_util.c",
583  "//third_party/openssl/providers/common/securitycheck.c",
584  "//third_party/openssl/providers/common/securitycheck_default.c",
585  "//third_party/openssl/providers/implementations/asymciphers/rsa_enc.c",
586  "//third_party/openssl/providers/implementations/asymciphers/sm2_enc.c",
587  "//third_party/openssl/providers/implementations/ciphers/cipher_aes.c",
588  "//third_party/openssl/providers/implementations/ciphers/cipher_aes_cbc_hmac_sha.c",
589  "//third_party/openssl/providers/implementations/ciphers/cipher_aes_cbc_hmac_sha1_hw.c",
590  "//third_party/openssl/providers/implementations/ciphers/cipher_aes_cbc_hmac_sha256_hw.c",
591  "//third_party/openssl/providers/implementations/ciphers/cipher_aes_ccm.c",
592  "//third_party/openssl/providers/implementations/ciphers/cipher_aes_ccm_hw.c",
593  "//third_party/openssl/providers/implementations/ciphers/cipher_aes_gcm.c",
594  "//third_party/openssl/providers/implementations/ciphers/cipher_aes_gcm_hw.c",
595  "//third_party/openssl/providers/implementations/ciphers/cipher_aes_hw.c",
596  "//third_party/openssl/providers/implementations/ciphers/cipher_aes_ocb.c",
597  "//third_party/openssl/providers/implementations/ciphers/cipher_aes_ocb_hw.c",
598  "//third_party/openssl/providers/implementations/ciphers/cipher_aes_siv.c",
599  "//third_party/openssl/providers/implementations/ciphers/cipher_aes_siv_hw.c",
600  "//third_party/openssl/providers/implementations/ciphers/cipher_aes_wrp.c",
601  "//third_party/openssl/providers/implementations/ciphers/cipher_aes_xts.c",
602  "//third_party/openssl/providers/implementations/ciphers/cipher_aes_xts_fips.c",
603  "//third_party/openssl/providers/implementations/ciphers/cipher_aes_xts_hw.c",
604  "//third_party/openssl/providers/implementations/ciphers/cipher_aria.c",
605  "//third_party/openssl/providers/implementations/ciphers/cipher_aria_ccm.c",
606  "//third_party/openssl/providers/implementations/ciphers/cipher_aria_ccm_hw.c",
607  "//third_party/openssl/providers/implementations/ciphers/cipher_aria_gcm.c",
608  "//third_party/openssl/providers/implementations/ciphers/cipher_aria_gcm_hw.c",
609  "//third_party/openssl/providers/implementations/ciphers/cipher_aria_hw.c",
610  "//third_party/openssl/providers/implementations/ciphers/cipher_camellia.c",
611  "//third_party/openssl/providers/implementations/ciphers/cipher_camellia_hw.c",
612  "//third_party/openssl/providers/implementations/ciphers/cipher_chacha20.c",
613  "//third_party/openssl/providers/implementations/ciphers/cipher_chacha20_hw.c",
614  "//third_party/openssl/providers/implementations/ciphers/cipher_chacha20_poly1305.c",
615  "//third_party/openssl/providers/implementations/ciphers/cipher_chacha20_poly1305_hw.c",
616  "//third_party/openssl/providers/implementations/ciphers/cipher_cts.c",
617  "//third_party/openssl/providers/implementations/ciphers/cipher_null.c",
618  "//third_party/openssl/providers/implementations/ciphers/cipher_sm4.c",
619  "//third_party/openssl/providers/implementations/ciphers/cipher_sm4_hw.c",
620  "//third_party/openssl/providers/implementations/ciphers/cipher_tdes.c",
621  "//third_party/openssl/providers/implementations/ciphers/cipher_tdes_common.c",
622  "//third_party/openssl/providers/implementations/ciphers/cipher_tdes_default.c",
623  "//third_party/openssl/providers/implementations/ciphers/cipher_tdes_default_hw.c",
624  "//third_party/openssl/providers/implementations/ciphers/cipher_tdes_hw.c",
625  "//third_party/openssl/providers/implementations/ciphers/cipher_tdes_wrap.c",
626  "//third_party/openssl/providers/implementations/ciphers/cipher_tdes_wrap_hw.c",
627  "//third_party/openssl/providers/implementations/digests/blake2_prov.c",
628  "//third_party/openssl/providers/implementations/digests/blake2b_prov.c",
629  "//third_party/openssl/providers/implementations/digests/blake2s_prov.c",
630  "//third_party/openssl/providers/implementations/digests/md5_prov.c",
631  "//third_party/openssl/providers/implementations/digests/md5_sha1_prov.c",
632  "//third_party/openssl/providers/implementations/digests/null_prov.c",
633  "//third_party/openssl/providers/implementations/digests/ripemd_prov.c",
634  "//third_party/openssl/providers/implementations/digests/sha2_prov.c",
635  "//third_party/openssl/providers/implementations/digests/sha3_prov.c",
636  "//third_party/openssl/providers/implementations/digests/sm3_prov.c",
637  "//third_party/openssl/providers/implementations/encode_decode/decode_der2key.c",
638  "//third_party/openssl/providers/implementations/encode_decode/decode_epki2pki.c",
639  "//third_party/openssl/providers/implementations/encode_decode/decode_msblob2key.c",
640  "//third_party/openssl/providers/implementations/encode_decode/decode_pem2der.c",
641  "//third_party/openssl/providers/implementations/encode_decode/decode_pvk2key.c",
642  "//third_party/openssl/providers/implementations/encode_decode/decode_spki2typespki.c",
643  "//third_party/openssl/providers/implementations/encode_decode/encode_key2any.c",
644  "//third_party/openssl/providers/implementations/encode_decode/encode_key2blob.c",
645  "//third_party/openssl/providers/implementations/encode_decode/encode_key2ms.c",
646  "//third_party/openssl/providers/implementations/encode_decode/encode_key2text.c",
647  "//third_party/openssl/providers/implementations/encode_decode/endecoder_common.c",
648  "//third_party/openssl/providers/implementations/exchange/dh_exch.c",
649  "//third_party/openssl/providers/implementations/exchange/ecdh_exch.c",
650  "//third_party/openssl/providers/implementations/exchange/ecx_exch.c",
651  "//third_party/openssl/providers/implementations/exchange/kdf_exch.c",
652  "//third_party/openssl/providers/implementations/kdfs/hkdf.c",
653  "//third_party/openssl/providers/implementations/kdfs/kbkdf.c",
654  "//third_party/openssl/providers/implementations/kdfs/krb5kdf.c",
655  "//third_party/openssl/providers/implementations/kdfs/pbkdf2.c",
656  "//third_party/openssl/providers/implementations/kdfs/pbkdf2_fips.c",
657  "//third_party/openssl/providers/implementations/kdfs/pkcs12kdf.c",
658  "//third_party/openssl/providers/implementations/kdfs/scrypt.c",
659  "//third_party/openssl/providers/implementations/kdfs/sshkdf.c",
660  "//third_party/openssl/providers/implementations/kdfs/sskdf.c",
661  "//third_party/openssl/providers/implementations/kdfs/tls1_prf.c",
662  "//third_party/openssl/providers/implementations/kdfs/x942kdf.c",
663  "//third_party/openssl/providers/implementations/kem/rsa_kem.c",
664  "//third_party/openssl/providers/implementations/keymgmt/dh_kmgmt.c",
665  "//third_party/openssl/providers/implementations/keymgmt/dsa_kmgmt.c",
666  "//third_party/openssl/providers/implementations/keymgmt/ec_kmgmt.c",
667  "//third_party/openssl/providers/implementations/keymgmt/ecx_kmgmt.c",
668  "//third_party/openssl/providers/implementations/keymgmt/kdf_legacy_kmgmt.c",
669  "//third_party/openssl/providers/implementations/keymgmt/mac_legacy_kmgmt.c",
670  "//third_party/openssl/providers/implementations/keymgmt/rsa_kmgmt.c",
671  "//third_party/openssl/providers/implementations/macs/blake2b_mac.c",
672  "//third_party/openssl/providers/implementations/macs/blake2s_mac.c",
673  "//third_party/openssl/providers/implementations/macs/cmac_prov.c",
674  "//third_party/openssl/providers/implementations/macs/gmac_prov.c",
675  "//third_party/openssl/providers/implementations/macs/hmac_prov.c",
676  "//third_party/openssl/providers/implementations/macs/kmac_prov.c",
677  "//third_party/openssl/providers/implementations/macs/poly1305_prov.c",
678  "//third_party/openssl/providers/implementations/macs/siphash_prov.c",
679  "//third_party/openssl/providers/implementations/rands/crngt.c",
680  "//third_party/openssl/providers/implementations/rands/drbg.c",
681  "//third_party/openssl/providers/implementations/rands/drbg_ctr.c",
682  "//third_party/openssl/providers/implementations/rands/drbg_hash.c",
683  "//third_party/openssl/providers/implementations/rands/drbg_hmac.c",
684  "//third_party/openssl/providers/implementations/rands/seed_src.c",
685  "//third_party/openssl/providers/implementations/rands/seeding/rand_cpu_x86.c",
686  "//third_party/openssl/providers/implementations/rands/seeding/rand_tsc.c",
687  "//third_party/openssl/providers/implementations/rands/seeding/rand_unix.c",
688  "//third_party/openssl/providers/implementations/rands/seeding/rand_win.c",
689  "//third_party/openssl/providers/implementations/rands/test_rng.c",
690  "//third_party/openssl/providers/implementations/signature/dsa_sig.c",
691  "//third_party/openssl/providers/implementations/signature/ecdsa_sig.c",
692  "//third_party/openssl/providers/implementations/signature/eddsa_sig.c",
693  "//third_party/openssl/providers/implementations/signature/mac_legacy_sig.c",
694  "//third_party/openssl/providers/implementations/signature/rsa_sig.c",
695  "//third_party/openssl/providers/implementations/signature/sm2_sig.c",
696  "//third_party/openssl/providers/implementations/storemgmt/file_store.c",
697  "//third_party/openssl/providers/implementations/storemgmt/file_store_any2obj.c",
698  "//third_party/openssl/ssl/s3_cbc.c",
699]
700liblegacy_sources = [
701  "//third_party/openssl/providers/implementations/ciphers/cipher_blowfish.c",
702  "//third_party/openssl/providers/implementations/ciphers/cipher_blowfish_hw.c",
703  "//third_party/openssl/providers/implementations/ciphers/cipher_cast5.c",
704  "//third_party/openssl/providers/implementations/ciphers/cipher_cast5_hw.c",
705  "//third_party/openssl/providers/implementations/ciphers/cipher_des.c",
706  "//third_party/openssl/providers/implementations/ciphers/cipher_des_hw.c",
707  "//third_party/openssl/providers/implementations/ciphers/cipher_desx.c",
708  "//third_party/openssl/providers/implementations/ciphers/cipher_desx_hw.c",
709  "//third_party/openssl/providers/implementations/ciphers/cipher_idea.c",
710  "//third_party/openssl/providers/implementations/ciphers/cipher_idea_hw.c",
711  "//third_party/openssl/providers/implementations/ciphers/cipher_rc2.c",
712  "//third_party/openssl/providers/implementations/ciphers/cipher_rc2_hw.c",
713  "//third_party/openssl/providers/implementations/ciphers/cipher_rc4.c",
714  "//third_party/openssl/providers/implementations/ciphers/cipher_rc4_hmac_md5.c",
715  "//third_party/openssl/providers/implementations/ciphers/cipher_rc4_hmac_md5_hw.c",
716  "//third_party/openssl/providers/implementations/ciphers/cipher_rc4_hw.c",
717  "//third_party/openssl/providers/implementations/ciphers/cipher_seed.c",
718  "//third_party/openssl/providers/implementations/ciphers/cipher_seed_hw.c",
719  "//third_party/openssl/providers/implementations/digests/md4_prov.c",
720  "//third_party/openssl/providers/implementations/digests/mdc2_prov.c",
721  "//third_party/openssl/providers/implementations/digests/wp_prov.c",
722  "//third_party/openssl/providers/implementations/kdfs/pbkdf1.c",
723]
724
725ohos_source_set("crypto_source") {
726  sources = [
727    "//third_party/openssl/crypto/aes/aes_cfb.c",
728    "//third_party/openssl/crypto/aes/aes_ecb.c",
729    "//third_party/openssl/crypto/aes/aes_ige.c",
730    "//third_party/openssl/crypto/aes/aes_misc.c",
731    "//third_party/openssl/crypto/aes/aes_ofb.c",
732    "//third_party/openssl/crypto/aes/aes_wrap.c",
733    "//third_party/openssl/crypto/aria/aria.c",
734    "//third_party/openssl/crypto/asn1/a_bitstr.c",
735    "//third_party/openssl/crypto/asn1/a_d2i_fp.c",
736    "//third_party/openssl/crypto/asn1/a_digest.c",
737    "//third_party/openssl/crypto/asn1/a_dup.c",
738    "//third_party/openssl/crypto/asn1/a_gentm.c",
739    "//third_party/openssl/crypto/asn1/a_i2d_fp.c",
740    "//third_party/openssl/crypto/asn1/a_int.c",
741    "//third_party/openssl/crypto/asn1/a_mbstr.c",
742    "//third_party/openssl/crypto/asn1/a_object.c",
743    "//third_party/openssl/crypto/asn1/a_octet.c",
744    "//third_party/openssl/crypto/asn1/a_print.c",
745    "//third_party/openssl/crypto/asn1/a_sign.c",
746    "//third_party/openssl/crypto/asn1/a_strex.c",
747    "//third_party/openssl/crypto/asn1/a_strnid.c",
748    "//third_party/openssl/crypto/asn1/a_time.c",
749    "//third_party/openssl/crypto/asn1/a_type.c",
750    "//third_party/openssl/crypto/asn1/a_utctm.c",
751    "//third_party/openssl/crypto/asn1/a_utf8.c",
752    "//third_party/openssl/crypto/asn1/a_verify.c",
753    "//third_party/openssl/crypto/asn1/ameth_lib.c",
754    "//third_party/openssl/crypto/asn1/asn1_err.c",
755    "//third_party/openssl/crypto/asn1/asn1_gen.c",
756    "//third_party/openssl/crypto/asn1/asn1_item_list.c",
757    "//third_party/openssl/crypto/asn1/asn1_lib.c",
758    "//third_party/openssl/crypto/asn1/asn1_parse.c",
759    "//third_party/openssl/crypto/asn1/asn_mime.c",
760    "//third_party/openssl/crypto/asn1/asn_moid.c",
761    "//third_party/openssl/crypto/asn1/asn_mstbl.c",
762    "//third_party/openssl/crypto/asn1/asn_pack.c",
763    "//third_party/openssl/crypto/asn1/bio_asn1.c",
764    "//third_party/openssl/crypto/asn1/bio_ndef.c",
765    "//third_party/openssl/crypto/asn1/d2i_param.c",
766    "//third_party/openssl/crypto/asn1/d2i_pr.c",
767    "//third_party/openssl/crypto/asn1/d2i_pu.c",
768    "//third_party/openssl/crypto/asn1/evp_asn1.c",
769    "//third_party/openssl/crypto/asn1/f_int.c",
770    "//third_party/openssl/crypto/asn1/f_string.c",
771    "//third_party/openssl/crypto/asn1/i2d_evp.c",
772    "//third_party/openssl/crypto/asn1/n_pkey.c",
773    "//third_party/openssl/crypto/asn1/nsseq.c",
774    "//third_party/openssl/crypto/asn1/p5_pbe.c",
775    "//third_party/openssl/crypto/asn1/p5_pbev2.c",
776    "//third_party/openssl/crypto/asn1/p5_scrypt.c",
777    "//third_party/openssl/crypto/asn1/p8_pkey.c",
778    "//third_party/openssl/crypto/asn1/t_bitst.c",
779    "//third_party/openssl/crypto/asn1/t_pkey.c",
780    "//third_party/openssl/crypto/asn1/t_spki.c",
781    "//third_party/openssl/crypto/asn1/tasn_dec.c",
782    "//third_party/openssl/crypto/asn1/tasn_enc.c",
783    "//third_party/openssl/crypto/asn1/tasn_fre.c",
784    "//third_party/openssl/crypto/asn1/tasn_new.c",
785    "//third_party/openssl/crypto/asn1/tasn_prn.c",
786    "//third_party/openssl/crypto/asn1/tasn_scn.c",
787    "//third_party/openssl/crypto/asn1/tasn_typ.c",
788    "//third_party/openssl/crypto/asn1/tasn_utl.c",
789    "//third_party/openssl/crypto/asn1/x_algor.c",
790    "//third_party/openssl/crypto/asn1/x_bignum.c",
791    "//third_party/openssl/crypto/asn1/x_info.c",
792    "//third_party/openssl/crypto/asn1/x_int64.c",
793    "//third_party/openssl/crypto/asn1/x_long.c",
794    "//third_party/openssl/crypto/asn1/x_pkey.c",
795    "//third_party/openssl/crypto/asn1/x_sig.c",
796    "//third_party/openssl/crypto/asn1/x_spki.c",
797    "//third_party/openssl/crypto/asn1/x_val.c",
798    "//third_party/openssl/crypto/asn1_dsa.c",
799    "//third_party/openssl/crypto/async/arch/async_null.c",
800    "//third_party/openssl/crypto/async/arch/async_posix.c",
801    "//third_party/openssl/crypto/async/arch/async_win.c",
802    "//third_party/openssl/crypto/async/async.c",
803    "//third_party/openssl/crypto/async/async_err.c",
804    "//third_party/openssl/crypto/async/async_wait.c",
805    "//third_party/openssl/crypto/bf/bf_cfb64.c",
806    "//third_party/openssl/crypto/bf/bf_ecb.c",
807    "//third_party/openssl/crypto/bf/bf_enc.c",
808    "//third_party/openssl/crypto/bf/bf_ofb64.c",
809    "//third_party/openssl/crypto/bf/bf_skey.c",
810    "//third_party/openssl/crypto/bio/bf_buff.c",
811    "//third_party/openssl/crypto/bio/bf_lbuf.c",
812    "//third_party/openssl/crypto/bio/bf_nbio.c",
813    "//third_party/openssl/crypto/bio/bf_null.c",
814    "//third_party/openssl/crypto/bio/bf_prefix.c",
815    "//third_party/openssl/crypto/bio/bf_readbuff.c",
816    "//third_party/openssl/crypto/bio/bio_addr.c",
817    "//third_party/openssl/crypto/bio/bio_cb.c",
818    "//third_party/openssl/crypto/bio/bio_dump.c",
819    "//third_party/openssl/crypto/bio/bio_err.c",
820    "//third_party/openssl/crypto/bio/bio_lib.c",
821    "//third_party/openssl/crypto/bio/bio_meth.c",
822    "//third_party/openssl/crypto/bio/bio_print.c",
823    "//third_party/openssl/crypto/bio/bio_sock.c",
824    "//third_party/openssl/crypto/bio/bio_sock2.c",
825    "//third_party/openssl/crypto/bio/bss_acpt.c",
826    "//third_party/openssl/crypto/bio/bss_bio.c",
827    "//third_party/openssl/crypto/bio/bss_conn.c",
828    "//third_party/openssl/crypto/bio/bss_core.c",
829    "//third_party/openssl/crypto/bio/bss_dgram.c",
830    "//third_party/openssl/crypto/bio/bss_fd.c",
831    "//third_party/openssl/crypto/bio/bss_file.c",
832    "//third_party/openssl/crypto/bio/bss_log.c",
833    "//third_party/openssl/crypto/bio/bss_mem.c",
834    "//third_party/openssl/crypto/bio/bss_null.c",
835    "//third_party/openssl/crypto/bio/bss_sock.c",
836    "//third_party/openssl/crypto/bio/ossl_core_bio.c",
837    "//third_party/openssl/crypto/bn/bn_add.c",
838    "//third_party/openssl/crypto/bn/bn_blind.c",
839    "//third_party/openssl/crypto/bn/bn_const.c",
840    "//third_party/openssl/crypto/bn/bn_conv.c",
841    "//third_party/openssl/crypto/bn/bn_ctx.c",
842    "//third_party/openssl/crypto/bn/bn_depr.c",
843    "//third_party/openssl/crypto/bn/bn_dh.c",
844    "//third_party/openssl/crypto/bn/bn_div.c",
845    "//third_party/openssl/crypto/bn/bn_err.c",
846    "//third_party/openssl/crypto/bn/bn_exp.c",
847    "//third_party/openssl/crypto/bn/bn_exp2.c",
848    "//third_party/openssl/crypto/bn/bn_gcd.c",
849    "//third_party/openssl/crypto/bn/bn_gf2m.c",
850    "//third_party/openssl/crypto/bn/bn_intern.c",
851    "//third_party/openssl/crypto/bn/bn_kron.c",
852    "//third_party/openssl/crypto/bn/bn_lib.c",
853    "//third_party/openssl/crypto/bn/bn_mod.c",
854    "//third_party/openssl/crypto/bn/bn_mont.c",
855    "//third_party/openssl/crypto/bn/bn_mpi.c",
856    "//third_party/openssl/crypto/bn/bn_mul.c",
857    "//third_party/openssl/crypto/bn/bn_nist.c",
858    "//third_party/openssl/crypto/bn/bn_prime.c",
859    "//third_party/openssl/crypto/bn/bn_print.c",
860    "//third_party/openssl/crypto/bn/bn_rand.c",
861    "//third_party/openssl/crypto/bn/bn_recp.c",
862    "//third_party/openssl/crypto/bn/bn_rsa_fips186_4.c",
863    "//third_party/openssl/crypto/bn/bn_shift.c",
864    "//third_party/openssl/crypto/bn/bn_sqr.c",
865    "//third_party/openssl/crypto/bn/bn_sqrt.c",
866    "//third_party/openssl/crypto/bn/bn_srp.c",
867    "//third_party/openssl/crypto/bn/bn_word.c",
868    "//third_party/openssl/crypto/bn/bn_x931p.c",
869    "//third_party/openssl/crypto/bn/rsa_sup_mul.c",
870    "//third_party/openssl/crypto/bsearch.c",
871    "//third_party/openssl/crypto/buffer/buf_err.c",
872    "//third_party/openssl/crypto/buffer/buffer.c",
873    "//third_party/openssl/crypto/camellia/cmll_cfb.c",
874    "//third_party/openssl/crypto/camellia/cmll_ctr.c",
875    "//third_party/openssl/crypto/camellia/cmll_ecb.c",
876    "//third_party/openssl/crypto/camellia/cmll_misc.c",
877    "//third_party/openssl/crypto/camellia/cmll_ofb.c",
878    "//third_party/openssl/crypto/cast/c_cfb64.c",
879    "//third_party/openssl/crypto/cast/c_ecb.c",
880    "//third_party/openssl/crypto/cast/c_enc.c",
881    "//third_party/openssl/crypto/cast/c_ofb64.c",
882    "//third_party/openssl/crypto/cast/c_skey.c",
883    "//third_party/openssl/crypto/cmac/cmac.c",
884    "//third_party/openssl/crypto/cmp/cmp_asn.c",
885    "//third_party/openssl/crypto/cmp/cmp_client.c",
886    "//third_party/openssl/crypto/cmp/cmp_ctx.c",
887    "//third_party/openssl/crypto/cmp/cmp_err.c",
888    "//third_party/openssl/crypto/cmp/cmp_hdr.c",
889    "//third_party/openssl/crypto/cmp/cmp_http.c",
890    "//third_party/openssl/crypto/cmp/cmp_msg.c",
891    "//third_party/openssl/crypto/cmp/cmp_protect.c",
892    "//third_party/openssl/crypto/cmp/cmp_server.c",
893    "//third_party/openssl/crypto/cmp/cmp_status.c",
894    "//third_party/openssl/crypto/cmp/cmp_util.c",
895    "//third_party/openssl/crypto/cmp/cmp_vfy.c",
896    "//third_party/openssl/crypto/cms/cms_asn1.c",
897    "//third_party/openssl/crypto/cms/cms_att.c",
898    "//third_party/openssl/crypto/cms/cms_cd.c",
899    "//third_party/openssl/crypto/cms/cms_dd.c",
900    "//third_party/openssl/crypto/cms/cms_dh.c",
901    "//third_party/openssl/crypto/cms/cms_ec.c",
902    "//third_party/openssl/crypto/cms/cms_enc.c",
903    "//third_party/openssl/crypto/cms/cms_env.c",
904    "//third_party/openssl/crypto/cms/cms_err.c",
905    "//third_party/openssl/crypto/cms/cms_ess.c",
906    "//third_party/openssl/crypto/cms/cms_io.c",
907    "//third_party/openssl/crypto/cms/cms_kari.c",
908    "//third_party/openssl/crypto/cms/cms_lib.c",
909    "//third_party/openssl/crypto/cms/cms_pwri.c",
910    "//third_party/openssl/crypto/cms/cms_rsa.c",
911    "//third_party/openssl/crypto/cms/cms_sd.c",
912    "//third_party/openssl/crypto/cms/cms_smime.c",
913    "//third_party/openssl/crypto/comp/c_zlib.c",
914    "//third_party/openssl/crypto/comp/comp_err.c",
915    "//third_party/openssl/crypto/comp/comp_lib.c",
916    "//third_party/openssl/crypto/conf/conf_api.c",
917    "//third_party/openssl/crypto/conf/conf_def.c",
918    "//third_party/openssl/crypto/conf/conf_err.c",
919    "//third_party/openssl/crypto/conf/conf_lib.c",
920    "//third_party/openssl/crypto/conf/conf_mall.c",
921    "//third_party/openssl/crypto/conf/conf_mod.c",
922    "//third_party/openssl/crypto/conf/conf_sap.c",
923    "//third_party/openssl/crypto/conf/conf_ssl.c",
924    "//third_party/openssl/crypto/context.c",
925    "//third_party/openssl/crypto/core_algorithm.c",
926    "//third_party/openssl/crypto/core_fetch.c",
927    "//third_party/openssl/crypto/core_namemap.c",
928    "//third_party/openssl/crypto/cpt_err.c",
929    "//third_party/openssl/crypto/cpuid.c",
930    "//third_party/openssl/crypto/crmf/crmf_asn.c",
931    "//third_party/openssl/crypto/crmf/crmf_err.c",
932    "//third_party/openssl/crypto/crmf/crmf_lib.c",
933    "//third_party/openssl/crypto/crmf/crmf_pbm.c",
934    "//third_party/openssl/crypto/cryptlib.c",
935    "//third_party/openssl/crypto/ct/ct_b64.c",
936    "//third_party/openssl/crypto/ct/ct_err.c",
937    "//third_party/openssl/crypto/ct/ct_log.c",
938    "//third_party/openssl/crypto/ct/ct_oct.c",
939    "//third_party/openssl/crypto/ct/ct_policy.c",
940    "//third_party/openssl/crypto/ct/ct_prn.c",
941    "//third_party/openssl/crypto/ct/ct_sct.c",
942    "//third_party/openssl/crypto/ct/ct_sct_ctx.c",
943    "//third_party/openssl/crypto/ct/ct_vfy.c",
944    "//third_party/openssl/crypto/ct/ct_x509v3.c",
945    "//third_party/openssl/crypto/ctype.c",
946    "//third_party/openssl/crypto/cversion.c",
947    "//third_party/openssl/crypto/der_writer.c",
948    "//third_party/openssl/crypto/des/cbc_cksm.c",
949    "//third_party/openssl/crypto/des/cbc_enc.c",
950    "//third_party/openssl/crypto/des/cfb64ede.c",
951    "//third_party/openssl/crypto/des/cfb64enc.c",
952    "//third_party/openssl/crypto/des/cfb_enc.c",
953    "//third_party/openssl/crypto/des/des_enc.c",
954    "//third_party/openssl/crypto/des/ecb3_enc.c",
955    "//third_party/openssl/crypto/des/ecb_enc.c",
956    "//third_party/openssl/crypto/des/fcrypt.c",
957    "//third_party/openssl/crypto/des/fcrypt_b.c",
958    "//third_party/openssl/crypto/des/ofb64ede.c",
959    "//third_party/openssl/crypto/des/ofb64enc.c",
960    "//third_party/openssl/crypto/des/ofb_enc.c",
961    "//third_party/openssl/crypto/des/pcbc_enc.c",
962    "//third_party/openssl/crypto/des/qud_cksm.c",
963    "//third_party/openssl/crypto/des/rand_key.c",
964    "//third_party/openssl/crypto/des/set_key.c",
965    "//third_party/openssl/crypto/des/str2key.c",
966    "//third_party/openssl/crypto/des/xcbc_enc.c",
967    "//third_party/openssl/crypto/dh/dh_ameth.c",
968    "//third_party/openssl/crypto/dh/dh_asn1.c",
969    "//third_party/openssl/crypto/dh/dh_backend.c",
970    "//third_party/openssl/crypto/dh/dh_check.c",
971    "//third_party/openssl/crypto/dh/dh_depr.c",
972    "//third_party/openssl/crypto/dh/dh_err.c",
973    "//third_party/openssl/crypto/dh/dh_gen.c",
974    "//third_party/openssl/crypto/dh/dh_group_params.c",
975    "//third_party/openssl/crypto/dh/dh_kdf.c",
976    "//third_party/openssl/crypto/dh/dh_key.c",
977    "//third_party/openssl/crypto/dh/dh_lib.c",
978    "//third_party/openssl/crypto/dh/dh_meth.c",
979    "//third_party/openssl/crypto/dh/dh_pmeth.c",
980    "//third_party/openssl/crypto/dh/dh_prn.c",
981    "//third_party/openssl/crypto/dh/dh_rfc5114.c",
982    "//third_party/openssl/crypto/dsa/dsa_ameth.c",
983    "//third_party/openssl/crypto/dsa/dsa_asn1.c",
984    "//third_party/openssl/crypto/dsa/dsa_backend.c",
985    "//third_party/openssl/crypto/dsa/dsa_check.c",
986    "//third_party/openssl/crypto/dsa/dsa_depr.c",
987    "//third_party/openssl/crypto/dsa/dsa_err.c",
988    "//third_party/openssl/crypto/dsa/dsa_gen.c",
989    "//third_party/openssl/crypto/dsa/dsa_key.c",
990    "//third_party/openssl/crypto/dsa/dsa_lib.c",
991    "//third_party/openssl/crypto/dsa/dsa_meth.c",
992    "//third_party/openssl/crypto/dsa/dsa_ossl.c",
993    "//third_party/openssl/crypto/dsa/dsa_pmeth.c",
994    "//third_party/openssl/crypto/dsa/dsa_prn.c",
995    "//third_party/openssl/crypto/dsa/dsa_sign.c",
996    "//third_party/openssl/crypto/dsa/dsa_vrf.c",
997    "//third_party/openssl/crypto/dso/dso_dl.c",
998    "//third_party/openssl/crypto/dso/dso_dlfcn.c",
999    "//third_party/openssl/crypto/dso/dso_err.c",
1000    "//third_party/openssl/crypto/dso/dso_lib.c",
1001    "//third_party/openssl/crypto/dso/dso_openssl.c",
1002    "//third_party/openssl/crypto/dso/dso_vms.c",
1003    "//third_party/openssl/crypto/dso/dso_win32.c",
1004    "//third_party/openssl/crypto/ebcdic.c",
1005    "//third_party/openssl/crypto/ec/curve25519.c",
1006    "//third_party/openssl/crypto/ec/curve448/arch_32/f_impl32.c",
1007    "//third_party/openssl/crypto/ec/curve448/arch_64/f_impl64.c",
1008    "//third_party/openssl/crypto/ec/curve448/curve448.c",
1009    "//third_party/openssl/crypto/ec/curve448/curve448_tables.c",
1010    "//third_party/openssl/crypto/ec/curve448/eddsa.c",
1011    "//third_party/openssl/crypto/ec/curve448/f_generic.c",
1012    "//third_party/openssl/crypto/ec/curve448/scalar.c",
1013    "//third_party/openssl/crypto/ec/ec2_oct.c",
1014    "//third_party/openssl/crypto/ec/ec2_smpl.c",
1015    "//third_party/openssl/crypto/ec/ec_ameth.c",
1016    "//third_party/openssl/crypto/ec/ec_asn1.c",
1017    "//third_party/openssl/crypto/ec/ec_backend.c",
1018    "//third_party/openssl/crypto/ec/ec_check.c",
1019    "//third_party/openssl/crypto/ec/ec_curve.c",
1020    "//third_party/openssl/crypto/ec/ec_cvt.c",
1021    "//third_party/openssl/crypto/ec/ec_deprecated.c",
1022    "//third_party/openssl/crypto/ec/ec_err.c",
1023    "//third_party/openssl/crypto/ec/ec_key.c",
1024    "//third_party/openssl/crypto/ec/ec_kmeth.c",
1025    "//third_party/openssl/crypto/ec/ec_lib.c",
1026    "//third_party/openssl/crypto/ec/ec_mult.c",
1027    "//third_party/openssl/crypto/ec/ec_oct.c",
1028    "//third_party/openssl/crypto/ec/ec_pmeth.c",
1029    "//third_party/openssl/crypto/ec/ec_print.c",
1030    "//third_party/openssl/crypto/ec/ecdh_kdf.c",
1031    "//third_party/openssl/crypto/ec/ecdh_ossl.c",
1032    "//third_party/openssl/crypto/ec/ecdsa_ossl.c",
1033    "//third_party/openssl/crypto/ec/ecdsa_sign.c",
1034    "//third_party/openssl/crypto/ec/ecdsa_vrf.c",
1035    "//third_party/openssl/crypto/ec/eck_prn.c",
1036    "//third_party/openssl/crypto/ec/ecp_mont.c",
1037    "//third_party/openssl/crypto/ec/ecp_nist.c",
1038    "//third_party/openssl/crypto/ec/ecp_nistz256.c",
1039    "//third_party/openssl/crypto/ec/ecp_oct.c",
1040    "//third_party/openssl/crypto/ec/ecp_smpl.c",
1041    "//third_party/openssl/crypto/ec/ecx_backend.c",
1042    "//third_party/openssl/crypto/ec/ecx_key.c",
1043    "//third_party/openssl/crypto/ec/ecx_meth.c",
1044    "//third_party/openssl/crypto/encode_decode/decoder_err.c",
1045    "//third_party/openssl/crypto/encode_decode/decoder_lib.c",
1046    "//third_party/openssl/crypto/encode_decode/decoder_meth.c",
1047    "//third_party/openssl/crypto/encode_decode/decoder_pkey.c",
1048    "//third_party/openssl/crypto/encode_decode/encoder_err.c",
1049    "//third_party/openssl/crypto/encode_decode/encoder_lib.c",
1050    "//third_party/openssl/crypto/encode_decode/encoder_meth.c",
1051    "//third_party/openssl/crypto/encode_decode/encoder_pkey.c",
1052    "//third_party/openssl/crypto/engine/eng_all.c",
1053    "//third_party/openssl/crypto/engine/eng_cnf.c",
1054    "//third_party/openssl/crypto/engine/eng_ctrl.c",
1055    "//third_party/openssl/crypto/engine/eng_dyn.c",
1056    "//third_party/openssl/crypto/engine/eng_err.c",
1057    "//third_party/openssl/crypto/engine/eng_fat.c",
1058    "//third_party/openssl/crypto/engine/eng_init.c",
1059    "//third_party/openssl/crypto/engine/eng_lib.c",
1060    "//third_party/openssl/crypto/engine/eng_list.c",
1061    "//third_party/openssl/crypto/engine/eng_openssl.c",
1062    "//third_party/openssl/crypto/engine/eng_pkey.c",
1063    "//third_party/openssl/crypto/engine/eng_rdrand.c",
1064    "//third_party/openssl/crypto/engine/eng_table.c",
1065    "//third_party/openssl/crypto/engine/tb_asnmth.c",
1066    "//third_party/openssl/crypto/engine/tb_cipher.c",
1067    "//third_party/openssl/crypto/engine/tb_dh.c",
1068    "//third_party/openssl/crypto/engine/tb_digest.c",
1069    "//third_party/openssl/crypto/engine/tb_dsa.c",
1070    "//third_party/openssl/crypto/engine/tb_eckey.c",
1071    "//third_party/openssl/crypto/engine/tb_pkmeth.c",
1072    "//third_party/openssl/crypto/engine/tb_rand.c",
1073    "//third_party/openssl/crypto/engine/tb_rsa.c",
1074    "//third_party/openssl/crypto/err/err.c",
1075    "//third_party/openssl/crypto/err/err_all.c",
1076    "//third_party/openssl/crypto/err/err_all_legacy.c",
1077    "//third_party/openssl/crypto/err/err_blocks.c",
1078    "//third_party/openssl/crypto/err/err_prn.c",
1079    "//third_party/openssl/crypto/ess/ess_asn1.c",
1080    "//third_party/openssl/crypto/ess/ess_err.c",
1081    "//third_party/openssl/crypto/ess/ess_lib.c",
1082    "//third_party/openssl/crypto/evp/asymcipher.c",
1083    "//third_party/openssl/crypto/evp/bio_b64.c",
1084    "//third_party/openssl/crypto/evp/bio_enc.c",
1085    "//third_party/openssl/crypto/evp/bio_md.c",
1086    "//third_party/openssl/crypto/evp/bio_ok.c",
1087    "//third_party/openssl/crypto/evp/c_allc.c",
1088    "//third_party/openssl/crypto/evp/c_alld.c",
1089    "//third_party/openssl/crypto/evp/cmeth_lib.c",
1090    "//third_party/openssl/crypto/evp/ctrl_params_translate.c",
1091    "//third_party/openssl/crypto/evp/dh_ctrl.c",
1092    "//third_party/openssl/crypto/evp/dh_support.c",
1093    "//third_party/openssl/crypto/evp/digest.c",
1094    "//third_party/openssl/crypto/evp/dsa_ctrl.c",
1095    "//third_party/openssl/crypto/evp/e_aes.c",
1096    "//third_party/openssl/crypto/evp/e_aes_cbc_hmac_sha1.c",
1097    "//third_party/openssl/crypto/evp/e_aes_cbc_hmac_sha256.c",
1098    "//third_party/openssl/crypto/evp/e_aria.c",
1099    "//third_party/openssl/crypto/evp/e_bf.c",
1100    "//third_party/openssl/crypto/evp/e_camellia.c",
1101    "//third_party/openssl/crypto/evp/e_cast.c",
1102    "//third_party/openssl/crypto/evp/e_chacha20_poly1305.c",
1103    "//third_party/openssl/crypto/evp/e_des.c",
1104    "//third_party/openssl/crypto/evp/e_des3.c",
1105    "//third_party/openssl/crypto/evp/e_idea.c",
1106    "//third_party/openssl/crypto/evp/e_null.c",
1107    "//third_party/openssl/crypto/evp/e_old.c",
1108    "//third_party/openssl/crypto/evp/e_rc2.c",
1109    "//third_party/openssl/crypto/evp/e_rc4.c",
1110    "//third_party/openssl/crypto/evp/e_rc4_hmac_md5.c",
1111    "//third_party/openssl/crypto/evp/e_rc5.c",
1112    "//third_party/openssl/crypto/evp/e_seed.c",
1113    "//third_party/openssl/crypto/evp/e_sm4.c",
1114    "//third_party/openssl/crypto/evp/e_xcbc_d.c",
1115    "//third_party/openssl/crypto/evp/ec_ctrl.c",
1116    "//third_party/openssl/crypto/evp/ec_support.c",
1117    "//third_party/openssl/crypto/evp/encode.c",
1118    "//third_party/openssl/crypto/evp/evp_cnf.c",
1119    "//third_party/openssl/crypto/evp/evp_enc.c",
1120    "//third_party/openssl/crypto/evp/evp_err.c",
1121    "//third_party/openssl/crypto/evp/evp_fetch.c",
1122    "//third_party/openssl/crypto/evp/evp_key.c",
1123    "//third_party/openssl/crypto/evp/evp_lib.c",
1124    "//third_party/openssl/crypto/evp/evp_pbe.c",
1125    "//third_party/openssl/crypto/evp/evp_pkey.c",
1126    "//third_party/openssl/crypto/evp/evp_rand.c",
1127    "//third_party/openssl/crypto/evp/evp_utils.c",
1128    "//third_party/openssl/crypto/evp/exchange.c",
1129    "//third_party/openssl/crypto/evp/kdf_lib.c",
1130    "//third_party/openssl/crypto/evp/kdf_meth.c",
1131    "//third_party/openssl/crypto/evp/kem.c",
1132    "//third_party/openssl/crypto/evp/keymgmt_lib.c",
1133    "//third_party/openssl/crypto/evp/keymgmt_meth.c",
1134    "//third_party/openssl/crypto/evp/legacy_blake2.c",
1135    "//third_party/openssl/crypto/evp/legacy_md4.c",
1136    "//third_party/openssl/crypto/evp/legacy_md5.c",
1137    "//third_party/openssl/crypto/evp/legacy_md5_sha1.c",
1138    "//third_party/openssl/crypto/evp/legacy_mdc2.c",
1139    "//third_party/openssl/crypto/evp/legacy_ripemd.c",
1140    "//third_party/openssl/crypto/evp/legacy_sha.c",
1141    "//third_party/openssl/crypto/evp/legacy_wp.c",
1142    "//third_party/openssl/crypto/evp/m_null.c",
1143    "//third_party/openssl/crypto/evp/m_sigver.c",
1144    "//third_party/openssl/crypto/evp/mac_lib.c",
1145    "//third_party/openssl/crypto/evp/mac_meth.c",
1146    "//third_party/openssl/crypto/evp/names.c",
1147    "//third_party/openssl/crypto/evp/p5_crpt.c",
1148    "//third_party/openssl/crypto/evp/p5_crpt2.c",
1149    "//third_party/openssl/crypto/evp/p_dec.c",
1150    "//third_party/openssl/crypto/evp/p_enc.c",
1151    "//third_party/openssl/crypto/evp/p_legacy.c",
1152    "//third_party/openssl/crypto/evp/p_lib.c",
1153    "//third_party/openssl/crypto/evp/p_open.c",
1154    "//third_party/openssl/crypto/evp/p_seal.c",
1155    "//third_party/openssl/crypto/evp/p_sign.c",
1156    "//third_party/openssl/crypto/evp/p_verify.c",
1157    "//third_party/openssl/crypto/evp/pbe_scrypt.c",
1158    "//third_party/openssl/crypto/evp/pmeth_check.c",
1159    "//third_party/openssl/crypto/evp/pmeth_gn.c",
1160    "//third_party/openssl/crypto/evp/pmeth_lib.c",
1161    "//third_party/openssl/crypto/evp/signature.c",
1162    "//third_party/openssl/crypto/ex_data.c",
1163    "//third_party/openssl/crypto/ffc/ffc_backend.c",
1164    "//third_party/openssl/crypto/ffc/ffc_dh.c",
1165    "//third_party/openssl/crypto/ffc/ffc_key_generate.c",
1166    "//third_party/openssl/crypto/ffc/ffc_key_validate.c",
1167    "//third_party/openssl/crypto/ffc/ffc_params.c",
1168    "//third_party/openssl/crypto/ffc/ffc_params_generate.c",
1169    "//third_party/openssl/crypto/ffc/ffc_params_validate.c",
1170    "//third_party/openssl/crypto/getenv.c",
1171    "//third_party/openssl/crypto/hmac/hmac.c",
1172    "//third_party/openssl/crypto/http/http_client.c",
1173    "//third_party/openssl/crypto/http/http_err.c",
1174    "//third_party/openssl/crypto/http/http_lib.c",
1175    "//third_party/openssl/crypto/idea/i_cbc.c",
1176    "//third_party/openssl/crypto/idea/i_cfb64.c",
1177    "//third_party/openssl/crypto/idea/i_ecb.c",
1178    "//third_party/openssl/crypto/idea/i_ofb64.c",
1179    "//third_party/openssl/crypto/idea/i_skey.c",
1180    "//third_party/openssl/crypto/info.c",
1181    "//third_party/openssl/crypto/init.c",
1182    "//third_party/openssl/crypto/initthread.c",
1183    "//third_party/openssl/crypto/kdf/kdf_err.c",
1184    "//third_party/openssl/crypto/lhash/lh_stats.c",
1185    "//third_party/openssl/crypto/lhash/lhash.c",
1186    "//third_party/openssl/crypto/md4/md4_dgst.c",
1187    "//third_party/openssl/crypto/md4/md4_one.c",
1188    "//third_party/openssl/crypto/md5/md5_dgst.c",
1189    "//third_party/openssl/crypto/md5/md5_one.c",
1190    "//third_party/openssl/crypto/md5/md5_sha1.c",
1191    "//third_party/openssl/crypto/mdc2/mdc2_one.c",
1192    "//third_party/openssl/crypto/mdc2/mdc2dgst.c",
1193    "//third_party/openssl/crypto/mem.c",
1194    "//third_party/openssl/crypto/mem_sec.c",
1195    "//third_party/openssl/crypto/modes/cbc128.c",
1196    "//third_party/openssl/crypto/modes/ccm128.c",
1197    "//third_party/openssl/crypto/modes/cfb128.c",
1198    "//third_party/openssl/crypto/modes/ctr128.c",
1199    "//third_party/openssl/crypto/modes/cts128.c",
1200    "//third_party/openssl/crypto/modes/gcm128.c",
1201    "//third_party/openssl/crypto/modes/ocb128.c",
1202    "//third_party/openssl/crypto/modes/ofb128.c",
1203    "//third_party/openssl/crypto/modes/siv128.c",
1204    "//third_party/openssl/crypto/modes/wrap128.c",
1205    "//third_party/openssl/crypto/modes/xts128.c",
1206    "//third_party/openssl/crypto/o_dir.c",
1207    "//third_party/openssl/crypto/o_fopen.c",
1208    "//third_party/openssl/crypto/o_init.c",
1209    "//third_party/openssl/crypto/o_str.c",
1210    "//third_party/openssl/crypto/o_time.c",
1211    "//third_party/openssl/crypto/objects/o_names.c",
1212    "//third_party/openssl/crypto/objects/obj_dat.c",
1213    "//third_party/openssl/crypto/objects/obj_err.c",
1214    "//third_party/openssl/crypto/objects/obj_lib.c",
1215    "//third_party/openssl/crypto/objects/obj_xref.c",
1216    "//third_party/openssl/crypto/ocsp/ocsp_asn.c",
1217    "//third_party/openssl/crypto/ocsp/ocsp_cl.c",
1218    "//third_party/openssl/crypto/ocsp/ocsp_err.c",
1219    "//third_party/openssl/crypto/ocsp/ocsp_ext.c",
1220    "//third_party/openssl/crypto/ocsp/ocsp_http.c",
1221    "//third_party/openssl/crypto/ocsp/ocsp_lib.c",
1222    "//third_party/openssl/crypto/ocsp/ocsp_prn.c",
1223    "//third_party/openssl/crypto/ocsp/ocsp_srv.c",
1224    "//third_party/openssl/crypto/ocsp/ocsp_vfy.c",
1225    "//third_party/openssl/crypto/ocsp/v3_ocsp.c",
1226    "//third_party/openssl/crypto/packet.c",
1227    "//third_party/openssl/crypto/param_build.c",
1228    "//third_party/openssl/crypto/param_build_set.c",
1229    "//third_party/openssl/crypto/params.c",
1230    "//third_party/openssl/crypto/params_dup.c",
1231    "//third_party/openssl/crypto/params_from_text.c",
1232    "//third_party/openssl/crypto/passphrase.c",
1233    "//third_party/openssl/crypto/pem/pem_all.c",
1234    "//third_party/openssl/crypto/pem/pem_err.c",
1235    "//third_party/openssl/crypto/pem/pem_info.c",
1236    "//third_party/openssl/crypto/pem/pem_lib.c",
1237    "//third_party/openssl/crypto/pem/pem_oth.c",
1238    "//third_party/openssl/crypto/pem/pem_pk8.c",
1239    "//third_party/openssl/crypto/pem/pem_pkey.c",
1240    "//third_party/openssl/crypto/pem/pem_sign.c",
1241    "//third_party/openssl/crypto/pem/pem_x509.c",
1242    "//third_party/openssl/crypto/pem/pem_xaux.c",
1243    "//third_party/openssl/crypto/pem/pvkfmt.c",
1244    "//third_party/openssl/crypto/pkcs12/p12_add.c",
1245    "//third_party/openssl/crypto/pkcs12/p12_asn.c",
1246    "//third_party/openssl/crypto/pkcs12/p12_attr.c",
1247    "//third_party/openssl/crypto/pkcs12/p12_crpt.c",
1248    "//third_party/openssl/crypto/pkcs12/p12_crt.c",
1249    "//third_party/openssl/crypto/pkcs12/p12_decr.c",
1250    "//third_party/openssl/crypto/pkcs12/p12_init.c",
1251    "//third_party/openssl/crypto/pkcs12/p12_key.c",
1252    "//third_party/openssl/crypto/pkcs12/p12_kiss.c",
1253    "//third_party/openssl/crypto/pkcs12/p12_mutl.c",
1254    "//third_party/openssl/crypto/pkcs12/p12_npas.c",
1255    "//third_party/openssl/crypto/pkcs12/p12_p8d.c",
1256    "//third_party/openssl/crypto/pkcs12/p12_p8e.c",
1257    "//third_party/openssl/crypto/pkcs12/p12_sbag.c",
1258    "//third_party/openssl/crypto/pkcs12/p12_utl.c",
1259    "//third_party/openssl/crypto/pkcs12/pk12err.c",
1260    "//third_party/openssl/crypto/pkcs7/bio_pk7.c",
1261    "//third_party/openssl/crypto/pkcs7/pk7_asn1.c",
1262    "//third_party/openssl/crypto/pkcs7/pk7_attr.c",
1263    "//third_party/openssl/crypto/pkcs7/pk7_doit.c",
1264    "//third_party/openssl/crypto/pkcs7/pk7_lib.c",
1265    "//third_party/openssl/crypto/pkcs7/pk7_mime.c",
1266    "//third_party/openssl/crypto/pkcs7/pk7_smime.c",
1267    "//third_party/openssl/crypto/pkcs7/pkcs7err.c",
1268    "//third_party/openssl/crypto/poly1305/poly1305.c",
1269    "//third_party/openssl/crypto/property/defn_cache.c",
1270    "//third_party/openssl/crypto/property/property.c",
1271    "//third_party/openssl/crypto/property/property_err.c",
1272    "//third_party/openssl/crypto/property/property_parse.c",
1273    "//third_party/openssl/crypto/property/property_query.c",
1274    "//third_party/openssl/crypto/property/property_string.c",
1275    "//third_party/openssl/crypto/provider.c",
1276    "//third_party/openssl/crypto/provider_child.c",
1277    "//third_party/openssl/crypto/provider_conf.c",
1278    "//third_party/openssl/crypto/provider_core.c",
1279    "//third_party/openssl/crypto/provider_predefined.c",
1280    "//third_party/openssl/crypto/punycode.c",
1281    "//third_party/openssl/crypto/rand/prov_seed.c",
1282    "//third_party/openssl/crypto/rand/rand_deprecated.c",
1283    "//third_party/openssl/crypto/rand/rand_err.c",
1284    "//third_party/openssl/crypto/rand/rand_lib.c",
1285    "//third_party/openssl/crypto/rand/rand_meth.c",
1286    "//third_party/openssl/crypto/rand/rand_pool.c",
1287    "//third_party/openssl/crypto/rand/randfile.c",
1288    "//third_party/openssl/crypto/rc2/rc2_cbc.c",
1289    "//third_party/openssl/crypto/rc2/rc2_ecb.c",
1290    "//third_party/openssl/crypto/rc2/rc2_skey.c",
1291    "//third_party/openssl/crypto/rc2/rc2cfb64.c",
1292    "//third_party/openssl/crypto/rc2/rc2ofb64.c",
1293    "//third_party/openssl/crypto/ripemd/rmd_dgst.c",
1294    "//third_party/openssl/crypto/ripemd/rmd_one.c",
1295    "//third_party/openssl/crypto/rsa/rsa_ameth.c",
1296    "//third_party/openssl/crypto/rsa/rsa_asn1.c",
1297    "//third_party/openssl/crypto/rsa/rsa_backend.c",
1298    "//third_party/openssl/crypto/rsa/rsa_chk.c",
1299    "//third_party/openssl/crypto/rsa/rsa_crpt.c",
1300    "//third_party/openssl/crypto/rsa/rsa_depr.c",
1301    "//third_party/openssl/crypto/rsa/rsa_err.c",
1302    "//third_party/openssl/crypto/rsa/rsa_gen.c",
1303    "//third_party/openssl/crypto/rsa/rsa_lib.c",
1304    "//third_party/openssl/crypto/rsa/rsa_meth.c",
1305    "//third_party/openssl/crypto/rsa/rsa_mp.c",
1306    "//third_party/openssl/crypto/rsa/rsa_mp_names.c",
1307    "//third_party/openssl/crypto/rsa/rsa_none.c",
1308    "//third_party/openssl/crypto/rsa/rsa_oaep.c",
1309    "//third_party/openssl/crypto/rsa/rsa_ossl.c",
1310    "//third_party/openssl/crypto/rsa/rsa_pk1.c",
1311    "//third_party/openssl/crypto/rsa/rsa_pmeth.c",
1312    "//third_party/openssl/crypto/rsa/rsa_prn.c",
1313    "//third_party/openssl/crypto/rsa/rsa_pss.c",
1314    "//third_party/openssl/crypto/rsa/rsa_saos.c",
1315    "//third_party/openssl/crypto/rsa/rsa_schemes.c",
1316    "//third_party/openssl/crypto/rsa/rsa_sign.c",
1317    "//third_party/openssl/crypto/rsa/rsa_sp800_56b_check.c",
1318    "//third_party/openssl/crypto/rsa/rsa_sp800_56b_gen.c",
1319    "//third_party/openssl/crypto/rsa/rsa_x931.c",
1320    "//third_party/openssl/crypto/rsa/rsa_x931g.c",
1321    "//third_party/openssl/crypto/seed/seed.c",
1322    "//third_party/openssl/crypto/seed/seed_cbc.c",
1323    "//third_party/openssl/crypto/seed/seed_cfb.c",
1324    "//third_party/openssl/crypto/seed/seed_ecb.c",
1325    "//third_party/openssl/crypto/seed/seed_ofb.c",
1326    "//third_party/openssl/crypto/self_test_core.c",
1327    "//third_party/openssl/crypto/sha/sha1_one.c",
1328    "//third_party/openssl/crypto/sha/sha1dgst.c",
1329    "//third_party/openssl/crypto/sha/sha256.c",
1330    "//third_party/openssl/crypto/sha/sha3.c",
1331    "//third_party/openssl/crypto/sha/sha512.c",
1332    "//third_party/openssl/crypto/siphash/siphash.c",
1333    "//third_party/openssl/crypto/sm2/sm2_crypt.c",
1334    "//third_party/openssl/crypto/sm2/sm2_err.c",
1335    "//third_party/openssl/crypto/sm2/sm2_key.c",
1336    "//third_party/openssl/crypto/sm2/sm2_sign.c",
1337    "//third_party/openssl/crypto/sm3/legacy_sm3.c",
1338    "//third_party/openssl/crypto/sm3/sm3.c",
1339    "//third_party/openssl/crypto/sm4/sm4.c",
1340    "//third_party/openssl/crypto/sparse_array.c",
1341    "//third_party/openssl/crypto/srp/srp_lib.c",
1342    "//third_party/openssl/crypto/srp/srp_vfy.c",
1343    "//third_party/openssl/crypto/stack/stack.c",
1344    "//third_party/openssl/crypto/store/store_err.c",
1345    "//third_party/openssl/crypto/store/store_init.c",
1346    "//third_party/openssl/crypto/store/store_lib.c",
1347    "//third_party/openssl/crypto/store/store_meth.c",
1348    "//third_party/openssl/crypto/store/store_register.c",
1349    "//third_party/openssl/crypto/store/store_result.c",
1350    "//third_party/openssl/crypto/store/store_strings.c",
1351    "//third_party/openssl/crypto/threads_lib.c",
1352    "//third_party/openssl/crypto/threads_none.c",
1353    "//third_party/openssl/crypto/threads_pthread.c",
1354    "//third_party/openssl/crypto/threads_win.c",
1355    "//third_party/openssl/crypto/trace.c",
1356    "//third_party/openssl/crypto/ts/ts_asn1.c",
1357    "//third_party/openssl/crypto/ts/ts_conf.c",
1358    "//third_party/openssl/crypto/ts/ts_err.c",
1359    "//third_party/openssl/crypto/ts/ts_lib.c",
1360    "//third_party/openssl/crypto/ts/ts_req_print.c",
1361    "//third_party/openssl/crypto/ts/ts_req_utils.c",
1362    "//third_party/openssl/crypto/ts/ts_rsp_print.c",
1363    "//third_party/openssl/crypto/ts/ts_rsp_sign.c",
1364    "//third_party/openssl/crypto/ts/ts_rsp_utils.c",
1365    "//third_party/openssl/crypto/ts/ts_rsp_verify.c",
1366    "//third_party/openssl/crypto/ts/ts_verify_ctx.c",
1367    "//third_party/openssl/crypto/txt_db/txt_db.c",
1368    "//third_party/openssl/crypto/ui/ui_err.c",
1369    "//third_party/openssl/crypto/ui/ui_lib.c",
1370    "//third_party/openssl/crypto/ui/ui_null.c",
1371    "//third_party/openssl/crypto/ui/ui_openssl.c",
1372    "//third_party/openssl/crypto/ui/ui_util.c",
1373    "//third_party/openssl/crypto/uid.c",
1374    "//third_party/openssl/crypto/whrlpool/wp_dgst.c",
1375    "//third_party/openssl/crypto/x509/by_dir.c",
1376    "//third_party/openssl/crypto/x509/by_file.c",
1377    "//third_party/openssl/crypto/x509/by_store.c",
1378    "//third_party/openssl/crypto/x509/pcy_cache.c",
1379    "//third_party/openssl/crypto/x509/pcy_data.c",
1380    "//third_party/openssl/crypto/x509/pcy_lib.c",
1381    "//third_party/openssl/crypto/x509/pcy_map.c",
1382    "//third_party/openssl/crypto/x509/pcy_node.c",
1383    "//third_party/openssl/crypto/x509/pcy_tree.c",
1384    "//third_party/openssl/crypto/x509/t_crl.c",
1385    "//third_party/openssl/crypto/x509/t_req.c",
1386    "//third_party/openssl/crypto/x509/t_x509.c",
1387    "//third_party/openssl/crypto/x509/v3_addr.c",
1388    "//third_party/openssl/crypto/x509/v3_admis.c",
1389    "//third_party/openssl/crypto/x509/v3_akeya.c",
1390    "//third_party/openssl/crypto/x509/v3_akid.c",
1391    "//third_party/openssl/crypto/x509/v3_asid.c",
1392    "//third_party/openssl/crypto/x509/v3_bcons.c",
1393    "//third_party/openssl/crypto/x509/v3_bitst.c",
1394    "//third_party/openssl/crypto/x509/v3_conf.c",
1395    "//third_party/openssl/crypto/x509/v3_cpols.c",
1396    "//third_party/openssl/crypto/x509/v3_crld.c",
1397    "//third_party/openssl/crypto/x509/v3_enum.c",
1398    "//third_party/openssl/crypto/x509/v3_extku.c",
1399    "//third_party/openssl/crypto/x509/v3_genn.c",
1400    "//third_party/openssl/crypto/x509/v3_ia5.c",
1401    "//third_party/openssl/crypto/x509/v3_info.c",
1402    "//third_party/openssl/crypto/x509/v3_int.c",
1403    "//third_party/openssl/crypto/x509/v3_ist.c",
1404    "//third_party/openssl/crypto/x509/v3_lib.c",
1405    "//third_party/openssl/crypto/x509/v3_ncons.c",
1406    "//third_party/openssl/crypto/x509/v3_pci.c",
1407    "//third_party/openssl/crypto/x509/v3_pcia.c",
1408    "//third_party/openssl/crypto/x509/v3_pcons.c",
1409    "//third_party/openssl/crypto/x509/v3_pku.c",
1410    "//third_party/openssl/crypto/x509/v3_pmaps.c",
1411    "//third_party/openssl/crypto/x509/v3_prn.c",
1412    "//third_party/openssl/crypto/x509/v3_purp.c",
1413    "//third_party/openssl/crypto/x509/v3_san.c",
1414    "//third_party/openssl/crypto/x509/v3_skid.c",
1415    "//third_party/openssl/crypto/x509/v3_sxnet.c",
1416    "//third_party/openssl/crypto/x509/v3_tlsf.c",
1417    "//third_party/openssl/crypto/x509/v3_utf8.c",
1418    "//third_party/openssl/crypto/x509/v3_utl.c",
1419    "//third_party/openssl/crypto/x509/v3err.c",
1420    "//third_party/openssl/crypto/x509/x509_att.c",
1421    "//third_party/openssl/crypto/x509/x509_cmp.c",
1422    "//third_party/openssl/crypto/x509/x509_d2.c",
1423    "//third_party/openssl/crypto/x509/x509_def.c",
1424    "//third_party/openssl/crypto/x509/x509_err.c",
1425    "//third_party/openssl/crypto/x509/x509_ext.c",
1426    "//third_party/openssl/crypto/x509/x509_lu.c",
1427    "//third_party/openssl/crypto/x509/x509_meth.c",
1428    "//third_party/openssl/crypto/x509/x509_obj.c",
1429    "//third_party/openssl/crypto/x509/x509_r2x.c",
1430    "//third_party/openssl/crypto/x509/x509_req.c",
1431    "//third_party/openssl/crypto/x509/x509_set.c",
1432    "//third_party/openssl/crypto/x509/x509_trust.c",
1433    "//third_party/openssl/crypto/x509/x509_txt.c",
1434    "//third_party/openssl/crypto/x509/x509_v3.c",
1435    "//third_party/openssl/crypto/x509/x509_vfy.c",
1436    "//third_party/openssl/crypto/x509/x509_vpm.c",
1437    "//third_party/openssl/crypto/x509/x509cset.c",
1438    "//third_party/openssl/crypto/x509/x509name.c",
1439    "//third_party/openssl/crypto/x509/x509rset.c",
1440    "//third_party/openssl/crypto/x509/x509spki.c",
1441    "//third_party/openssl/crypto/x509/x509type.c",
1442    "//third_party/openssl/crypto/x509/x_all.c",
1443    "//third_party/openssl/crypto/x509/x_attrib.c",
1444    "//third_party/openssl/crypto/x509/x_crl.c",
1445    "//third_party/openssl/crypto/x509/x_exten.c",
1446    "//third_party/openssl/crypto/x509/x_name.c",
1447    "//third_party/openssl/crypto/x509/x_pubkey.c",
1448    "//third_party/openssl/crypto/x509/x_req.c",
1449    "//third_party/openssl/crypto/x509/x_x509.c",
1450    "//third_party/openssl/crypto/x509/x_x509a.c",
1451    "//third_party/openssl/engines/e_capi.c",
1452    "//third_party/openssl/engines/e_padlock.c",
1453    "//third_party/openssl/providers/baseprov.c",
1454    "//third_party/openssl/providers/defltprov.c",
1455    "//third_party/openssl/providers/legacyprov.c",
1456    "//third_party/openssl/providers/nullprov.c",
1457    "//third_party/openssl/providers/prov_running.c",
1458  ]
1459
1460  sources += libcommon_common_sources
1461  sources += libcommon_build_all_generated_selected_platform_sources
1462  sources += libdefault_common_sources
1463  sources += libdefault_build_all_generated_selected_platform_sources
1464  sources += libcrypto_build_all_generated_selected_platform_sources
1465  sources += liblegacy_sources
1466
1467  if (openssl_selected_platform == "linux-armv4") {
1468    sources += [
1469      "//third_party/openssl/crypto/aes/aes_cbc.c",
1470      "//third_party/openssl/crypto/armcap.c",
1471      "//third_party/openssl/crypto/bn/bn_asm.c",
1472      "//third_party/openssl/crypto/camellia/camellia.c",
1473      "//third_party/openssl/crypto/camellia/cmll_cbc.c",
1474      "//third_party/openssl/crypto/rc4/rc4_enc.c",
1475      "//third_party/openssl/crypto/rc4/rc4_skey.c",
1476      "//third_party/openssl/crypto/whrlpool/wp_block.c",
1477      "//third_party/openssl/engines/e_afalg.c",
1478    ]
1479  } else if (openssl_selected_platform == "linux-aarch64") {
1480    sources += [
1481      "//third_party/openssl/crypto/aes/aes_cbc.c",
1482      "//third_party/openssl/crypto/aes/aes_core.c",
1483      "//third_party/openssl/crypto/armcap.c",
1484      "//third_party/openssl/crypto/bn/bn_asm.c",
1485      "//third_party/openssl/crypto/camellia/camellia.c",
1486      "//third_party/openssl/crypto/camellia/cmll_cbc.c",
1487      "//third_party/openssl/crypto/rc4/rc4_enc.c",
1488      "//third_party/openssl/crypto/rc4/rc4_skey.c",
1489      "//third_party/openssl/crypto/whrlpool/wp_block.c",
1490      "//third_party/openssl/engines/e_afalg.c",
1491    ]
1492  } else if (openssl_selected_platform == "darwin64-x86_64-cc") {
1493    sources += [
1494      "//third_party/openssl/crypto/bn/asm/x86_64-gcc.c",
1495      "//third_party/openssl/crypto/bn/rsaz_exp.c",
1496      "//third_party/openssl/crypto/bn/rsaz_exp_x2.c",
1497    ]
1498  } else if (openssl_selected_platform == "darwin64-arm64-cc") {
1499    sources += [
1500      "//third_party/openssl/crypto/aes/aes_cbc.c",
1501      "//third_party/openssl/crypto/aes/aes_core.c",
1502      "//third_party/openssl/crypto/armcap.c",
1503      "//third_party/openssl/crypto/bn/bn_asm.c",
1504      "//third_party/openssl/crypto/camellia/camellia.c",
1505      "//third_party/openssl/crypto/camellia/cmll_cbc.c",
1506      "//third_party/openssl/crypto/rc4/rc4_enc.c",
1507      "//third_party/openssl/crypto/rc4/rc4_skey.c",
1508      "//third_party/openssl/crypto/whrlpool/wp_block.c",
1509    ]
1510  } else if (openssl_selected_platform == "linux-x86_64") {
1511    sources += [
1512      "//third_party/openssl/crypto/bn/asm/x86_64-gcc.c",
1513      "//third_party/openssl/crypto/bn/rsaz_exp.c",
1514      "//third_party/openssl/crypto/bn/rsaz_exp_x2.c",
1515      "//third_party/openssl/engines/e_afalg.c",
1516    ]
1517  } else if (openssl_selected_platform == "linux-x86") {
1518    sources += []
1519  } else if (openssl_selected_platform == "mingw64") {
1520    sources += [
1521      "//third_party/openssl/crypto/bn/asm/x86_64-gcc.c",
1522      "//third_party/openssl/crypto/bn/rsaz_exp.c",
1523      "//third_party/openssl/crypto/bn/rsaz_exp_x2.c",
1524      "//third_party/openssl/crypto/dllmain.c",
1525    ]
1526  }
1527
1528  configs = [ ":crypto_config_private" ]
1529  public_configs = [ ":crypto_config_public" ]
1530  deps = [ ":openssl_build_all_generated" ]
1531  subsystem_name = "thirdparty"
1532  part_name = "openssl"
1533}
1534
1535ohos_static_library("libcrypto_static") {
1536  deps = [ ":crypto_source" ]
1537  public_configs = [ ":crypto_config_public" ]
1538  complete_static_lib = true
1539  subsystem_name = "thirdparty"
1540  part_name = "openssl"
1541}
1542
1543if (is_mingw || is_mac) {
1544  ohos_shared_library("libcrypto_restool") {
1545    if (is_mingw) {
1546      lib_dirs = [ "//prebuilts/mingw-w64/ohos/linux-x86_64/clang-mingw/x86_64-w64-mingw32/lib" ]
1547      libs = [ "ws2_32" ]
1548    }
1549    deps = [ ":crypto_source" ]
1550    subsystem_name = "thirdparty"
1551    part_name = "openssl"
1552    public_configs = [ ":crypto_config_public" ]
1553    install_images = [
1554      "system",
1555      "updater",
1556    ]
1557    subsystem_name = "thirdparty"
1558    part_name = "openssl"
1559  }
1560}
1561
1562ohos_shared_library("libcrypto_shared") {
1563  if (is_mingw) {
1564    lib_dirs = [ "//prebuilts/mingw-w64/ohos/linux-x86_64/clang-mingw/x86_64-w64-mingw32/lib" ]
1565    libs = [ "ws2_32" ]
1566  }
1567  deps = [
1568    ":crypto_source",
1569    ":openssl.cnf",
1570  ]
1571  output_name = "libcrypto_openssl"
1572  subsystem_name = "thirdparty"
1573  part_name = "openssl"
1574  public_configs = [ ":crypto_config_public" ]
1575  install_images = [
1576    "system",
1577    "updater",
1578  ]
1579}
1580
1581unused_variables = []
1582unused_variables += unused_variables
1583unused_variables += crypto_config_common_private_include_dirs
1584unused_variables += crypto_config_common_public_include_dirs
1585unused_variables += crypto_config_common_cflags
1586unused_variables += crypto_config_linux_armv4_cflags
1587unused_variables += crypto_config_linux_aarch64_cflags
1588unused_variables += crypto_config_darwin64_x86_64_cc_cflags
1589unused_variables += crypto_config_darwin64_arm64_cc_cflags
1590unused_variables += crypto_config_linux_x86_64_cflags
1591unused_variables += crypto_config_linux_x86_cflags
1592unused_variables += crypto_config_mingw64_cflags
1593unused_variables += libcommon_common_sources
1594unused_variables += libdefault_common_sources
1595unused_variables += libcrypto_build_all_generated_linux_armv4_sources
1596unused_variables += libcrypto_build_all_generated_linux_aarch64_sources
1597unused_variables += libcrypto_build_all_generated_darwin64_x86_64_cc_sources
1598unused_variables += libcrypto_build_all_generated_darwin64_arm64_cc_sources
1599unused_variables += libcrypto_build_all_generated_linux_x86_64_sources
1600unused_variables += libcrypto_build_all_generated_linux_x86_sources
1601unused_variables += libcrypto_build_all_generated_mingw64_sources
1602
1603config("ssl_config_private") {
1604  include_dirs = crypto_config_common_private_include_dirs
1605  cflags = crypto_config_common_cflags + crypto_config_current_platform_cflags +
1606           openssl_internal_cflags
1607}
1608
1609config("ssl_config_public") {
1610  include_dirs = crypto_config_common_public_include_dirs
1611}
1612
1613ohos_source_set("ssl_source") {
1614  sources = [
1615    "//third_party/openssl/ssl/bio_ssl.c",
1616    "//third_party/openssl/ssl/d1_lib.c",
1617    "//third_party/openssl/ssl/d1_msg.c",
1618    "//third_party/openssl/ssl/d1_srtp.c",
1619    "//third_party/openssl/ssl/methods.c",
1620    "//third_party/openssl/ssl/pqueue.c",
1621    "//third_party/openssl/ssl/record/dtls1_bitmap.c",
1622    "//third_party/openssl/ssl/record/rec_layer_d1.c",
1623    "//third_party/openssl/ssl/record/rec_layer_s3.c",
1624    "//third_party/openssl/ssl/record/ssl3_buffer.c",
1625    "//third_party/openssl/ssl/record/ssl3_record.c",
1626    "//third_party/openssl/ssl/record/ssl3_record_tls13.c",
1627
1628    # ssl/s3_cbc.c has been added into libdefault_common_sources
1629    "//third_party/openssl/ssl/s3_enc.c",
1630    "//third_party/openssl/ssl/s3_lib.c",
1631    "//third_party/openssl/ssl/s3_msg.c",
1632    "//third_party/openssl/ssl/ssl_asn1.c",
1633    "//third_party/openssl/ssl/ssl_cert.c",
1634    "//third_party/openssl/ssl/ssl_ciph.c",
1635    "//third_party/openssl/ssl/ssl_conf.c",
1636    "//third_party/openssl/ssl/ssl_err.c",
1637    "//third_party/openssl/ssl/ssl_err_legacy.c",
1638    "//third_party/openssl/ssl/ssl_init.c",
1639    "//third_party/openssl/ssl/ssl_lib.c",
1640    "//third_party/openssl/ssl/ssl_mcnf.c",
1641    "//third_party/openssl/ssl/ssl_rsa.c",
1642    "//third_party/openssl/ssl/ssl_rsa_legacy.c",
1643    "//third_party/openssl/ssl/ssl_sess.c",
1644    "//third_party/openssl/ssl/ssl_stat.c",
1645    "//third_party/openssl/ssl/ssl_txt.c",
1646    "//third_party/openssl/ssl/ssl_utst.c",
1647
1648    # ssl/record/tls_pad.c has been added into libcommon_common_sources
1649    "//third_party/openssl/ssl/statem/extensions.c",
1650    "//third_party/openssl/ssl/statem/extensions_clnt.c",
1651    "//third_party/openssl/ssl/statem/extensions_cust.c",
1652    "//third_party/openssl/ssl/statem/extensions_srvr.c",
1653    "//third_party/openssl/ssl/statem/statem.c",
1654    "//third_party/openssl/ssl/statem/statem_clnt.c",
1655    "//third_party/openssl/ssl/statem/statem_dtls.c",
1656    "//third_party/openssl/ssl/statem/statem_lib.c",
1657    "//third_party/openssl/ssl/statem/statem_srvr.c",
1658    "//third_party/openssl/ssl/t1_enc.c",
1659    "//third_party/openssl/ssl/t1_lib.c",
1660    "//third_party/openssl/ssl/t1_trce.c",
1661    "//third_party/openssl/ssl/tls13_enc.c",
1662    "//third_party/openssl/ssl/tls_depr.c",
1663    "//third_party/openssl/ssl/tls_srp.c",
1664  ]
1665
1666  configs = [ ":ssl_config_private" ]
1667  public_configs = [ ":ssl_config_public" ]
1668  deps = [ ":openssl_build_all_generated" ]
1669  subsystem_name = "thirdparty"
1670  part_name = "openssl"
1671}
1672
1673ohos_static_library("libssl_static") {
1674  deps = [ ":ssl_source" ]
1675  public_configs = [ ":ssl_config_public" ]
1676  complete_static_lib = true
1677  subsystem_name = "thirdparty"
1678  part_name = "openssl"
1679}
1680
1681ohos_shared_library("libssl_shared") {
1682  deps = [
1683    ":libcrypto_shared",
1684    ":openssl.cnf",
1685    ":ssl_source",
1686  ]
1687
1688  if (is_mingw) {
1689    lib_dirs = [ "//prebuilts/mingw-w64/ohos/linux-x86_64/clang-mingw/x86_64-w64-mingw32/lib" ]
1690    libs = [ "ws2_32" ]
1691  }
1692
1693  output_name = "libssl_openssl"
1694  subsystem_name = "thirdparty"
1695  part_name = "openssl"
1696
1697  innerapi_tags = [ "platformsdk" ]
1698  public_configs = [
1699    ":crypto_config_public",
1700    ":ssl_config_public",
1701  ]
1702
1703  install_images = [
1704    "system",
1705
1706    # compile libssl_openssl.z.so to the updater image for wpa to use
1707    "updater",
1708  ]
1709}
1710
1711ohos_static_library("libapps") {
1712  sources = [
1713    "//third_party/openssl/apps/lib/app_libctx.c",
1714    "//third_party/openssl/apps/lib/app_params.c",
1715    "//third_party/openssl/apps/lib/app_provider.c",
1716    "//third_party/openssl/apps/lib/app_rand.c",
1717    "//third_party/openssl/apps/lib/app_x509.c",
1718    "//third_party/openssl/apps/lib/apps.c",
1719    "//third_party/openssl/apps/lib/apps_ui.c",
1720    "//third_party/openssl/apps/lib/columns.c",
1721    "//third_party/openssl/apps/lib/engine.c",
1722    "//third_party/openssl/apps/lib/engine_loader.c",
1723    "//third_party/openssl/apps/lib/fmt.c",
1724    "//third_party/openssl/apps/lib/http_server.c",
1725    "//third_party/openssl/apps/lib/names.c",
1726    "//third_party/openssl/apps/lib/opt.c",
1727    "//third_party/openssl/apps/lib/s_cb.c",
1728    "//third_party/openssl/apps/lib/s_socket.c",
1729    "//third_party/openssl/apps/lib/tlssrp_depr.c",
1730  ]
1731  if (openssl_selected_platform == "mingw64") {
1732    sources += [ "//third_party/openssl/apps/lib/win32_init.c" ]
1733  }
1734  subsystem_name = "thirdparty"
1735  part_name = "openssl"
1736  configs = [ ":crypto_config_private" ]
1737}
1738
1739ohos_executable("openssl") {
1740  sources = [
1741    "${openssl_selected_platform_full_path}/apps/progs.c",
1742    "//third_party/openssl/apps/asn1parse.c",
1743    "//third_party/openssl/apps/ca.c",
1744    "//third_party/openssl/apps/ciphers.c",
1745    "//third_party/openssl/apps/cmp.c",
1746    "//third_party/openssl/apps/cms.c",
1747    "//third_party/openssl/apps/crl.c",
1748    "//third_party/openssl/apps/crl2pkcs7.c",
1749    "//third_party/openssl/apps/dgst.c",
1750    "//third_party/openssl/apps/dhparam.c",
1751    "//third_party/openssl/apps/dsa.c",
1752    "//third_party/openssl/apps/dsaparam.c",
1753    "//third_party/openssl/apps/ec.c",
1754    "//third_party/openssl/apps/ecparam.c",
1755    "//third_party/openssl/apps/enc.c",
1756    "//third_party/openssl/apps/engine.c",
1757    "//third_party/openssl/apps/errstr.c",
1758    "//third_party/openssl/apps/fipsinstall.c",
1759    "//third_party/openssl/apps/gendsa.c",
1760    "//third_party/openssl/apps/genpkey.c",
1761    "//third_party/openssl/apps/genrsa.c",
1762    "//third_party/openssl/apps/info.c",
1763    "//third_party/openssl/apps/kdf.c",
1764    "//third_party/openssl/apps/lib/cmp_mock_srv.c",
1765    "//third_party/openssl/apps/list.c",
1766    "//third_party/openssl/apps/mac.c",
1767    "//third_party/openssl/apps/nseq.c",
1768    "//third_party/openssl/apps/ocsp.c",
1769    "//third_party/openssl/apps/openssl.c",
1770    "//third_party/openssl/apps/passwd.c",
1771    "//third_party/openssl/apps/pkcs12.c",
1772    "//third_party/openssl/apps/pkcs7.c",
1773    "//third_party/openssl/apps/pkcs8.c",
1774    "//third_party/openssl/apps/pkey.c",
1775    "//third_party/openssl/apps/pkeyparam.c",
1776    "//third_party/openssl/apps/pkeyutl.c",
1777    "//third_party/openssl/apps/prime.c",
1778    "//third_party/openssl/apps/rand.c",
1779    "//third_party/openssl/apps/rehash.c",
1780    "//third_party/openssl/apps/req.c",
1781    "//third_party/openssl/apps/rsa.c",
1782    "//third_party/openssl/apps/rsautl.c",
1783    "//third_party/openssl/apps/s_client.c",
1784    "//third_party/openssl/apps/s_server.c",
1785    "//third_party/openssl/apps/s_time.c",
1786    "//third_party/openssl/apps/sess_id.c",
1787    "//third_party/openssl/apps/smime.c",
1788    "//third_party/openssl/apps/speed.c",
1789    "//third_party/openssl/apps/spkac.c",
1790    "//third_party/openssl/apps/srp.c",
1791    "//third_party/openssl/apps/storeutl.c",
1792    "//third_party/openssl/apps/ts.c",
1793    "//third_party/openssl/apps/verify.c",
1794    "//third_party/openssl/apps/version.c",
1795    "//third_party/openssl/apps/x509.c",
1796  ]
1797  if (openssl_selected_platform == "mingw64") {
1798    sources += [ "${openssl_selected_platform_full_path}/apps/openssl.rc" ]
1799  }
1800  deps = [
1801    ":libapps",
1802    ":libcrypto_shared",
1803    ":libssl_shared",
1804    ":openssl.cnf",
1805    ":openssl_build_all_generated",
1806  ]
1807  subsystem_name = "thirdparty"
1808  part_name = "openssl"
1809  configs = [ ":crypto_config_private" ]
1810}
1811