CMakeLists.txt 20 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663
  1. # Copyright (c) 2019 The Chromium Authors. All rights reserved.
  2. # Use of this source code is governed by a BSD-style license that can be
  3. # found in the LICENSE file.
  4. # This file is created by generate_build_files.py. Do not edit manually.
  5. cmake_minimum_required(VERSION 3.5)
  6. project(BoringSSL LANGUAGES C CXX)
  7. if(CMAKE_CXX_COMPILER_ID MATCHES "Clang")
  8. set(CLANG 1)
  9. endif()
  10. if(CMAKE_COMPILER_IS_GNUCXX OR CLANG)
  11. set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -fvisibility=hidden -fno-common -fno-exceptions -fno-rtti")
  12. if(APPLE)
  13. set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -stdlib=libc++")
  14. endif()
  15. set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fvisibility=hidden -fno-common -std=c11")
  16. endif()
  17. # pthread_rwlock_t requires a feature flag.
  18. if(NOT WIN32)
  19. set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -D_XOPEN_SOURCE=700")
  20. endif()
  21. if(WIN32)
  22. add_definitions(-D_HAS_EXCEPTIONS=0)
  23. add_definitions(-DWIN32_LEAN_AND_MEAN)
  24. add_definitions(-DNOMINMAX)
  25. # Allow use of fopen.
  26. add_definitions(-D_CRT_SECURE_NO_WARNINGS)
  27. # VS 2017 and higher supports STL-only warning suppressions.
  28. # A bug in CMake < 3.13.0 may cause the space in this value to
  29. # cause issues when building with NASM. In that case, update CMake.
  30. add_definitions("-D_STL_EXTRA_DISABLED_WARNINGS=4774 4987")
  31. endif()
  32. add_definitions(-DBORINGSSL_IMPLEMENTATION)
  33. # CMake's iOS support uses Apple's multiple-architecture toolchain. It takes an
  34. # architecture list from CMAKE_OSX_ARCHITECTURES, leaves CMAKE_SYSTEM_PROCESSOR
  35. # alone, and expects all architecture-specific logic to be conditioned within
  36. # the source files rather than the build. This does not work for our assembly
  37. # files, so we fix CMAKE_SYSTEM_PROCESSOR and only support single-architecture
  38. # builds.
  39. if(NOT OPENSSL_NO_ASM AND CMAKE_OSX_ARCHITECTURES)
  40. list(LENGTH CMAKE_OSX_ARCHITECTURES NUM_ARCHES)
  41. if(NOT NUM_ARCHES EQUAL 1)
  42. message(FATAL_ERROR "Universal binaries not supported.")
  43. endif()
  44. list(GET CMAKE_OSX_ARCHITECTURES 0 CMAKE_SYSTEM_PROCESSOR)
  45. endif()
  46. if(OPENSSL_NO_ASM)
  47. add_definitions(-DOPENSSL_NO_ASM)
  48. set(ARCH "generic")
  49. elseif(CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
  50. set(ARCH "x86_64")
  51. elseif(CMAKE_SYSTEM_PROCESSOR STREQUAL "amd64")
  52. set(ARCH "x86_64")
  53. elseif(CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64")
  54. # cmake reports AMD64 on Windows, but we might be building for 32-bit.
  55. if(CMAKE_SIZEOF_VOID_P EQUAL 8)
  56. set(ARCH "x86_64")
  57. else()
  58. set(ARCH "x86")
  59. endif()
  60. elseif(CMAKE_SYSTEM_PROCESSOR STREQUAL "x86")
  61. set(ARCH "x86")
  62. elseif(CMAKE_SYSTEM_PROCESSOR STREQUAL "i386")
  63. set(ARCH "x86")
  64. elseif(CMAKE_SYSTEM_PROCESSOR STREQUAL "i686")
  65. set(ARCH "x86")
  66. elseif(CMAKE_SYSTEM_PROCESSOR STREQUAL "aarch64")
  67. set(ARCH "aarch64")
  68. elseif(CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
  69. set(ARCH "aarch64")
  70. # Apple A12 Bionic chipset which is added in iPhone XS/XS Max/XR uses arm64e architecture.
  71. elseif(CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64e")
  72. set(ARCH "aarch64")
  73. elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "^arm*")
  74. set(ARCH "arm")
  75. elseif(CMAKE_SYSTEM_PROCESSOR STREQUAL "mips")
  76. # Just to avoid the “unknown processor” error.
  77. set(ARCH "generic")
  78. elseif(CMAKE_SYSTEM_PROCESSOR STREQUAL "ppc64le")
  79. set(ARCH "ppc64le")
  80. else()
  81. message(FATAL_ERROR "Unknown processor:" ${CMAKE_SYSTEM_PROCESSOR})
  82. endif()
  83. if(NOT OPENSSL_NO_ASM)
  84. if(UNIX)
  85. enable_language(ASM)
  86. # Clang's integerated assembler does not support debug symbols.
  87. if(NOT CMAKE_ASM_COMPILER_ID MATCHES "Clang")
  88. set(CMAKE_ASM_FLAGS "${CMAKE_ASM_FLAGS} -Wa,-g")
  89. endif()
  90. # CMake does not add -isysroot and -arch flags to assembly.
  91. if(APPLE)
  92. if(CMAKE_OSX_SYSROOT)
  93. set(CMAKE_ASM_FLAGS "${CMAKE_ASM_FLAGS} -isysroot \"${CMAKE_OSX_SYSROOT}\"")
  94. endif()
  95. foreach(arch ${CMAKE_OSX_ARCHITECTURES})
  96. set(CMAKE_ASM_FLAGS "${CMAKE_ASM_FLAGS} -arch ${arch}")
  97. endforeach()
  98. endif()
  99. else()
  100. set(CMAKE_ASM_NASM_FLAGS "${CMAKE_ASM_NASM_FLAGS} -gcv8")
  101. enable_language(ASM_NASM)
  102. endif()
  103. endif()
  104. if(BUILD_SHARED_LIBS)
  105. add_definitions(-DBORINGSSL_SHARED_LIBRARY)
  106. # Enable position-independent code globally. This is needed because
  107. # some library targets are OBJECT libraries.
  108. set(CMAKE_POSITION_INDEPENDENT_CODE TRUE)
  109. endif()
  110. include_directories(src/include)
  111. set(
  112. CRYPTO_ios_aarch64_SOURCES
  113. ios-aarch64/crypto/chacha/chacha-armv8.S
  114. ios-aarch64/crypto/fipsmodule/aesv8-armx64.S
  115. ios-aarch64/crypto/fipsmodule/armv8-mont.S
  116. ios-aarch64/crypto/fipsmodule/ghash-neon-armv8.S
  117. ios-aarch64/crypto/fipsmodule/ghashv8-armx64.S
  118. ios-aarch64/crypto/fipsmodule/sha1-armv8.S
  119. ios-aarch64/crypto/fipsmodule/sha256-armv8.S
  120. ios-aarch64/crypto/fipsmodule/sha512-armv8.S
  121. ios-aarch64/crypto/fipsmodule/vpaes-armv8.S
  122. ios-aarch64/crypto/test/trampoline-armv8.S
  123. )
  124. set(
  125. CRYPTO_ios_arm_SOURCES
  126. ios-arm/crypto/chacha/chacha-armv4.S
  127. ios-arm/crypto/fipsmodule/aesv8-armx32.S
  128. ios-arm/crypto/fipsmodule/armv4-mont.S
  129. ios-arm/crypto/fipsmodule/bsaes-armv7.S
  130. ios-arm/crypto/fipsmodule/ghash-armv4.S
  131. ios-arm/crypto/fipsmodule/ghashv8-armx32.S
  132. ios-arm/crypto/fipsmodule/sha1-armv4-large.S
  133. ios-arm/crypto/fipsmodule/sha256-armv4.S
  134. ios-arm/crypto/fipsmodule/sha512-armv4.S
  135. ios-arm/crypto/fipsmodule/vpaes-armv7.S
  136. ios-arm/crypto/test/trampoline-armv4.S
  137. )
  138. set(
  139. CRYPTO_linux_aarch64_SOURCES
  140. linux-aarch64/crypto/chacha/chacha-armv8.S
  141. linux-aarch64/crypto/fipsmodule/aesv8-armx64.S
  142. linux-aarch64/crypto/fipsmodule/armv8-mont.S
  143. linux-aarch64/crypto/fipsmodule/ghash-neon-armv8.S
  144. linux-aarch64/crypto/fipsmodule/ghashv8-armx64.S
  145. linux-aarch64/crypto/fipsmodule/sha1-armv8.S
  146. linux-aarch64/crypto/fipsmodule/sha256-armv8.S
  147. linux-aarch64/crypto/fipsmodule/sha512-armv8.S
  148. linux-aarch64/crypto/fipsmodule/vpaes-armv8.S
  149. linux-aarch64/crypto/test/trampoline-armv8.S
  150. )
  151. set(
  152. CRYPTO_linux_arm_SOURCES
  153. linux-arm/crypto/chacha/chacha-armv4.S
  154. linux-arm/crypto/fipsmodule/aesv8-armx32.S
  155. linux-arm/crypto/fipsmodule/armv4-mont.S
  156. linux-arm/crypto/fipsmodule/bsaes-armv7.S
  157. linux-arm/crypto/fipsmodule/ghash-armv4.S
  158. linux-arm/crypto/fipsmodule/ghashv8-armx32.S
  159. linux-arm/crypto/fipsmodule/sha1-armv4-large.S
  160. linux-arm/crypto/fipsmodule/sha256-armv4.S
  161. linux-arm/crypto/fipsmodule/sha512-armv4.S
  162. linux-arm/crypto/fipsmodule/vpaes-armv7.S
  163. linux-arm/crypto/test/trampoline-armv4.S
  164. src/crypto/curve25519/asm/x25519-asm-arm.S
  165. src/crypto/poly1305/poly1305_arm_asm.S
  166. )
  167. set(
  168. CRYPTO_linux_ppc64le_SOURCES
  169. linux-ppc64le/crypto/fipsmodule/aesp8-ppc.S
  170. linux-ppc64le/crypto/fipsmodule/ghashp8-ppc.S
  171. linux-ppc64le/crypto/test/trampoline-ppc.S
  172. )
  173. set(
  174. CRYPTO_linux_x86_SOURCES
  175. linux-x86/crypto/chacha/chacha-x86.S
  176. linux-x86/crypto/fipsmodule/aesni-x86.S
  177. linux-x86/crypto/fipsmodule/bn-586.S
  178. linux-x86/crypto/fipsmodule/co-586.S
  179. linux-x86/crypto/fipsmodule/ghash-ssse3-x86.S
  180. linux-x86/crypto/fipsmodule/ghash-x86.S
  181. linux-x86/crypto/fipsmodule/md5-586.S
  182. linux-x86/crypto/fipsmodule/sha1-586.S
  183. linux-x86/crypto/fipsmodule/sha256-586.S
  184. linux-x86/crypto/fipsmodule/sha512-586.S
  185. linux-x86/crypto/fipsmodule/vpaes-x86.S
  186. linux-x86/crypto/fipsmodule/x86-mont.S
  187. linux-x86/crypto/test/trampoline-x86.S
  188. )
  189. set(
  190. CRYPTO_linux_x86_64_SOURCES
  191. linux-x86_64/crypto/chacha/chacha-x86_64.S
  192. linux-x86_64/crypto/cipher_extra/aes128gcmsiv-x86_64.S
  193. linux-x86_64/crypto/cipher_extra/chacha20_poly1305_x86_64.S
  194. linux-x86_64/crypto/fipsmodule/aesni-gcm-x86_64.S
  195. linux-x86_64/crypto/fipsmodule/aesni-x86_64.S
  196. linux-x86_64/crypto/fipsmodule/ghash-ssse3-x86_64.S
  197. linux-x86_64/crypto/fipsmodule/ghash-x86_64.S
  198. linux-x86_64/crypto/fipsmodule/md5-x86_64.S
  199. linux-x86_64/crypto/fipsmodule/p256-x86_64-asm.S
  200. linux-x86_64/crypto/fipsmodule/p256_beeu-x86_64-asm.S
  201. linux-x86_64/crypto/fipsmodule/rdrand-x86_64.S
  202. linux-x86_64/crypto/fipsmodule/rsaz-avx2.S
  203. linux-x86_64/crypto/fipsmodule/sha1-x86_64.S
  204. linux-x86_64/crypto/fipsmodule/sha256-x86_64.S
  205. linux-x86_64/crypto/fipsmodule/sha512-x86_64.S
  206. linux-x86_64/crypto/fipsmodule/vpaes-x86_64.S
  207. linux-x86_64/crypto/fipsmodule/x86_64-mont.S
  208. linux-x86_64/crypto/fipsmodule/x86_64-mont5.S
  209. linux-x86_64/crypto/test/trampoline-x86_64.S
  210. src/crypto/hrss/asm/poly_rq_mul.S
  211. )
  212. set(
  213. CRYPTO_mac_x86_SOURCES
  214. mac-x86/crypto/chacha/chacha-x86.S
  215. mac-x86/crypto/fipsmodule/aesni-x86.S
  216. mac-x86/crypto/fipsmodule/bn-586.S
  217. mac-x86/crypto/fipsmodule/co-586.S
  218. mac-x86/crypto/fipsmodule/ghash-ssse3-x86.S
  219. mac-x86/crypto/fipsmodule/ghash-x86.S
  220. mac-x86/crypto/fipsmodule/md5-586.S
  221. mac-x86/crypto/fipsmodule/sha1-586.S
  222. mac-x86/crypto/fipsmodule/sha256-586.S
  223. mac-x86/crypto/fipsmodule/sha512-586.S
  224. mac-x86/crypto/fipsmodule/vpaes-x86.S
  225. mac-x86/crypto/fipsmodule/x86-mont.S
  226. mac-x86/crypto/test/trampoline-x86.S
  227. )
  228. set(
  229. CRYPTO_mac_x86_64_SOURCES
  230. mac-x86_64/crypto/chacha/chacha-x86_64.S
  231. mac-x86_64/crypto/cipher_extra/aes128gcmsiv-x86_64.S
  232. mac-x86_64/crypto/cipher_extra/chacha20_poly1305_x86_64.S
  233. mac-x86_64/crypto/fipsmodule/aesni-gcm-x86_64.S
  234. mac-x86_64/crypto/fipsmodule/aesni-x86_64.S
  235. mac-x86_64/crypto/fipsmodule/ghash-ssse3-x86_64.S
  236. mac-x86_64/crypto/fipsmodule/ghash-x86_64.S
  237. mac-x86_64/crypto/fipsmodule/md5-x86_64.S
  238. mac-x86_64/crypto/fipsmodule/p256-x86_64-asm.S
  239. mac-x86_64/crypto/fipsmodule/p256_beeu-x86_64-asm.S
  240. mac-x86_64/crypto/fipsmodule/rdrand-x86_64.S
  241. mac-x86_64/crypto/fipsmodule/rsaz-avx2.S
  242. mac-x86_64/crypto/fipsmodule/sha1-x86_64.S
  243. mac-x86_64/crypto/fipsmodule/sha256-x86_64.S
  244. mac-x86_64/crypto/fipsmodule/sha512-x86_64.S
  245. mac-x86_64/crypto/fipsmodule/vpaes-x86_64.S
  246. mac-x86_64/crypto/fipsmodule/x86_64-mont.S
  247. mac-x86_64/crypto/fipsmodule/x86_64-mont5.S
  248. mac-x86_64/crypto/test/trampoline-x86_64.S
  249. )
  250. set(
  251. CRYPTO_win_aarch64_SOURCES
  252. win-aarch64/crypto/chacha/chacha-armv8.S
  253. win-aarch64/crypto/fipsmodule/aesv8-armx64.S
  254. win-aarch64/crypto/fipsmodule/armv8-mont.S
  255. win-aarch64/crypto/fipsmodule/ghash-neon-armv8.S
  256. win-aarch64/crypto/fipsmodule/ghashv8-armx64.S
  257. win-aarch64/crypto/fipsmodule/sha1-armv8.S
  258. win-aarch64/crypto/fipsmodule/sha256-armv8.S
  259. win-aarch64/crypto/fipsmodule/sha512-armv8.S
  260. win-aarch64/crypto/fipsmodule/vpaes-armv8.S
  261. win-aarch64/crypto/test/trampoline-armv8.S
  262. )
  263. set(
  264. CRYPTO_win_x86_SOURCES
  265. win-x86/crypto/chacha/chacha-x86.asm
  266. win-x86/crypto/fipsmodule/aesni-x86.asm
  267. win-x86/crypto/fipsmodule/bn-586.asm
  268. win-x86/crypto/fipsmodule/co-586.asm
  269. win-x86/crypto/fipsmodule/ghash-ssse3-x86.asm
  270. win-x86/crypto/fipsmodule/ghash-x86.asm
  271. win-x86/crypto/fipsmodule/md5-586.asm
  272. win-x86/crypto/fipsmodule/sha1-586.asm
  273. win-x86/crypto/fipsmodule/sha256-586.asm
  274. win-x86/crypto/fipsmodule/sha512-586.asm
  275. win-x86/crypto/fipsmodule/vpaes-x86.asm
  276. win-x86/crypto/fipsmodule/x86-mont.asm
  277. win-x86/crypto/test/trampoline-x86.asm
  278. )
  279. set(
  280. CRYPTO_win_x86_64_SOURCES
  281. win-x86_64/crypto/chacha/chacha-x86_64.asm
  282. win-x86_64/crypto/cipher_extra/aes128gcmsiv-x86_64.asm
  283. win-x86_64/crypto/cipher_extra/chacha20_poly1305_x86_64.asm
  284. win-x86_64/crypto/fipsmodule/aesni-gcm-x86_64.asm
  285. win-x86_64/crypto/fipsmodule/aesni-x86_64.asm
  286. win-x86_64/crypto/fipsmodule/ghash-ssse3-x86_64.asm
  287. win-x86_64/crypto/fipsmodule/ghash-x86_64.asm
  288. win-x86_64/crypto/fipsmodule/md5-x86_64.asm
  289. win-x86_64/crypto/fipsmodule/p256-x86_64-asm.asm
  290. win-x86_64/crypto/fipsmodule/p256_beeu-x86_64-asm.asm
  291. win-x86_64/crypto/fipsmodule/rdrand-x86_64.asm
  292. win-x86_64/crypto/fipsmodule/rsaz-avx2.asm
  293. win-x86_64/crypto/fipsmodule/sha1-x86_64.asm
  294. win-x86_64/crypto/fipsmodule/sha256-x86_64.asm
  295. win-x86_64/crypto/fipsmodule/sha512-x86_64.asm
  296. win-x86_64/crypto/fipsmodule/vpaes-x86_64.asm
  297. win-x86_64/crypto/fipsmodule/x86_64-mont.asm
  298. win-x86_64/crypto/fipsmodule/x86_64-mont5.asm
  299. win-x86_64/crypto/test/trampoline-x86_64.asm
  300. )
  301. if(APPLE AND ARCH STREQUAL "aarch64")
  302. set(CRYPTO_ARCH_SOURCES ${CRYPTO_ios_aarch64_SOURCES})
  303. elseif(APPLE AND ARCH STREQUAL "arm")
  304. set(CRYPTO_ARCH_SOURCES ${CRYPTO_ios_arm_SOURCES})
  305. elseif(APPLE)
  306. set(CRYPTO_ARCH_SOURCES ${CRYPTO_mac_${ARCH}_SOURCES})
  307. elseif(UNIX)
  308. set(CRYPTO_ARCH_SOURCES ${CRYPTO_linux_${ARCH}_SOURCES})
  309. elseif(WIN32)
  310. set(CRYPTO_ARCH_SOURCES ${CRYPTO_win_${ARCH}_SOURCES})
  311. endif()
  312. add_library(
  313. crypto
  314. ${CRYPTO_ARCH_SOURCES}
  315. err_data.c
  316. src/crypto/asn1/a_bitstr.c
  317. src/crypto/asn1/a_bool.c
  318. src/crypto/asn1/a_d2i_fp.c
  319. src/crypto/asn1/a_dup.c
  320. src/crypto/asn1/a_enum.c
  321. src/crypto/asn1/a_gentm.c
  322. src/crypto/asn1/a_i2d_fp.c
  323. src/crypto/asn1/a_int.c
  324. src/crypto/asn1/a_mbstr.c
  325. src/crypto/asn1/a_object.c
  326. src/crypto/asn1/a_octet.c
  327. src/crypto/asn1/a_print.c
  328. src/crypto/asn1/a_strex.c
  329. src/crypto/asn1/a_strnid.c
  330. src/crypto/asn1/a_time.c
  331. src/crypto/asn1/a_type.c
  332. src/crypto/asn1/a_utctm.c
  333. src/crypto/asn1/a_utf8.c
  334. src/crypto/asn1/asn1_lib.c
  335. src/crypto/asn1/asn1_par.c
  336. src/crypto/asn1/asn_pack.c
  337. src/crypto/asn1/f_int.c
  338. src/crypto/asn1/f_string.c
  339. src/crypto/asn1/tasn_dec.c
  340. src/crypto/asn1/tasn_enc.c
  341. src/crypto/asn1/tasn_fre.c
  342. src/crypto/asn1/tasn_new.c
  343. src/crypto/asn1/tasn_typ.c
  344. src/crypto/asn1/tasn_utl.c
  345. src/crypto/asn1/time_support.c
  346. src/crypto/base64/base64.c
  347. src/crypto/bio/bio.c
  348. src/crypto/bio/bio_mem.c
  349. src/crypto/bio/connect.c
  350. src/crypto/bio/fd.c
  351. src/crypto/bio/file.c
  352. src/crypto/bio/hexdump.c
  353. src/crypto/bio/pair.c
  354. src/crypto/bio/printf.c
  355. src/crypto/bio/socket.c
  356. src/crypto/bio/socket_helper.c
  357. src/crypto/blake2/blake2.c
  358. src/crypto/bn_extra/bn_asn1.c
  359. src/crypto/bn_extra/convert.c
  360. src/crypto/buf/buf.c
  361. src/crypto/bytestring/asn1_compat.c
  362. src/crypto/bytestring/ber.c
  363. src/crypto/bytestring/cbb.c
  364. src/crypto/bytestring/cbs.c
  365. src/crypto/bytestring/unicode.c
  366. src/crypto/chacha/chacha.c
  367. src/crypto/cipher_extra/cipher_extra.c
  368. src/crypto/cipher_extra/derive_key.c
  369. src/crypto/cipher_extra/e_aesccm.c
  370. src/crypto/cipher_extra/e_aesctrhmac.c
  371. src/crypto/cipher_extra/e_aesgcmsiv.c
  372. src/crypto/cipher_extra/e_chacha20poly1305.c
  373. src/crypto/cipher_extra/e_null.c
  374. src/crypto/cipher_extra/e_rc2.c
  375. src/crypto/cipher_extra/e_rc4.c
  376. src/crypto/cipher_extra/e_tls.c
  377. src/crypto/cipher_extra/tls_cbc.c
  378. src/crypto/cmac/cmac.c
  379. src/crypto/conf/conf.c
  380. src/crypto/cpu-aarch64-fuchsia.c
  381. src/crypto/cpu-aarch64-linux.c
  382. src/crypto/cpu-aarch64-win.c
  383. src/crypto/cpu-arm-linux.c
  384. src/crypto/cpu-arm.c
  385. src/crypto/cpu-intel.c
  386. src/crypto/cpu-ppc64le.c
  387. src/crypto/crypto.c
  388. src/crypto/curve25519/curve25519.c
  389. src/crypto/curve25519/spake25519.c
  390. src/crypto/dh_extra/dh_asn1.c
  391. src/crypto/dh_extra/params.c
  392. src/crypto/digest_extra/digest_extra.c
  393. src/crypto/dsa/dsa.c
  394. src/crypto/dsa/dsa_asn1.c
  395. src/crypto/ec_extra/ec_asn1.c
  396. src/crypto/ec_extra/ec_derive.c
  397. src/crypto/ec_extra/hash_to_curve.c
  398. src/crypto/ecdh_extra/ecdh_extra.c
  399. src/crypto/ecdsa_extra/ecdsa_asn1.c
  400. src/crypto/engine/engine.c
  401. src/crypto/err/err.c
  402. src/crypto/evp/digestsign.c
  403. src/crypto/evp/evp.c
  404. src/crypto/evp/evp_asn1.c
  405. src/crypto/evp/evp_ctx.c
  406. src/crypto/evp/p_dsa_asn1.c
  407. src/crypto/evp/p_ec.c
  408. src/crypto/evp/p_ec_asn1.c
  409. src/crypto/evp/p_ed25519.c
  410. src/crypto/evp/p_ed25519_asn1.c
  411. src/crypto/evp/p_rsa.c
  412. src/crypto/evp/p_rsa_asn1.c
  413. src/crypto/evp/p_x25519.c
  414. src/crypto/evp/p_x25519_asn1.c
  415. src/crypto/evp/pbkdf.c
  416. src/crypto/evp/print.c
  417. src/crypto/evp/scrypt.c
  418. src/crypto/evp/sign.c
  419. src/crypto/ex_data.c
  420. src/crypto/fipsmodule/bcm.c
  421. src/crypto/fipsmodule/fips_shared_support.c
  422. src/crypto/hkdf/hkdf.c
  423. src/crypto/hpke/hpke.c
  424. src/crypto/hrss/hrss.c
  425. src/crypto/lhash/lhash.c
  426. src/crypto/mem.c
  427. src/crypto/obj/obj.c
  428. src/crypto/obj/obj_xref.c
  429. src/crypto/pem/pem_all.c
  430. src/crypto/pem/pem_info.c
  431. src/crypto/pem/pem_lib.c
  432. src/crypto/pem/pem_oth.c
  433. src/crypto/pem/pem_pk8.c
  434. src/crypto/pem/pem_pkey.c
  435. src/crypto/pem/pem_x509.c
  436. src/crypto/pem/pem_xaux.c
  437. src/crypto/pkcs7/pkcs7.c
  438. src/crypto/pkcs7/pkcs7_x509.c
  439. src/crypto/pkcs8/p5_pbev2.c
  440. src/crypto/pkcs8/pkcs8.c
  441. src/crypto/pkcs8/pkcs8_x509.c
  442. src/crypto/poly1305/poly1305.c
  443. src/crypto/poly1305/poly1305_arm.c
  444. src/crypto/poly1305/poly1305_vec.c
  445. src/crypto/pool/pool.c
  446. src/crypto/rand_extra/deterministic.c
  447. src/crypto/rand_extra/forkunsafe.c
  448. src/crypto/rand_extra/fuchsia.c
  449. src/crypto/rand_extra/passive.c
  450. src/crypto/rand_extra/rand_extra.c
  451. src/crypto/rand_extra/windows.c
  452. src/crypto/rc4/rc4.c
  453. src/crypto/refcount_c11.c
  454. src/crypto/refcount_lock.c
  455. src/crypto/rsa_extra/rsa_asn1.c
  456. src/crypto/rsa_extra/rsa_print.c
  457. src/crypto/siphash/siphash.c
  458. src/crypto/stack/stack.c
  459. src/crypto/thread.c
  460. src/crypto/thread_none.c
  461. src/crypto/thread_pthread.c
  462. src/crypto/thread_win.c
  463. src/crypto/trust_token/pmbtoken.c
  464. src/crypto/trust_token/trust_token.c
  465. src/crypto/trust_token/voprf.c
  466. src/crypto/x509/a_digest.c
  467. src/crypto/x509/a_sign.c
  468. src/crypto/x509/a_verify.c
  469. src/crypto/x509/algorithm.c
  470. src/crypto/x509/asn1_gen.c
  471. src/crypto/x509/by_dir.c
  472. src/crypto/x509/by_file.c
  473. src/crypto/x509/i2d_pr.c
  474. src/crypto/x509/name_print.c
  475. src/crypto/x509/rsa_pss.c
  476. src/crypto/x509/t_crl.c
  477. src/crypto/x509/t_req.c
  478. src/crypto/x509/t_x509.c
  479. src/crypto/x509/t_x509a.c
  480. src/crypto/x509/x509.c
  481. src/crypto/x509/x509_att.c
  482. src/crypto/x509/x509_cmp.c
  483. src/crypto/x509/x509_d2.c
  484. src/crypto/x509/x509_def.c
  485. src/crypto/x509/x509_ext.c
  486. src/crypto/x509/x509_lu.c
  487. src/crypto/x509/x509_obj.c
  488. src/crypto/x509/x509_req.c
  489. src/crypto/x509/x509_set.c
  490. src/crypto/x509/x509_trs.c
  491. src/crypto/x509/x509_txt.c
  492. src/crypto/x509/x509_v3.c
  493. src/crypto/x509/x509_vfy.c
  494. src/crypto/x509/x509_vpm.c
  495. src/crypto/x509/x509cset.c
  496. src/crypto/x509/x509name.c
  497. src/crypto/x509/x509rset.c
  498. src/crypto/x509/x509spki.c
  499. src/crypto/x509/x_algor.c
  500. src/crypto/x509/x_all.c
  501. src/crypto/x509/x_attrib.c
  502. src/crypto/x509/x_crl.c
  503. src/crypto/x509/x_exten.c
  504. src/crypto/x509/x_info.c
  505. src/crypto/x509/x_name.c
  506. src/crypto/x509/x_pkey.c
  507. src/crypto/x509/x_pubkey.c
  508. src/crypto/x509/x_req.c
  509. src/crypto/x509/x_sig.c
  510. src/crypto/x509/x_spki.c
  511. src/crypto/x509/x_val.c
  512. src/crypto/x509/x_x509.c
  513. src/crypto/x509/x_x509a.c
  514. src/crypto/x509v3/pcy_cache.c
  515. src/crypto/x509v3/pcy_data.c
  516. src/crypto/x509v3/pcy_lib.c
  517. src/crypto/x509v3/pcy_map.c
  518. src/crypto/x509v3/pcy_node.c
  519. src/crypto/x509v3/pcy_tree.c
  520. src/crypto/x509v3/v3_akey.c
  521. src/crypto/x509v3/v3_akeya.c
  522. src/crypto/x509v3/v3_alt.c
  523. src/crypto/x509v3/v3_bcons.c
  524. src/crypto/x509v3/v3_bitst.c
  525. src/crypto/x509v3/v3_conf.c
  526. src/crypto/x509v3/v3_cpols.c
  527. src/crypto/x509v3/v3_crld.c
  528. src/crypto/x509v3/v3_enum.c
  529. src/crypto/x509v3/v3_extku.c
  530. src/crypto/x509v3/v3_genn.c
  531. src/crypto/x509v3/v3_ia5.c
  532. src/crypto/x509v3/v3_info.c
  533. src/crypto/x509v3/v3_int.c
  534. src/crypto/x509v3/v3_lib.c
  535. src/crypto/x509v3/v3_ncons.c
  536. src/crypto/x509v3/v3_ocsp.c
  537. src/crypto/x509v3/v3_pci.c
  538. src/crypto/x509v3/v3_pcia.c
  539. src/crypto/x509v3/v3_pcons.c
  540. src/crypto/x509v3/v3_pmaps.c
  541. src/crypto/x509v3/v3_prn.c
  542. src/crypto/x509v3/v3_purp.c
  543. src/crypto/x509v3/v3_skey.c
  544. src/crypto/x509v3/v3_utl.c
  545. )
  546. add_library(
  547. ssl
  548. src/ssl/bio_ssl.cc
  549. src/ssl/d1_both.cc
  550. src/ssl/d1_lib.cc
  551. src/ssl/d1_pkt.cc
  552. src/ssl/d1_srtp.cc
  553. src/ssl/dtls_method.cc
  554. src/ssl/dtls_record.cc
  555. src/ssl/encrypted_client_hello.cc
  556. src/ssl/extensions.cc
  557. src/ssl/handoff.cc
  558. src/ssl/handshake.cc
  559. src/ssl/handshake_client.cc
  560. src/ssl/handshake_server.cc
  561. src/ssl/s3_both.cc
  562. src/ssl/s3_lib.cc
  563. src/ssl/s3_pkt.cc
  564. src/ssl/ssl_aead_ctx.cc
  565. src/ssl/ssl_asn1.cc
  566. src/ssl/ssl_buffer.cc
  567. src/ssl/ssl_cert.cc
  568. src/ssl/ssl_cipher.cc
  569. src/ssl/ssl_file.cc
  570. src/ssl/ssl_key_share.cc
  571. src/ssl/ssl_lib.cc
  572. src/ssl/ssl_privkey.cc
  573. src/ssl/ssl_session.cc
  574. src/ssl/ssl_stat.cc
  575. src/ssl/ssl_transcript.cc
  576. src/ssl/ssl_versions.cc
  577. src/ssl/ssl_x509.cc
  578. src/ssl/t1_enc.cc
  579. src/ssl/tls13_both.cc
  580. src/ssl/tls13_client.cc
  581. src/ssl/tls13_enc.cc
  582. src/ssl/tls13_server.cc
  583. src/ssl/tls_method.cc
  584. src/ssl/tls_record.cc
  585. )
  586. add_executable(
  587. bssl
  588. src/tool/args.cc
  589. src/tool/ciphers.cc
  590. src/tool/client.cc
  591. src/tool/const.cc
  592. src/tool/digest.cc
  593. src/tool/fd.cc
  594. src/tool/file.cc
  595. src/tool/generate_ech.cc
  596. src/tool/generate_ed25519.cc
  597. src/tool/genrsa.cc
  598. src/tool/pkcs12.cc
  599. src/tool/rand.cc
  600. src/tool/server.cc
  601. src/tool/sign.cc
  602. src/tool/speed.cc
  603. src/tool/tool.cc
  604. src/tool/transport_common.cc
  605. )
  606. target_link_libraries(bssl ssl crypto)
  607. if(NOT WIN32 AND NOT ANDROID)
  608. target_link_libraries(crypto pthread)
  609. endif()
  610. if(WIN32)
  611. target_link_libraries(bssl ws2_32)
  612. endif()