1# Copyright (c) 2015, Google Inc. 2# 3# Permission to use, copy, modify, and/or distribute this software for any 4# purpose with or without fee is hereby granted, provided that the above 5# copyright notice and this permission notice appear in all copies. 6# 7# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES 8# WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF 9# MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY 10# SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES 11# WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION 12# OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN 13# CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 14 15# This file is created by generate_build_files.py. Do not edit manually. 16 17cmake_minimum_required(VERSION 3.12) 18 19project(BoringSSL LANGUAGES C CXX) 20 21set(CMAKE_CXX_STANDARD 14) 22set(CMAKE_CXX_STANDARD_REQUIRED ON) 23set(CMAKE_C_STANDARD 11) 24set(CMAKE_C_STANDARD_REQUIRED ON) 25if(CMAKE_COMPILER_IS_GNUCXX OR CMAKE_CXX_COMPILER_ID MATCHES "Clang") 26 set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fvisibility=hidden -fno-common -fno-exceptions -fno-rtti") 27 set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fvisibility=hidden -fno-common") 28endif() 29 30# pthread_rwlock_t requires a feature flag on glibc. 31if(CMAKE_SYSTEM_NAME STREQUAL "Linux") 32 set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -D_XOPEN_SOURCE=700") 33endif() 34 35if(WIN32) 36 add_definitions(-D_HAS_EXCEPTIONS=0) 37 add_definitions(-DWIN32_LEAN_AND_MEAN) 38 add_definitions(-DNOMINMAX) 39 # Allow use of fopen. 40 add_definitions(-D_CRT_SECURE_NO_WARNINGS) 41endif() 42 43add_definitions(-DBORINGSSL_IMPLEMENTATION) 44 45if(OPENSSL_NO_ASM) 46 add_definitions(-DOPENSSL_NO_ASM) 47else() 48 # On x86 and x86_64 Windows, we use the NASM output. 49 if(WIN32 AND CMAKE_SYSTEM_PROCESSOR MATCHES "AMD64|x86_64|amd64|x86|i[3-6]86") 50 enable_language(ASM_NASM) 51 set(OPENSSL_NASM TRUE) 52 set(CMAKE_ASM_NASM_FLAGS "${CMAKE_ASM_NASM_FLAGS} -gcv8") 53 else() 54 enable_language(ASM) 55 set(OPENSSL_ASM TRUE) 56 # Work around https://gitlab.kitware.com/cmake/cmake/-/issues/20771 in older 57 # CMake versions. 58 if(APPLE AND CMAKE_VERSION VERSION_LESS 3.19) 59 if(CMAKE_OSX_SYSROOT) 60 set(CMAKE_ASM_FLAGS "${CMAKE_ASM_FLAGS} -isysroot \"${CMAKE_OSX_SYSROOT}\"") 61 endif() 62 foreach(arch ${CMAKE_OSX_ARCHITECTURES}) 63 set(CMAKE_ASM_FLAGS "${CMAKE_ASM_FLAGS} -arch ${arch}") 64 endforeach() 65 endif() 66 if(NOT WIN32) 67 set(CMAKE_ASM_FLAGS "${CMAKE_ASM_FLAGS} -Wa,--noexecstack") 68 endif() 69 # Clang's integerated assembler does not support debug symbols. 70 if(NOT CMAKE_ASM_COMPILER_ID MATCHES "Clang") 71 set(CMAKE_ASM_FLAGS "${CMAKE_ASM_FLAGS} -Wa,-g") 72 endif() 73 endif() 74endif() 75 76if(BUILD_SHARED_LIBS) 77 add_definitions(-DBORINGSSL_SHARED_LIBRARY) 78 # Enable position-independent code globally. This is needed because 79 # some library targets are OBJECT libraries. 80 set(CMAKE_POSITION_INDEPENDENT_CODE TRUE) 81endif() 82 83set( 84 CRYPTO_SOURCES_ASM 85 86 src/crypto/curve25519/asm/x25519-asm-arm.S 87 src/crypto/hrss/asm/poly_rq_mul.S 88 src/crypto/poly1305/poly1305_arm_asm.S 89 src/gen/bcm/aesni-gcm-x86_64-apple.S 90 src/gen/bcm/aesni-gcm-x86_64-linux.S 91 src/gen/bcm/aesni-x86-apple.S 92 src/gen/bcm/aesni-x86-linux.S 93 src/gen/bcm/aesni-x86_64-apple.S 94 src/gen/bcm/aesni-x86_64-linux.S 95 src/gen/bcm/aesv8-armv7-linux.S 96 src/gen/bcm/aesv8-armv8-apple.S 97 src/gen/bcm/aesv8-armv8-linux.S 98 src/gen/bcm/aesv8-armv8-win.S 99 src/gen/bcm/aesv8-gcm-armv8-apple.S 100 src/gen/bcm/aesv8-gcm-armv8-linux.S 101 src/gen/bcm/aesv8-gcm-armv8-win.S 102 src/gen/bcm/armv4-mont-linux.S 103 src/gen/bcm/armv8-mont-apple.S 104 src/gen/bcm/armv8-mont-linux.S 105 src/gen/bcm/armv8-mont-win.S 106 src/gen/bcm/bn-586-apple.S 107 src/gen/bcm/bn-586-linux.S 108 src/gen/bcm/bn-armv8-apple.S 109 src/gen/bcm/bn-armv8-linux.S 110 src/gen/bcm/bn-armv8-win.S 111 src/gen/bcm/bsaes-armv7-linux.S 112 src/gen/bcm/co-586-apple.S 113 src/gen/bcm/co-586-linux.S 114 src/gen/bcm/ghash-armv4-linux.S 115 src/gen/bcm/ghash-neon-armv8-apple.S 116 src/gen/bcm/ghash-neon-armv8-linux.S 117 src/gen/bcm/ghash-neon-armv8-win.S 118 src/gen/bcm/ghash-ssse3-x86-apple.S 119 src/gen/bcm/ghash-ssse3-x86-linux.S 120 src/gen/bcm/ghash-ssse3-x86_64-apple.S 121 src/gen/bcm/ghash-ssse3-x86_64-linux.S 122 src/gen/bcm/ghash-x86-apple.S 123 src/gen/bcm/ghash-x86-linux.S 124 src/gen/bcm/ghash-x86_64-apple.S 125 src/gen/bcm/ghash-x86_64-linux.S 126 src/gen/bcm/ghashv8-armv7-linux.S 127 src/gen/bcm/ghashv8-armv8-apple.S 128 src/gen/bcm/ghashv8-armv8-linux.S 129 src/gen/bcm/ghashv8-armv8-win.S 130 src/gen/bcm/md5-586-apple.S 131 src/gen/bcm/md5-586-linux.S 132 src/gen/bcm/md5-x86_64-apple.S 133 src/gen/bcm/md5-x86_64-linux.S 134 src/gen/bcm/p256-armv8-asm-apple.S 135 src/gen/bcm/p256-armv8-asm-linux.S 136 src/gen/bcm/p256-armv8-asm-win.S 137 src/gen/bcm/p256-x86_64-asm-apple.S 138 src/gen/bcm/p256-x86_64-asm-linux.S 139 src/gen/bcm/p256_beeu-armv8-asm-apple.S 140 src/gen/bcm/p256_beeu-armv8-asm-linux.S 141 src/gen/bcm/p256_beeu-armv8-asm-win.S 142 src/gen/bcm/p256_beeu-x86_64-asm-apple.S 143 src/gen/bcm/p256_beeu-x86_64-asm-linux.S 144 src/gen/bcm/rdrand-x86_64-apple.S 145 src/gen/bcm/rdrand-x86_64-linux.S 146 src/gen/bcm/rsaz-avx2-apple.S 147 src/gen/bcm/rsaz-avx2-linux.S 148 src/gen/bcm/sha1-586-apple.S 149 src/gen/bcm/sha1-586-linux.S 150 src/gen/bcm/sha1-armv4-large-linux.S 151 src/gen/bcm/sha1-armv8-apple.S 152 src/gen/bcm/sha1-armv8-linux.S 153 src/gen/bcm/sha1-armv8-win.S 154 src/gen/bcm/sha1-x86_64-apple.S 155 src/gen/bcm/sha1-x86_64-linux.S 156 src/gen/bcm/sha256-586-apple.S 157 src/gen/bcm/sha256-586-linux.S 158 src/gen/bcm/sha256-armv4-linux.S 159 src/gen/bcm/sha256-armv8-apple.S 160 src/gen/bcm/sha256-armv8-linux.S 161 src/gen/bcm/sha256-armv8-win.S 162 src/gen/bcm/sha256-x86_64-apple.S 163 src/gen/bcm/sha256-x86_64-linux.S 164 src/gen/bcm/sha512-586-apple.S 165 src/gen/bcm/sha512-586-linux.S 166 src/gen/bcm/sha512-armv4-linux.S 167 src/gen/bcm/sha512-armv8-apple.S 168 src/gen/bcm/sha512-armv8-linux.S 169 src/gen/bcm/sha512-armv8-win.S 170 src/gen/bcm/sha512-x86_64-apple.S 171 src/gen/bcm/sha512-x86_64-linux.S 172 src/gen/bcm/vpaes-armv7-linux.S 173 src/gen/bcm/vpaes-armv8-apple.S 174 src/gen/bcm/vpaes-armv8-linux.S 175 src/gen/bcm/vpaes-armv8-win.S 176 src/gen/bcm/vpaes-x86-apple.S 177 src/gen/bcm/vpaes-x86-linux.S 178 src/gen/bcm/vpaes-x86_64-apple.S 179 src/gen/bcm/vpaes-x86_64-linux.S 180 src/gen/bcm/x86-mont-apple.S 181 src/gen/bcm/x86-mont-linux.S 182 src/gen/bcm/x86_64-mont-apple.S 183 src/gen/bcm/x86_64-mont-linux.S 184 src/gen/bcm/x86_64-mont5-apple.S 185 src/gen/bcm/x86_64-mont5-linux.S 186 src/gen/crypto/aes128gcmsiv-x86_64-apple.S 187 src/gen/crypto/aes128gcmsiv-x86_64-linux.S 188 src/gen/crypto/chacha-armv4-linux.S 189 src/gen/crypto/chacha-armv8-apple.S 190 src/gen/crypto/chacha-armv8-linux.S 191 src/gen/crypto/chacha-armv8-win.S 192 src/gen/crypto/chacha-x86-apple.S 193 src/gen/crypto/chacha-x86-linux.S 194 src/gen/crypto/chacha-x86_64-apple.S 195 src/gen/crypto/chacha-x86_64-linux.S 196 src/gen/crypto/chacha20_poly1305_armv8-apple.S 197 src/gen/crypto/chacha20_poly1305_armv8-linux.S 198 src/gen/crypto/chacha20_poly1305_armv8-win.S 199 src/gen/crypto/chacha20_poly1305_x86_64-apple.S 200 src/gen/crypto/chacha20_poly1305_x86_64-linux.S 201 src/gen/test_support/trampoline-armv4-linux.S 202 src/gen/test_support/trampoline-armv8-apple.S 203 src/gen/test_support/trampoline-armv8-linux.S 204 src/gen/test_support/trampoline-armv8-win.S 205 src/gen/test_support/trampoline-x86-apple.S 206 src/gen/test_support/trampoline-x86-linux.S 207 src/gen/test_support/trampoline-x86_64-apple.S 208 src/gen/test_support/trampoline-x86_64-linux.S 209 src/third_party/fiat/asm/fiat_curve25519_adx_mul.S 210 src/third_party/fiat/asm/fiat_curve25519_adx_square.S 211 src/third_party/fiat/asm/fiat_p256_adx_mul.S 212 src/third_party/fiat/asm/fiat_p256_adx_sqr.S 213) 214 215set( 216 CRYPTO_SOURCES_NASM 217 218 src/gen/bcm/aesni-gcm-x86_64-win.asm 219 src/gen/bcm/aesni-x86-win.asm 220 src/gen/bcm/aesni-x86_64-win.asm 221 src/gen/bcm/bn-586-win.asm 222 src/gen/bcm/co-586-win.asm 223 src/gen/bcm/ghash-ssse3-x86-win.asm 224 src/gen/bcm/ghash-ssse3-x86_64-win.asm 225 src/gen/bcm/ghash-x86-win.asm 226 src/gen/bcm/ghash-x86_64-win.asm 227 src/gen/bcm/md5-586-win.asm 228 src/gen/bcm/md5-x86_64-win.asm 229 src/gen/bcm/p256-x86_64-asm-win.asm 230 src/gen/bcm/p256_beeu-x86_64-asm-win.asm 231 src/gen/bcm/rdrand-x86_64-win.asm 232 src/gen/bcm/rsaz-avx2-win.asm 233 src/gen/bcm/sha1-586-win.asm 234 src/gen/bcm/sha1-x86_64-win.asm 235 src/gen/bcm/sha256-586-win.asm 236 src/gen/bcm/sha256-x86_64-win.asm 237 src/gen/bcm/sha512-586-win.asm 238 src/gen/bcm/sha512-x86_64-win.asm 239 src/gen/bcm/vpaes-x86-win.asm 240 src/gen/bcm/vpaes-x86_64-win.asm 241 src/gen/bcm/x86-mont-win.asm 242 src/gen/bcm/x86_64-mont-win.asm 243 src/gen/bcm/x86_64-mont5-win.asm 244 src/gen/crypto/aes128gcmsiv-x86_64-win.asm 245 src/gen/crypto/chacha-x86-win.asm 246 src/gen/crypto/chacha-x86_64-win.asm 247 src/gen/crypto/chacha20_poly1305_x86_64-win.asm 248 src/gen/test_support/trampoline-x86-win.asm 249 src/gen/test_support/trampoline-x86_64-win.asm 250) 251 252if(OPENSSL_ASM) 253 list(APPEND CRYPTO_SOURCES_ASM_USED ${CRYPTO_SOURCES_ASM}) 254endif() 255if(OPENSSL_NASM) 256 list(APPEND CRYPTO_SOURCES_ASM_USED ${CRYPTO_SOURCES_NASM}) 257endif() 258 259add_library( 260 crypto 261 262 ${CRYPTO_SOURCES_ASM_USED} 263 src/crypto/asn1/a_bitstr.c 264 src/crypto/asn1/a_bool.c 265 src/crypto/asn1/a_d2i_fp.c 266 src/crypto/asn1/a_dup.c 267 src/crypto/asn1/a_gentm.c 268 src/crypto/asn1/a_i2d_fp.c 269 src/crypto/asn1/a_int.c 270 src/crypto/asn1/a_mbstr.c 271 src/crypto/asn1/a_object.c 272 src/crypto/asn1/a_octet.c 273 src/crypto/asn1/a_strex.c 274 src/crypto/asn1/a_strnid.c 275 src/crypto/asn1/a_time.c 276 src/crypto/asn1/a_type.c 277 src/crypto/asn1/a_utctm.c 278 src/crypto/asn1/asn1_lib.c 279 src/crypto/asn1/asn1_par.c 280 src/crypto/asn1/asn_pack.c 281 src/crypto/asn1/f_int.c 282 src/crypto/asn1/f_string.c 283 src/crypto/asn1/posix_time.c 284 src/crypto/asn1/tasn_dec.c 285 src/crypto/asn1/tasn_enc.c 286 src/crypto/asn1/tasn_fre.c 287 src/crypto/asn1/tasn_new.c 288 src/crypto/asn1/tasn_typ.c 289 src/crypto/asn1/tasn_utl.c 290 src/crypto/base64/base64.c 291 src/crypto/bio/bio.c 292 src/crypto/bio/bio_mem.c 293 src/crypto/bio/connect.c 294 src/crypto/bio/errno.c 295 src/crypto/bio/fd.c 296 src/crypto/bio/file.c 297 src/crypto/bio/hexdump.c 298 src/crypto/bio/pair.c 299 src/crypto/bio/printf.c 300 src/crypto/bio/socket.c 301 src/crypto/bio/socket_helper.c 302 src/crypto/blake2/blake2.c 303 src/crypto/bn_extra/bn_asn1.c 304 src/crypto/bn_extra/convert.c 305 src/crypto/buf/buf.c 306 src/crypto/bytestring/asn1_compat.c 307 src/crypto/bytestring/ber.c 308 src/crypto/bytestring/cbb.c 309 src/crypto/bytestring/cbs.c 310 src/crypto/bytestring/unicode.c 311 src/crypto/chacha/chacha.c 312 src/crypto/cipher_extra/cipher_extra.c 313 src/crypto/cipher_extra/derive_key.c 314 src/crypto/cipher_extra/e_aesctrhmac.c 315 src/crypto/cipher_extra/e_aesgcmsiv.c 316 src/crypto/cipher_extra/e_chacha20poly1305.c 317 src/crypto/cipher_extra/e_des.c 318 src/crypto/cipher_extra/e_null.c 319 src/crypto/cipher_extra/e_rc2.c 320 src/crypto/cipher_extra/e_rc4.c 321 src/crypto/cipher_extra/e_tls.c 322 src/crypto/cipher_extra/tls_cbc.c 323 src/crypto/conf/conf.c 324 src/crypto/cpu_aarch64_apple.c 325 src/crypto/cpu_aarch64_fuchsia.c 326 src/crypto/cpu_aarch64_linux.c 327 src/crypto/cpu_aarch64_openbsd.c 328 src/crypto/cpu_aarch64_sysreg.c 329 src/crypto/cpu_aarch64_win.c 330 src/crypto/cpu_arm_freebsd.c 331 src/crypto/cpu_arm_linux.c 332 src/crypto/cpu_intel.c 333 src/crypto/crypto.c 334 src/crypto/curve25519/curve25519.c 335 src/crypto/curve25519/curve25519_64_adx.c 336 src/crypto/curve25519/spake25519.c 337 src/crypto/des/des.c 338 src/crypto/dh_extra/dh_asn1.c 339 src/crypto/dh_extra/params.c 340 src/crypto/digest_extra/digest_extra.c 341 src/crypto/dilithium/dilithium.c 342 src/crypto/dsa/dsa.c 343 src/crypto/dsa/dsa_asn1.c 344 src/crypto/ec_extra/ec_asn1.c 345 src/crypto/ec_extra/ec_derive.c 346 src/crypto/ec_extra/hash_to_curve.c 347 src/crypto/ecdh_extra/ecdh_extra.c 348 src/crypto/ecdsa_extra/ecdsa_asn1.c 349 src/crypto/engine/engine.c 350 src/crypto/err/err.c 351 src/crypto/evp/evp.c 352 src/crypto/evp/evp_asn1.c 353 src/crypto/evp/evp_ctx.c 354 src/crypto/evp/p_dh.c 355 src/crypto/evp/p_dh_asn1.c 356 src/crypto/evp/p_dsa_asn1.c 357 src/crypto/evp/p_ec.c 358 src/crypto/evp/p_ec_asn1.c 359 src/crypto/evp/p_ed25519.c 360 src/crypto/evp/p_ed25519_asn1.c 361 src/crypto/evp/p_hkdf.c 362 src/crypto/evp/p_rsa.c 363 src/crypto/evp/p_rsa_asn1.c 364 src/crypto/evp/p_x25519.c 365 src/crypto/evp/p_x25519_asn1.c 366 src/crypto/evp/pbkdf.c 367 src/crypto/evp/print.c 368 src/crypto/evp/scrypt.c 369 src/crypto/evp/sign.c 370 src/crypto/ex_data.c 371 src/crypto/fipsmodule/bcm.c 372 src/crypto/fipsmodule/fips_shared_support.c 373 src/crypto/hpke/hpke.c 374 src/crypto/hrss/hrss.c 375 src/crypto/keccak/keccak.c 376 src/crypto/kyber/kyber.c 377 src/crypto/lhash/lhash.c 378 src/crypto/mem.c 379 src/crypto/obj/obj.c 380 src/crypto/obj/obj_xref.c 381 src/crypto/pem/pem_all.c 382 src/crypto/pem/pem_info.c 383 src/crypto/pem/pem_lib.c 384 src/crypto/pem/pem_oth.c 385 src/crypto/pem/pem_pk8.c 386 src/crypto/pem/pem_pkey.c 387 src/crypto/pem/pem_x509.c 388 src/crypto/pem/pem_xaux.c 389 src/crypto/pkcs7/pkcs7.c 390 src/crypto/pkcs7/pkcs7_x509.c 391 src/crypto/pkcs8/p5_pbev2.c 392 src/crypto/pkcs8/pkcs8.c 393 src/crypto/pkcs8/pkcs8_x509.c 394 src/crypto/poly1305/poly1305.c 395 src/crypto/poly1305/poly1305_arm.c 396 src/crypto/poly1305/poly1305_vec.c 397 src/crypto/pool/pool.c 398 src/crypto/rand_extra/deterministic.c 399 src/crypto/rand_extra/forkunsafe.c 400 src/crypto/rand_extra/getentropy.c 401 src/crypto/rand_extra/ios.c 402 src/crypto/rand_extra/passive.c 403 src/crypto/rand_extra/rand_extra.c 404 src/crypto/rand_extra/trusty.c 405 src/crypto/rand_extra/windows.c 406 src/crypto/rc4/rc4.c 407 src/crypto/refcount.c 408 src/crypto/rsa_extra/rsa_asn1.c 409 src/crypto/rsa_extra/rsa_crypt.c 410 src/crypto/rsa_extra/rsa_print.c 411 src/crypto/siphash/siphash.c 412 src/crypto/spx/address.c 413 src/crypto/spx/fors.c 414 src/crypto/spx/merkle.c 415 src/crypto/spx/spx.c 416 src/crypto/spx/spx_util.c 417 src/crypto/spx/thash.c 418 src/crypto/spx/wots.c 419 src/crypto/stack/stack.c 420 src/crypto/thread.c 421 src/crypto/thread_none.c 422 src/crypto/thread_pthread.c 423 src/crypto/thread_win.c 424 src/crypto/trust_token/pmbtoken.c 425 src/crypto/trust_token/trust_token.c 426 src/crypto/trust_token/voprf.c 427 src/crypto/x509/a_digest.c 428 src/crypto/x509/a_sign.c 429 src/crypto/x509/a_verify.c 430 src/crypto/x509/algorithm.c 431 src/crypto/x509/asn1_gen.c 432 src/crypto/x509/by_dir.c 433 src/crypto/x509/by_file.c 434 src/crypto/x509/i2d_pr.c 435 src/crypto/x509/name_print.c 436 src/crypto/x509/policy.c 437 src/crypto/x509/rsa_pss.c 438 src/crypto/x509/t_crl.c 439 src/crypto/x509/t_req.c 440 src/crypto/x509/t_x509.c 441 src/crypto/x509/t_x509a.c 442 src/crypto/x509/v3_akey.c 443 src/crypto/x509/v3_akeya.c 444 src/crypto/x509/v3_alt.c 445 src/crypto/x509/v3_bcons.c 446 src/crypto/x509/v3_bitst.c 447 src/crypto/x509/v3_conf.c 448 src/crypto/x509/v3_cpols.c 449 src/crypto/x509/v3_crld.c 450 src/crypto/x509/v3_enum.c 451 src/crypto/x509/v3_extku.c 452 src/crypto/x509/v3_genn.c 453 src/crypto/x509/v3_ia5.c 454 src/crypto/x509/v3_info.c 455 src/crypto/x509/v3_int.c 456 src/crypto/x509/v3_lib.c 457 src/crypto/x509/v3_ncons.c 458 src/crypto/x509/v3_ocsp.c 459 src/crypto/x509/v3_pcons.c 460 src/crypto/x509/v3_pmaps.c 461 src/crypto/x509/v3_prn.c 462 src/crypto/x509/v3_purp.c 463 src/crypto/x509/v3_skey.c 464 src/crypto/x509/v3_utl.c 465 src/crypto/x509/x509.c 466 src/crypto/x509/x509_att.c 467 src/crypto/x509/x509_cmp.c 468 src/crypto/x509/x509_d2.c 469 src/crypto/x509/x509_def.c 470 src/crypto/x509/x509_ext.c 471 src/crypto/x509/x509_lu.c 472 src/crypto/x509/x509_obj.c 473 src/crypto/x509/x509_req.c 474 src/crypto/x509/x509_set.c 475 src/crypto/x509/x509_trs.c 476 src/crypto/x509/x509_txt.c 477 src/crypto/x509/x509_v3.c 478 src/crypto/x509/x509_vfy.c 479 src/crypto/x509/x509_vpm.c 480 src/crypto/x509/x509cset.c 481 src/crypto/x509/x509name.c 482 src/crypto/x509/x509rset.c 483 src/crypto/x509/x509spki.c 484 src/crypto/x509/x_algor.c 485 src/crypto/x509/x_all.c 486 src/crypto/x509/x_attrib.c 487 src/crypto/x509/x_crl.c 488 src/crypto/x509/x_exten.c 489 src/crypto/x509/x_name.c 490 src/crypto/x509/x_pubkey.c 491 src/crypto/x509/x_req.c 492 src/crypto/x509/x_sig.c 493 src/crypto/x509/x_spki.c 494 src/crypto/x509/x_val.c 495 src/crypto/x509/x_x509.c 496 src/crypto/x509/x_x509a.c 497 src/gen/crypto/err_data.c 498) 499 500target_include_directories(crypto PUBLIC $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/src/include>) 501 502add_library( 503 ssl 504 505 src/ssl/bio_ssl.cc 506 src/ssl/d1_both.cc 507 src/ssl/d1_lib.cc 508 src/ssl/d1_pkt.cc 509 src/ssl/d1_srtp.cc 510 src/ssl/dtls_method.cc 511 src/ssl/dtls_record.cc 512 src/ssl/encrypted_client_hello.cc 513 src/ssl/extensions.cc 514 src/ssl/handoff.cc 515 src/ssl/handshake.cc 516 src/ssl/handshake_client.cc 517 src/ssl/handshake_server.cc 518 src/ssl/s3_both.cc 519 src/ssl/s3_lib.cc 520 src/ssl/s3_pkt.cc 521 src/ssl/ssl_aead_ctx.cc 522 src/ssl/ssl_asn1.cc 523 src/ssl/ssl_buffer.cc 524 src/ssl/ssl_cert.cc 525 src/ssl/ssl_cipher.cc 526 src/ssl/ssl_credential.cc 527 src/ssl/ssl_file.cc 528 src/ssl/ssl_key_share.cc 529 src/ssl/ssl_lib.cc 530 src/ssl/ssl_privkey.cc 531 src/ssl/ssl_session.cc 532 src/ssl/ssl_stat.cc 533 src/ssl/ssl_transcript.cc 534 src/ssl/ssl_versions.cc 535 src/ssl/ssl_x509.cc 536 src/ssl/t1_enc.cc 537 src/ssl/tls13_both.cc 538 src/ssl/tls13_client.cc 539 src/ssl/tls13_enc.cc 540 src/ssl/tls13_server.cc 541 src/ssl/tls_method.cc 542 src/ssl/tls_record.cc 543) 544 545target_link_libraries(ssl crypto) 546 547add_executable( 548 bssl 549 550 src/tool/args.cc 551 src/tool/ciphers.cc 552 src/tool/client.cc 553 src/tool/const.cc 554 src/tool/digest.cc 555 src/tool/fd.cc 556 src/tool/file.cc 557 src/tool/generate_ech.cc 558 src/tool/generate_ed25519.cc 559 src/tool/genrsa.cc 560 src/tool/pkcs12.cc 561 src/tool/rand.cc 562 src/tool/server.cc 563 src/tool/sign.cc 564 src/tool/speed.cc 565 src/tool/tool.cc 566 src/tool/transport_common.cc 567) 568 569target_link_libraries(bssl ssl crypto) 570 571if(NOT CMAKE_SYSTEM_NAME STREQUAL "Android") 572 find_package(Threads REQUIRED) 573 target_link_libraries(crypto Threads::Threads) 574endif() 575 576if(WIN32) 577 target_link_libraries(crypto ws2_32) 578endif() 579 580