Adam Langley | fd49993 | 2017-04-04 14:21:43 -0700 | [diff] [blame] | 1 | add_subdirectory(fipsmodule) |
Adam Langley | 95c29f3 | 2014-06-20 12:00:00 -0700 | [diff] [blame] | 2 | |
Adam Langley | d72e47f | 2019-05-09 16:39:49 -0700 | [diff] [blame] | 3 | if(FIPS_DELOCATE OR FIPS_SHARED) |
Adam Langley | fd49993 | 2017-04-04 14:21:43 -0700 | [diff] [blame] | 4 | SET_SOURCE_FILES_PROPERTIES(fipsmodule/bcm.o PROPERTIES EXTERNAL_OBJECT true) |
| 5 | SET_SOURCE_FILES_PROPERTIES(fipsmodule/bcm.o PROPERTIES GENERATED true) |
| 6 | |
| 7 | set( |
| 8 | CRYPTO_FIPS_OBJECTS |
| 9 | |
| 10 | fipsmodule/bcm.o |
| 11 | ) |
| 12 | endif() |
| 13 | |
David Benjamin | 1967621 | 2023-01-25 10:03:53 -0500 | [diff] [blame] | 14 | set( |
| 15 | CRYPTO_SOURCES_ASM |
| 16 | curve25519/asm/x25519-asm-arm.S |
Adam Langley | 04b3a96 | 2023-02-08 21:08:49 +0000 | [diff] [blame] | 17 | hrss/asm/poly_rq_mul.S |
David Benjamin | 1967621 | 2023-01-25 10:03:53 -0500 | [diff] [blame] | 18 | poly1305/poly1305_arm_asm.S |
David Benjamin | 3f680b0 | 2023-06-07 17:43:52 -0400 | [diff] [blame] | 19 | ../third_party/fiat/asm/fiat_curve25519_adx_mul.S |
| 20 | ../third_party/fiat/asm/fiat_curve25519_adx_square.S |
Andres Erbsen | 20c9406 | 2023-09-25 19:28:44 +0000 | [diff] [blame] | 21 | ../third_party/fiat/asm/fiat_p256_adx_mul.S |
| 22 | ../third_party/fiat/asm/fiat_p256_adx_sqr.S |
David Benjamin | 1967621 | 2023-01-25 10:03:53 -0500 | [diff] [blame] | 23 | ) |
| 24 | perlasm(CRYPTO_SOURCES aarch64 chacha/chacha-armv8 chacha/asm/chacha-armv8.pl) |
| 25 | perlasm(CRYPTO_SOURCES aarch64 cipher_extra/chacha20_poly1305_armv8 cipher_extra/asm/chacha20_poly1305_armv8.pl) |
| 26 | perlasm(CRYPTO_SOURCES aarch64 test/trampoline-armv8 test/asm/trampoline-armv8.pl) |
| 27 | perlasm(CRYPTO_SOURCES arm chacha/chacha-armv4 chacha/asm/chacha-armv4.pl) |
| 28 | perlasm(CRYPTO_SOURCES arm test/trampoline-armv4 test/asm/trampoline-armv4.pl) |
David Benjamin | 1967621 | 2023-01-25 10:03:53 -0500 | [diff] [blame] | 29 | perlasm(CRYPTO_SOURCES x86 chacha/chacha-x86 chacha/asm/chacha-x86.pl) |
| 30 | perlasm(CRYPTO_SOURCES x86 test/trampoline-x86 test/asm/trampoline-x86.pl) |
| 31 | perlasm(CRYPTO_SOURCES x86_64 chacha/chacha-x86_64 chacha/asm/chacha-x86_64.pl) |
| 32 | perlasm(CRYPTO_SOURCES x86_64 cipher_extra/aes128gcmsiv-x86_64 cipher_extra/asm/aes128gcmsiv-x86_64.pl) |
| 33 | perlasm(CRYPTO_SOURCES x86_64 cipher_extra/chacha20_poly1305_x86_64 cipher_extra/asm/chacha20_poly1305_x86_64.pl) |
| 34 | perlasm(CRYPTO_SOURCES x86_64 test/trampoline-x86_64 test/asm/trampoline-x86_64.pl) |
David Benjamin | 1fcae84 | 2018-09-05 15:31:48 -0500 | [diff] [blame] | 35 | |
David Benjamin | 681ff27 | 2018-09-05 16:40:13 -0500 | [diff] [blame] | 36 | add_custom_command( |
| 37 | OUTPUT err_data.c |
| 38 | COMMAND ${GO_EXECUTABLE} run err_data_generate.go > ${CMAKE_CURRENT_BINARY_DIR}/err_data.c |
| 39 | DEPENDS |
| 40 | err/err_data_generate.go |
| 41 | err/asn1.errordata |
| 42 | err/bio.errordata |
| 43 | err/bn.errordata |
| 44 | err/cipher.errordata |
| 45 | err/conf.errordata |
| 46 | err/dh.errordata |
| 47 | err/digest.errordata |
| 48 | err/dsa.errordata |
| 49 | err/ecdh.errordata |
| 50 | err/ecdsa.errordata |
| 51 | err/ec.errordata |
| 52 | err/engine.errordata |
| 53 | err/evp.errordata |
| 54 | err/hkdf.errordata |
| 55 | err/obj.errordata |
| 56 | err/pem.errordata |
| 57 | err/pkcs7.errordata |
| 58 | err/pkcs8.errordata |
| 59 | err/rsa.errordata |
| 60 | err/ssl.errordata |
Steven Valdez | 0b710a3 | 2020-02-14 10:34:53 -0500 | [diff] [blame] | 61 | err/trust_token.errordata |
David Benjamin | 681ff27 | 2018-09-05 16:40:13 -0500 | [diff] [blame] | 62 | err/x509.errordata |
| 63 | err/x509v3.errordata |
| 64 | WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/err |
| 65 | ) |
| 66 | |
Adam Langley | fd49993 | 2017-04-04 14:21:43 -0700 | [diff] [blame] | 67 | add_library( |
| 68 | crypto |
| 69 | |
David Benjamin | 681ff27 | 2018-09-05 16:40:13 -0500 | [diff] [blame] | 70 | asn1/a_bitstr.c |
| 71 | asn1/a_bool.c |
| 72 | asn1/a_d2i_fp.c |
| 73 | asn1/a_dup.c |
David Benjamin | 681ff27 | 2018-09-05 16:40:13 -0500 | [diff] [blame] | 74 | asn1/a_gentm.c |
| 75 | asn1/a_i2d_fp.c |
| 76 | asn1/a_int.c |
| 77 | asn1/a_mbstr.c |
| 78 | asn1/a_object.c |
| 79 | asn1/a_octet.c |
David Benjamin | 0dcbc6e | 2021-08-08 17:33:57 -0400 | [diff] [blame] | 80 | asn1/a_strex.c |
David Benjamin | 681ff27 | 2018-09-05 16:40:13 -0500 | [diff] [blame] | 81 | asn1/a_strnid.c |
| 82 | asn1/a_time.c |
| 83 | asn1/a_type.c |
| 84 | asn1/a_utctm.c |
David Benjamin | 681ff27 | 2018-09-05 16:40:13 -0500 | [diff] [blame] | 85 | asn1/asn1_lib.c |
| 86 | asn1/asn1_par.c |
| 87 | asn1/asn_pack.c |
David Benjamin | 681ff27 | 2018-09-05 16:40:13 -0500 | [diff] [blame] | 88 | asn1/f_int.c |
| 89 | asn1/f_string.c |
| 90 | asn1/tasn_dec.c |
| 91 | asn1/tasn_enc.c |
| 92 | asn1/tasn_fre.c |
| 93 | asn1/tasn_new.c |
| 94 | asn1/tasn_typ.c |
| 95 | asn1/tasn_utl.c |
Bob Beck | ccd665d | 2022-07-29 15:57:00 -0600 | [diff] [blame] | 96 | asn1/posix_time.c |
David Benjamin | 681ff27 | 2018-09-05 16:40:13 -0500 | [diff] [blame] | 97 | base64/base64.c |
| 98 | bio/bio.c |
| 99 | bio/bio_mem.c |
| 100 | bio/connect.c |
David Benjamin | df13691 | 2023-07-14 17:04:13 -0400 | [diff] [blame] | 101 | bio/errno.c |
David Benjamin | 681ff27 | 2018-09-05 16:40:13 -0500 | [diff] [blame] | 102 | bio/fd.c |
| 103 | bio/file.c |
| 104 | bio/hexdump.c |
| 105 | bio/pair.c |
| 106 | bio/printf.c |
| 107 | bio/socket.c |
| 108 | bio/socket_helper.c |
Adam Langley | e133345 | 2021-01-21 11:56:52 -0800 | [diff] [blame] | 109 | blake2/blake2.c |
David Benjamin | 681ff27 | 2018-09-05 16:40:13 -0500 | [diff] [blame] | 110 | bn_extra/bn_asn1.c |
| 111 | bn_extra/convert.c |
| 112 | buf/buf.c |
| 113 | bytestring/asn1_compat.c |
| 114 | bytestring/ber.c |
| 115 | bytestring/cbb.c |
| 116 | bytestring/cbs.c |
| 117 | bytestring/unicode.c |
| 118 | chacha/chacha.c |
| 119 | cipher_extra/cipher_extra.c |
| 120 | cipher_extra/derive_key.c |
David Benjamin | 681ff27 | 2018-09-05 16:40:13 -0500 | [diff] [blame] | 121 | cipher_extra/e_aesctrhmac.c |
| 122 | cipher_extra/e_aesgcmsiv.c |
| 123 | cipher_extra/e_chacha20poly1305.c |
Adam Langley | a919539 | 2022-02-04 11:43:59 -0800 | [diff] [blame] | 124 | cipher_extra/e_des.c |
David Benjamin | 681ff27 | 2018-09-05 16:40:13 -0500 | [diff] [blame] | 125 | cipher_extra/e_null.c |
| 126 | cipher_extra/e_rc2.c |
| 127 | cipher_extra/e_rc4.c |
| 128 | cipher_extra/e_tls.c |
| 129 | cipher_extra/tls_cbc.c |
David Benjamin | 681ff27 | 2018-09-05 16:40:13 -0500 | [diff] [blame] | 130 | conf/conf.c |
David Benjamin | 295b313 | 2021-12-21 18:54:15 -0500 | [diff] [blame] | 131 | cpu_aarch64_apple.c |
Bob Beck | 4540c3c | 2023-03-08 12:40:29 -0700 | [diff] [blame] | 132 | cpu_aarch64_openbsd.c |
David Benjamin | 295b313 | 2021-12-21 18:54:15 -0500 | [diff] [blame] | 133 | cpu_aarch64_fuchsia.c |
| 134 | cpu_aarch64_linux.c |
Pierre-Clément Tosi | c49cb59 | 2023-04-05 12:34:30 +0100 | [diff] [blame] | 135 | cpu_aarch64_sysreg.c |
David Benjamin | 295b313 | 2021-12-21 18:54:15 -0500 | [diff] [blame] | 136 | cpu_aarch64_win.c |
Sergey A. Osokin | d66bba9 | 2022-10-12 08:24:45 -0400 | [diff] [blame] | 137 | cpu_arm_freebsd.c |
David Benjamin | 295b313 | 2021-12-21 18:54:15 -0500 | [diff] [blame] | 138 | cpu_arm_linux.c |
David Benjamin | 295b313 | 2021-12-21 18:54:15 -0500 | [diff] [blame] | 139 | cpu_intel.c |
David Benjamin | 681ff27 | 2018-09-05 16:40:13 -0500 | [diff] [blame] | 140 | crypto.c |
David Benjamin | 47b1e39 | 2020-04-23 11:51:56 -0400 | [diff] [blame] | 141 | curve25519/curve25519.c |
Andres Erbsen | 43f8891 | 2023-05-22 20:51:15 +0000 | [diff] [blame] | 142 | curve25519/curve25519_64_adx.c |
David Benjamin | 681ff27 | 2018-09-05 16:40:13 -0500 | [diff] [blame] | 143 | curve25519/spake25519.c |
Adam Langley | a919539 | 2022-02-04 11:43:59 -0800 | [diff] [blame] | 144 | des/des.c |
Adam Langley | ce7f088 | 2020-12-10 13:13:44 -0800 | [diff] [blame] | 145 | dh_extra/params.c |
| 146 | dh_extra/dh_asn1.c |
David Benjamin | 681ff27 | 2018-09-05 16:40:13 -0500 | [diff] [blame] | 147 | digest_extra/digest_extra.c |
| 148 | dsa/dsa.c |
| 149 | dsa/dsa_asn1.c |
| 150 | ecdh_extra/ecdh_extra.c |
| 151 | ecdsa_extra/ecdsa_asn1.c |
| 152 | ec_extra/ec_asn1.c |
David Benjamin | bc4c09d | 2019-10-11 11:54:37 -0400 | [diff] [blame] | 153 | ec_extra/ec_derive.c |
David Benjamin | a49c617 | 2020-04-06 16:28:36 -0400 | [diff] [blame] | 154 | ec_extra/hash_to_curve.c |
David Benjamin | 681ff27 | 2018-09-05 16:40:13 -0500 | [diff] [blame] | 155 | err/err.c |
| 156 | err_data.c |
| 157 | engine/engine.c |
David Benjamin | 681ff27 | 2018-09-05 16:40:13 -0500 | [diff] [blame] | 158 | evp/evp.c |
| 159 | evp/evp_asn1.c |
| 160 | evp/evp_ctx.c |
| 161 | evp/p_dsa_asn1.c |
| 162 | evp/p_ec.c |
| 163 | evp/p_ec_asn1.c |
| 164 | evp/p_ed25519.c |
| 165 | evp/p_ed25519_asn1.c |
David Benjamin | 44872e1 | 2022-06-05 00:31:29 -0400 | [diff] [blame] | 166 | evp/p_hkdf.c |
David Benjamin | 681ff27 | 2018-09-05 16:40:13 -0500 | [diff] [blame] | 167 | evp/p_rsa.c |
| 168 | evp/p_rsa_asn1.c |
David Benjamin | 2c65707 | 2019-07-20 18:54:57 -0400 | [diff] [blame] | 169 | evp/p_x25519.c |
| 170 | evp/p_x25519_asn1.c |
David Benjamin | 681ff27 | 2018-09-05 16:40:13 -0500 | [diff] [blame] | 171 | evp/pbkdf.c |
| 172 | evp/print.c |
| 173 | evp/scrypt.c |
| 174 | evp/sign.c |
| 175 | ex_data.c |
Daniel McArdle | 8b601c8 | 2020-07-16 14:10:52 -0400 | [diff] [blame] | 176 | hpke/hpke.c |
Adam Langley | 7b93593 | 2018-11-12 13:53:42 -0800 | [diff] [blame] | 177 | hrss/hrss.c |
Guillaume Endignoux | 4df6f97 | 2023-10-19 16:21:47 +0200 | [diff] [blame] | 178 | keccak/keccak.c |
Sophie Schmieg | 58472cc | 2023-03-07 00:39:31 +0000 | [diff] [blame] | 179 | kyber/kyber.c |
David Benjamin | 681ff27 | 2018-09-05 16:40:13 -0500 | [diff] [blame] | 180 | lhash/lhash.c |
| 181 | mem.c |
| 182 | obj/obj.c |
| 183 | obj/obj_xref.c |
| 184 | pem/pem_all.c |
| 185 | pem/pem_info.c |
| 186 | pem/pem_lib.c |
| 187 | pem/pem_oth.c |
| 188 | pem/pem_pk8.c |
| 189 | pem/pem_pkey.c |
| 190 | pem/pem_x509.c |
| 191 | pem/pem_xaux.c |
| 192 | pkcs7/pkcs7.c |
| 193 | pkcs7/pkcs7_x509.c |
| 194 | pkcs8/pkcs8.c |
| 195 | pkcs8/pkcs8_x509.c |
| 196 | pkcs8/p5_pbev2.c |
| 197 | poly1305/poly1305.c |
| 198 | poly1305/poly1305_arm.c |
| 199 | poly1305/poly1305_vec.c |
| 200 | pool/pool.c |
| 201 | rand_extra/deterministic.c |
| 202 | rand_extra/forkunsafe.c |
Bob Beck | 53f09ad | 2023-07-04 07:48:12 +0000 | [diff] [blame] | 203 | rand_extra/getentropy.c |
| 204 | rand_extra/ios.c |
Adam Langley | a3a9894 | 2020-12-01 10:38:15 -0800 | [diff] [blame] | 205 | rand_extra/passive.c |
David Benjamin | 681ff27 | 2018-09-05 16:40:13 -0500 | [diff] [blame] | 206 | rand_extra/rand_extra.c |
Bob Beck | 2b8a057 | 2023-07-10 13:17:59 -0600 | [diff] [blame] | 207 | rand_extra/trusty.c |
David Benjamin | 681ff27 | 2018-09-05 16:40:13 -0500 | [diff] [blame] | 208 | rand_extra/windows.c |
| 209 | rc4/rc4.c |
David Benjamin | a05691d | 2023-01-08 16:43:23 -0800 | [diff] [blame] | 210 | refcount.c |
David Benjamin | 681ff27 | 2018-09-05 16:40:13 -0500 | [diff] [blame] | 211 | rsa_extra/rsa_asn1.c |
Adam Langley | 89de6e1 | 2023-03-31 14:33:48 -0700 | [diff] [blame] | 212 | rsa_extra/rsa_crypt.c |
David Benjamin | 681ff27 | 2018-09-05 16:40:13 -0500 | [diff] [blame] | 213 | rsa_extra/rsa_print.c |
Stefan Koelbl | f714cb2 | 2023-06-21 12:20:20 +0000 | [diff] [blame] | 214 | spx/address.c |
| 215 | spx/fors.c |
| 216 | spx/merkle.c |
| 217 | spx/spx.c |
| 218 | spx/thash.c |
| 219 | spx/spx_util.c |
| 220 | spx/wots.c |
David Benjamin | 681ff27 | 2018-09-05 16:40:13 -0500 | [diff] [blame] | 221 | stack/stack.c |
Adam Langley | 09050cb | 2019-07-10 11:12:24 -0700 | [diff] [blame] | 222 | siphash/siphash.c |
David Benjamin | 681ff27 | 2018-09-05 16:40:13 -0500 | [diff] [blame] | 223 | thread.c |
| 224 | thread_none.c |
| 225 | thread_pthread.c |
| 226 | thread_win.c |
Steven Valdez | 538a124 | 2019-12-16 12:12:31 -0500 | [diff] [blame] | 227 | trust_token/pmbtoken.c |
| 228 | trust_token/trust_token.c |
Steven Valdez | f2b2ef8 | 2020-09-21 11:39:22 -0400 | [diff] [blame] | 229 | trust_token/voprf.c |
David Benjamin | 681ff27 | 2018-09-05 16:40:13 -0500 | [diff] [blame] | 230 | x509/a_digest.c |
| 231 | x509/a_sign.c |
David Benjamin | 681ff27 | 2018-09-05 16:40:13 -0500 | [diff] [blame] | 232 | x509/a_verify.c |
| 233 | x509/algorithm.c |
| 234 | x509/asn1_gen.c |
| 235 | x509/by_dir.c |
| 236 | x509/by_file.c |
| 237 | x509/i2d_pr.c |
David Benjamin | 0dcbc6e | 2021-08-08 17:33:57 -0400 | [diff] [blame] | 238 | x509/name_print.c |
David Benjamin | 029d0e7 | 2022-12-26 19:38:40 -0500 | [diff] [blame] | 239 | x509/policy.c |
David Benjamin | 681ff27 | 2018-09-05 16:40:13 -0500 | [diff] [blame] | 240 | x509/rsa_pss.c |
| 241 | x509/t_crl.c |
| 242 | x509/t_req.c |
| 243 | x509/t_x509.c |
| 244 | x509/t_x509a.c |
David Benjamin | 861cb31 | 2023-11-20 23:41:55 -0500 | [diff] [blame] | 245 | x509/v3_akey.c |
| 246 | x509/v3_akeya.c |
| 247 | x509/v3_alt.c |
| 248 | x509/v3_bcons.c |
| 249 | x509/v3_bitst.c |
| 250 | x509/v3_conf.c |
| 251 | x509/v3_cpols.c |
| 252 | x509/v3_crld.c |
| 253 | x509/v3_enum.c |
| 254 | x509/v3_extku.c |
| 255 | x509/v3_genn.c |
| 256 | x509/v3_ia5.c |
| 257 | x509/v3_info.c |
| 258 | x509/v3_int.c |
| 259 | x509/v3_lib.c |
| 260 | x509/v3_ncons.c |
| 261 | x509/v3_ocsp.c |
| 262 | x509/v3_pcons.c |
| 263 | x509/v3_pmaps.c |
| 264 | x509/v3_prn.c |
| 265 | x509/v3_purp.c |
| 266 | x509/v3_skey.c |
| 267 | x509/v3_utl.c |
| 268 | x509/x_algor.c |
| 269 | x509/x_all.c |
| 270 | x509/x_attrib.c |
| 271 | x509/x_crl.c |
| 272 | x509/x_exten.c |
| 273 | x509/x_name.c |
| 274 | x509/x_pubkey.c |
| 275 | x509/x_req.c |
| 276 | x509/x_sig.c |
| 277 | x509/x_spki.c |
| 278 | x509/x_val.c |
| 279 | x509/x_x509.c |
| 280 | x509/x_x509a.c |
David Benjamin | 681ff27 | 2018-09-05 16:40:13 -0500 | [diff] [blame] | 281 | x509/x509_att.c |
| 282 | x509/x509_cmp.c |
| 283 | x509/x509_d2.c |
| 284 | x509/x509_def.c |
| 285 | x509/x509_ext.c |
| 286 | x509/x509_lu.c |
| 287 | x509/x509_obj.c |
David Benjamin | 681ff27 | 2018-09-05 16:40:13 -0500 | [diff] [blame] | 288 | x509/x509_req.c |
| 289 | x509/x509_set.c |
| 290 | x509/x509_trs.c |
| 291 | x509/x509_txt.c |
| 292 | x509/x509_v3.c |
| 293 | x509/x509_vfy.c |
| 294 | x509/x509_vpm.c |
David Benjamin | 861cb31 | 2023-11-20 23:41:55 -0500 | [diff] [blame] | 295 | x509/x509.c |
David Benjamin | 681ff27 | 2018-09-05 16:40:13 -0500 | [diff] [blame] | 296 | x509/x509cset.c |
| 297 | x509/x509name.c |
| 298 | x509/x509rset.c |
| 299 | x509/x509spki.c |
David Benjamin | 681ff27 | 2018-09-05 16:40:13 -0500 | [diff] [blame] | 300 | |
Adam Langley | fd49993 | 2017-04-04 14:21:43 -0700 | [diff] [blame] | 301 | $<TARGET_OBJECTS:fipsmodule> |
Adam Langley | fd49993 | 2017-04-04 14:21:43 -0700 | [diff] [blame] | 302 | ${CRYPTO_FIPS_OBJECTS} |
Adam Langley | 95c29f3 | 2014-06-20 12:00:00 -0700 | [diff] [blame] | 303 | ) |
David Benjamin | 1967621 | 2023-01-25 10:03:53 -0500 | [diff] [blame] | 304 | if(OPENSSL_ASM) |
| 305 | target_sources(crypto PRIVATE ${CRYPTO_SOURCES_ASM}) |
| 306 | endif() |
| 307 | if(OPENSSL_NASM) |
| 308 | target_sources(crypto PRIVATE ${CRYPTO_SOURCES_NASM}) |
| 309 | endif() |
David Benjamin | 0e68520 | 2023-02-04 20:06:30 -0500 | [diff] [blame] | 310 | target_include_directories(crypto PUBLIC |
David Benjamin | 8c4ec3b | 2023-02-27 12:46:12 -0500 | [diff] [blame] | 311 | $<BUILD_INTERFACE:${PROJECT_SOURCE_DIR}/include> |
David Benjamin | 1967621 | 2023-01-25 10:03:53 -0500 | [diff] [blame] | 312 | $<INSTALL_INTERFACE:include> |
Daniel Thornburgh | 2fc6d38 | 2022-04-04 11:23:56 -0700 | [diff] [blame] | 313 | ) |
David Benjamin | e5f7266 | 2023-01-29 18:59:45 -0500 | [diff] [blame] | 314 | install_if_enabled(TARGETS crypto EXPORT OpenSSLTargets ${INSTALL_DESTINATION_DEFAULT}) |
Daniel Thornburgh | 2fc6d38 | 2022-04-04 11:23:56 -0700 | [diff] [blame] | 315 | set_property(TARGET crypto PROPERTY EXPORT_NAME Crypto) |
Adam Langley | 95c29f3 | 2014-06-20 12:00:00 -0700 | [diff] [blame] | 316 | |
Adam Langley | d72e47f | 2019-05-09 16:39:49 -0700 | [diff] [blame] | 317 | if(FIPS_SHARED) |
| 318 | # Rewrite libcrypto.so to inject the correct module hash value. This assumes |
| 319 | # UNIX-style library naming, but we only support FIPS mode on Linux anyway. |
| 320 | add_custom_command( |
| 321 | TARGET crypto POST_BUILD |
| 322 | COMMAND ${GO_EXECUTABLE} run |
| 323 | ${CMAKE_CURRENT_SOURCE_DIR}/../util/fipstools/inject_hash/inject_hash.go |
Adam Langley | 27ffcc6 | 2022-04-01 05:34:52 -0700 | [diff] [blame] | 324 | -o libcrypto.so -in-object libcrypto.so |
Adam Langley | d72e47f | 2019-05-09 16:39:49 -0700 | [diff] [blame] | 325 | # The DEPENDS argument to a POST_BUILD rule appears to be ignored. Thus |
| 326 | # go_executable isn't used (as it doesn't get built), but we list this |
| 327 | # dependency anyway in case it starts working in some CMake version. |
| 328 | DEPENDS ../util/fipstools/inject_hash/inject_hash.go |
| 329 | WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} |
| 330 | ) |
| 331 | endif() |
| 332 | |
David Benjamin | 8c75ed0 | 2023-02-05 13:44:26 -0500 | [diff] [blame] | 333 | add_dependencies(crypto boringssl_prefix_symbols) |
Joshua Liebow-Feeser | 8c7c635 | 2018-08-26 18:53:36 -0700 | [diff] [blame] | 334 | |
Adam Langley | d72e47f | 2019-05-09 16:39:49 -0700 | [diff] [blame] | 335 | if(FIPS_DELOCATE OR FIPS_SHARED) |
Adam Langley | fd49993 | 2017-04-04 14:21:43 -0700 | [diff] [blame] | 336 | add_dependencies(crypto bcm_o_target) |
| 337 | endif() |
| 338 | |
David Benjamin | 0586618 | 2023-01-29 18:25:06 -0500 | [diff] [blame] | 339 | set_target_properties(crypto PROPERTIES LINKER_LANGUAGE C) |
Adam Langley | fd49993 | 2017-04-04 14:21:43 -0700 | [diff] [blame] | 340 | |
Biswapriyo Nath | b819f7e | 2022-10-14 23:30:14 +0530 | [diff] [blame] | 341 | if(WIN32) |
| 342 | target_link_libraries(crypto ws2_32) |
| 343 | endif() |
| 344 | |
Don | 8a3b269 | 2022-08-29 11:27:42 -0700 | [diff] [blame] | 345 | if(NOT ANDROID) |
| 346 | find_package(Threads REQUIRED) |
| 347 | target_link_libraries(crypto Threads::Threads) |
David Benjamin | 72f5911 | 2015-04-02 16:47:15 -0400 | [diff] [blame] | 348 | endif() |
| 349 | |
David Benjamin | e9ae99b | 2018-08-09 15:33:07 -0500 | [diff] [blame] | 350 | # Every target depends on crypto, so we add libcxx as a dependency here to |
| 351 | # simplify injecting it everywhere. |
| 352 | if(USE_CUSTOM_LIBCXX) |
| 353 | target_link_libraries(crypto libcxx) |
| 354 | endif() |