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