aboutsummaryrefslogtreecommitdiff
path: root/crypto/CMakeLists.txt
diff options
context:
space:
mode:
Diffstat (limited to 'crypto/CMakeLists.txt')
-rw-r--r--crypto/CMakeLists.txt117
1 files changed, 75 insertions, 42 deletions
diff --git a/crypto/CMakeLists.txt b/crypto/CMakeLists.txt
index e642b01..f67d2bd 100644
--- a/crypto/CMakeLists.txt
+++ b/crypto/CMakeLists.txt
@@ -1,30 +1,28 @@
1add_definitions(-DLIBRESSL_CRYPTO_INTERNAL) 1#
2# Copyright (c) 2014 Brent Cook
3#
4# Permission to use, copy, modify, and distribute this software for any
5# purpose with or without fee is hereby granted, provided that the above
6# copyright notice and this permission notice appear in all copies.
7#
8# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
9# WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
10# MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
11# ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
12# WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
13# ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
14# OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
2 15
3if(HOST_ASM_ELF_ARMV4) 16add_definitions(-DLIBRESSL_CRYPTO_INTERNAL)
4 set(
5 ASM_ARMV4_ELF_SRC
6 aes/aes-elf-armv4.S
7 bn/mont-elf-armv4.S
8 sha/sha1-elf-armv4.S
9 sha/sha512-elf-armv4.S
10 sha/sha256-elf-armv4.S
11 modes/ghash-elf-armv4.S
12 armv4cpuid.S
13 armcap.c
14 )
15 add_definitions(-DAES_ASM)
16 add_definitions(-DOPENSSL_BN_ASM_MONT)
17 add_definitions(-DGHASH_ASM)
18 add_definitions(-DOPENSSL_CPUID_OBJ)
19 set(CRYPTO_SRC ${CRYPTO_SRC} ${ASM_ARMV4_ELF_SRC})
20endif()
21 17
22if(HOST_ASM_ELF_X86_64) 18if(HOST_ASM_ELF_X86_64)
19 set(CRYPTO_SRC ${CRYPTO_SRC} aes/aes_amd64.c)
20 set(CRYPTO_SRC ${CRYPTO_SRC} bn/arch/amd64/bn_arch.c)
21 set(CRYPTO_SRC ${CRYPTO_SRC} modes/gcm128_amd64.c)
22
23 set( 23 set(
24 ASM_X86_64_ELF_SRC 24 ASM_X86_64_ELF_SRC
25 aes/aes-elf-x86_64.S 25 aes/aes-elf-x86_64.S
26 aes/bsaes-elf-x86_64.S
27 aes/vpaes-elf-x86_64.S
28 aes/aesni-elf-x86_64.S 26 aes/aesni-elf-x86_64.S
29 bn/modexp512-elf-x86_64.S 27 bn/modexp512-elf-x86_64.S
30 bn/mont-elf-x86_64.S 28 bn/mont-elf-x86_64.S
@@ -35,15 +33,24 @@ if(HOST_ASM_ELF_X86_64)
35 bn/arch/amd64/bignum_add.S 33 bn/arch/amd64/bignum_add.S
36 bn/arch/amd64/bignum_cmadd.S 34 bn/arch/amd64/bignum_cmadd.S
37 bn/arch/amd64/bignum_cmul.S 35 bn/arch/amd64/bignum_cmul.S
36 bn/arch/amd64/bignum_modadd.S
37 bn/arch/amd64/bignum_modsub.S
38 bn/arch/amd64/bignum_mul.S 38 bn/arch/amd64/bignum_mul.S
39 bn/arch/amd64/bignum_mul_4_8.S
39 bn/arch/amd64/bignum_mul_4_8_alt.S 40 bn/arch/amd64/bignum_mul_4_8_alt.S
41 bn/arch/amd64/bignum_mul_6_12.S
42 bn/arch/amd64/bignum_mul_6_12_alt.S
43 bn/arch/amd64/bignum_mul_8_16.S
40 bn/arch/amd64/bignum_mul_8_16_alt.S 44 bn/arch/amd64/bignum_mul_8_16_alt.S
41 bn/arch/amd64/bignum_sqr.S 45 bn/arch/amd64/bignum_sqr.S
46 bn/arch/amd64/bignum_sqr_4_8.S
42 bn/arch/amd64/bignum_sqr_4_8_alt.S 47 bn/arch/amd64/bignum_sqr_4_8_alt.S
48 bn/arch/amd64/bignum_sqr_6_12.S
49 bn/arch/amd64/bignum_sqr_6_12_alt.S
50 bn/arch/amd64/bignum_sqr_8_16.S
43 bn/arch/amd64/bignum_sqr_8_16_alt.S 51 bn/arch/amd64/bignum_sqr_8_16_alt.S
44 bn/arch/amd64/bignum_sub.S 52 bn/arch/amd64/bignum_sub.S
45 bn/arch/amd64/word_clz.S 53 bn/arch/amd64/word_clz.S
46 bn/arch/amd64/bn_arch.c
47 ) 54 )
48 add_definitions(-DAES_ASM) 55 add_definitions(-DAES_ASM)
49 add_definitions(-DBSAES_ASM) 56 add_definitions(-DBSAES_ASM)
@@ -57,11 +64,13 @@ if(HOST_ASM_ELF_X86_64)
57endif() 64endif()
58 65
59if(HOST_ASM_MACOSX_X86_64) 66if(HOST_ASM_MACOSX_X86_64)
67 set(CRYPTO_SRC ${CRYPTO_SRC} aes/aes_amd64.c)
68 set(CRYPTO_SRC ${CRYPTO_SRC} bn/arch/amd64/bn_arch.c)
69 set(CRYPTO_SRC ${CRYPTO_SRC} modes/gcm128_amd64.c)
70
60 set( 71 set(
61 ASM_X86_64_MACOSX_SRC 72 ASM_X86_64_MACOSX_SRC
62 aes/aes-macosx-x86_64.S 73 aes/aes-macosx-x86_64.S
63 aes/bsaes-macosx-x86_64.S
64 aes/vpaes-macosx-x86_64.S
65 aes/aesni-macosx-x86_64.S 74 aes/aesni-macosx-x86_64.S
66 bn/modexp512-macosx-x86_64.S 75 bn/modexp512-macosx-x86_64.S
67 bn/mont-macosx-x86_64.S 76 bn/mont-macosx-x86_64.S
@@ -72,15 +81,24 @@ if(HOST_ASM_MACOSX_X86_64)
72 bn/arch/amd64/bignum_add.S 81 bn/arch/amd64/bignum_add.S
73 bn/arch/amd64/bignum_cmadd.S 82 bn/arch/amd64/bignum_cmadd.S
74 bn/arch/amd64/bignum_cmul.S 83 bn/arch/amd64/bignum_cmul.S
84 bn/arch/amd64/bignum_modadd.S
85 bn/arch/amd64/bignum_modsub.S
75 bn/arch/amd64/bignum_mul.S 86 bn/arch/amd64/bignum_mul.S
87 bn/arch/amd64/bignum_mul_4_8.S
76 bn/arch/amd64/bignum_mul_4_8_alt.S 88 bn/arch/amd64/bignum_mul_4_8_alt.S
89 bn/arch/amd64/bignum_mul_6_12.S
90 bn/arch/amd64/bignum_mul_6_12_alt.S
91 bn/arch/amd64/bignum_mul_8_16.S
77 bn/arch/amd64/bignum_mul_8_16_alt.S 92 bn/arch/amd64/bignum_mul_8_16_alt.S
78 bn/arch/amd64/bignum_sqr.S 93 bn/arch/amd64/bignum_sqr.S
94 bn/arch/amd64/bignum_sqr_4_8.S
79 bn/arch/amd64/bignum_sqr_4_8_alt.S 95 bn/arch/amd64/bignum_sqr_4_8_alt.S
96 bn/arch/amd64/bignum_sqr_6_12.S
97 bn/arch/amd64/bignum_sqr_6_12_alt.S
98 bn/arch/amd64/bignum_sqr_8_16.S
80 bn/arch/amd64/bignum_sqr_8_16_alt.S 99 bn/arch/amd64/bignum_sqr_8_16_alt.S
81 bn/arch/amd64/bignum_sub.S 100 bn/arch/amd64/bignum_sub.S
82 bn/arch/amd64/word_clz.S 101 bn/arch/amd64/word_clz.S
83 bn/arch/amd64/bn_arch.c
84 ) 102 )
85 add_definitions(-DAES_ASM) 103 add_definitions(-DAES_ASM)
86 add_definitions(-DBSAES_ASM) 104 add_definitions(-DBSAES_ASM)
@@ -95,11 +113,12 @@ if(HOST_ASM_MACOSX_X86_64)
95endif() 113endif()
96 114
97if(HOST_ASM_MASM_X86_64) 115if(HOST_ASM_MASM_X86_64)
116 set(CRYPTO_SRC ${CRYPTO_SRC} aes/aes_amd64.c)
117 set(CRYPTO_SRC ${CRYPTO_SRC} modes/gcm128_amd64.c)
118
98 set( 119 set(
99 ASM_X86_64_MASM_SRC 120 ASM_X86_64_MASM_SRC
100 aes/aes-masm-x86_64.S 121 aes/aes-masm-x86_64.S
101 aes/bsaes-masm-x86_64.S
102 aes/vpaes-masm-x86_64.S
103 aes/aesni-masm-x86_64.S 122 aes/aesni-masm-x86_64.S
104 #bn/modexp512-masm-x86_64.S 123 #bn/modexp512-masm-x86_64.S
105 #bn/mont-masm-x86_64.S 124 #bn/mont-masm-x86_64.S
@@ -121,11 +140,12 @@ if(HOST_ASM_MASM_X86_64)
121endif() 140endif()
122 141
123if(HOST_ASM_MINGW64_X86_64) 142if(HOST_ASM_MINGW64_X86_64)
143 set(CRYPTO_SRC ${CRYPTO_SRC} aes/aes_amd64.c)
144 set(CRYPTO_SRC ${CRYPTO_SRC} modes/gcm128_amd64.c)
145
124 set( 146 set(
125 ASM_X86_64_MINGW64_SRC 147 ASM_X86_64_MINGW64_SRC
126 aes/aes-mingw64-x86_64.S 148 aes/aes-mingw64-x86_64.S
127 aes/bsaes-mingw64-x86_64.S
128 aes/vpaes-mingw64-x86_64.S
129 aes/aesni-mingw64-x86_64.S 149 aes/aesni-mingw64-x86_64.S
130 #bn/modexp512-mingw64-x86_64.S 150 #bn/modexp512-mingw64-x86_64.S
131 #bn/mont-mingw64-x86_64.S 151 #bn/mont-mingw64-x86_64.S
@@ -146,7 +166,17 @@ if(HOST_ASM_MINGW64_X86_64)
146endif() 166endif()
147 167
148if(HOST_AARCH64) 168if(HOST_AARCH64)
149 set(CRYPTO_SRC ${CRYPTO_SRC} arch/aarch64/crypto_cpu_caps.c) 169 if(APPLE)
170 set(CRYPTO_SRC ${CRYPTO_SRC} arch/aarch64/crypto_cpu_caps_darwin.c)
171 elseif(LINUX)
172 set(CRYPTO_SRC ${CRYPTO_SRC} arch/aarch64/crypto_cpu_caps_linux.c)
173 elseif(CMAKE_SYSTEM_NAME STREQUAL "OpenBSD")
174 set(CRYPTO_SRC ${CRYPTO_SRC} arch/aarch64/crypto_cpu_caps.c)
175 elseif(WIN32)
176 set(CRYPTO_SRC ${CRYPTO_SRC} arch/aarch64/crypto_cpu_caps_windows.c)
177 else()
178 set(CRYPTO_SRC ${CRYPTO_SRC} arch/aarch64/crypto_cpu_caps_none.c)
179 endif()
150elseif(HOST_X86_64) 180elseif(HOST_X86_64)
151 set(CRYPTO_SRC ${CRYPTO_SRC} arch/amd64/crypto_cpu_caps.c) 181 set(CRYPTO_SRC ${CRYPTO_SRC} arch/amd64/crypto_cpu_caps.c)
152elseif(HOST_I386) 182elseif(HOST_I386)
@@ -163,7 +193,6 @@ set(
163 crypto_memory.c 193 crypto_memory.c
164 aes/aes.c 194 aes/aes.c
165 aes/aes_core.c 195 aes/aes_core.c
166 aes/aes_ige.c
167 asn1/a_bitstr.c 196 asn1/a_bitstr.c
168 asn1/a_enum.c 197 asn1/a_enum.c
169 asn1/a_int.c 198 asn1/a_int.c
@@ -213,10 +242,8 @@ set(
213 asn1/x_bignum.c 242 asn1/x_bignum.c
214 asn1/x_crl.c 243 asn1/x_crl.c
215 asn1/x_exten.c 244 asn1/x_exten.c
216 asn1/x_info.c
217 asn1/x_long.c 245 asn1/x_long.c
218 asn1/x_name.c 246 asn1/x_name.c
219 asn1/x_pkey.c
220 asn1/x_pubkey.c 247 asn1/x_pubkey.c
221 asn1/x_req.c 248 asn1/x_req.c
222 asn1/x_sig.c 249 asn1/x_sig.c
@@ -245,6 +272,7 @@ set(
245 bio/bss_null.c 272 bio/bss_null.c
246 bio/bss_sock.c 273 bio/bss_sock.c
247 bn/bn_add.c 274 bn/bn_add.c
275 bn/bn_add_sub.c
248 bn/bn_bpsw.c 276 bn/bn_bpsw.c
249 bn/bn_const.c 277 bn/bn_const.c
250 bn/bn_convert.c 278 bn/bn_convert.c
@@ -258,6 +286,7 @@ set(
258 bn/bn_lib.c 286 bn/bn_lib.c
259 bn/bn_mod.c 287 bn/bn_mod.c
260 bn/bn_mod_sqrt.c 288 bn/bn_mod_sqrt.c
289 bn/bn_mod_words.c
261 bn/bn_mont.c 290 bn/bn_mont.c
262 bn/bn_mul.c 291 bn/bn_mul.c
263 bn/bn_prime.c 292 bn/bn_prime.c
@@ -339,11 +368,13 @@ set(
339 ec/ec_convert.c 368 ec/ec_convert.c
340 ec/ec_curve.c 369 ec/ec_curve.c
341 ec/ec_err.c 370 ec/ec_err.c
371 ec/ec_field.c
342 ec/ec_key.c 372 ec/ec_key.c
343 ec/ec_lib.c 373 ec/ec_lib.c
344 ec/ec_mult.c 374 ec/ec_mult.c
345 ec/ec_pmeth.c 375 ec/ec_pmeth.c
346 ec/eck_prn.c 376 ec/eck_prn.c
377 ec/ecp_hp_methods.c
347 ec/ecp_methods.c 378 ec/ecp_methods.c
348 ec/ecx_methods.c 379 ec/ecx_methods.c
349 ecdh/ecdh.c 380 ecdh/ecdh.c
@@ -405,8 +436,10 @@ set(
405 lhash/lhash.c 436 lhash/lhash.c
406 md4/md4.c 437 md4/md4.c
407 md5/md5.c 438 md5/md5.c
408 mlkem/mlkem768.c 439 mlkem/mlkem.c
409 mlkem/mlkem1024.c 440 mlkem/mlkem1024.c
441 mlkem/mlkem768.c
442 mlkem/mlkem_key.c
410 modes/cbc128.c 443 modes/cbc128.c
411 modes/ccm128.c 444 modes/ccm128.c
412 modes/cfb128.c 445 modes/cfb128.c
@@ -464,11 +497,7 @@ set(
464 rand/rand_err.c 497 rand/rand_err.c
465 rand/rand_lib.c 498 rand/rand_lib.c
466 rand/randfile.c 499 rand/randfile.c
467 rc2/rc2_cbc.c 500 rc2/rc2.c
468 rc2/rc2_ecb.c
469 rc2/rc2_skey.c
470 rc2/rc2cfb64.c
471 rc2/rc2ofb64.c
472 rc4/rc4.c 501 rc4/rc4.c
473 ripemd/ripemd.c 502 ripemd/ripemd.c
474 rsa/rsa_ameth.c 503 rsa/rsa_ameth.c
@@ -570,17 +599,17 @@ set(
570 599
571set(COMPAT_SRC empty.c) 600set(COMPAT_SRC empty.c)
572 601
602set(CRYPTO_UNEXPORT ${CRYPTO_UNEXPORT} BIO_s_log)
603
573if(UNIX) 604if(UNIX)
574 set(CRYPTO_SRC ${CRYPTO_SRC} crypto_lock.c) 605 set(CRYPTO_SRC ${CRYPTO_SRC} crypto_lock.c)
575 set(CRYPTO_SRC ${CRYPTO_SRC} bio/b_posix.c) 606 set(CRYPTO_SRC ${CRYPTO_SRC} bio/b_posix.c)
576 set(CRYPTO_SRC ${CRYPTO_SRC} bio/bss_log.c)
577 set(CRYPTO_SRC ${CRYPTO_SRC} ui/ui_openssl.c) 607 set(CRYPTO_SRC ${CRYPTO_SRC} ui/ui_openssl.c)
578endif() 608endif()
579 609
580if(WIN32) 610if(WIN32)
581 set(CRYPTO_SRC ${CRYPTO_SRC} compat/crypto_lock_win.c) 611 set(CRYPTO_SRC ${CRYPTO_SRC} compat/crypto_lock_win.c)
582 set(CRYPTO_SRC ${CRYPTO_SRC} bio/b_win.c) 612 set(CRYPTO_SRC ${CRYPTO_SRC} bio/b_win.c)
583 set(CRYPTO_UNEXPORT ${CRYPTO_UNEXPORT} BIO_s_log)
584 set(CRYPTO_SRC ${CRYPTO_SRC} ui/ui_openssl_win.c) 613 set(CRYPTO_SRC ${CRYPTO_SRC} ui/ui_openssl_win.c)
585endif() 614endif()
586 615
@@ -736,6 +765,7 @@ add_library(crypto_obj OBJECT ${CRYPTO_SRC})
736target_include_directories(crypto_obj 765target_include_directories(crypto_obj
737 PRIVATE 766 PRIVATE
738 . 767 .
768 aes
739 asn1 769 asn1
740 bio 770 bio
741 bn 771 bn
@@ -774,11 +804,14 @@ elseif(HOST_ARM)
774elseif(HOST_I386) 804elseif(HOST_I386)
775 target_include_directories(crypto_obj PRIVATE arch/i386/) 805 target_include_directories(crypto_obj PRIVATE arch/i386/)
776 target_include_directories(crypto_obj PRIVATE bn/arch/i386/) 806 target_include_directories(crypto_obj PRIVATE bn/arch/i386/)
807elseif(HOST_LOONGARCH64)
808 target_include_directories(crypto_obj PRIVATE arch/loongarch64)
809 target_include_directories(crypto_obj PRIVATE bn/arch/loongarch64)
777elseif(HOST_MIPS64) 810elseif(HOST_MIPS64)
778 target_include_directories(crypto_obj PRIVATE arch/mips64) 811 target_include_directories(crypto_obj PRIVATE arch/mips64)
779 target_include_directories(crypto_obj PRIVATE bn/arch/mips64) 812 target_include_directories(crypto_obj PRIVATE bn/arch/mips64)
780elseif(HOST_MIPS) 813elseif(HOST_MIPS)
781 # XXX - can this go away? the directory doesn't exist... 814 target_include_directories(crypto_obj PRIVATE arch/mips)
782 target_include_directories(crypto_obj PRIVATE bn/arch/mips) 815 target_include_directories(crypto_obj PRIVATE bn/arch/mips)
783elseif(HOST_POWERPC) 816elseif(HOST_POWERPC)
784 target_include_directories(crypto_obj PRIVATE arch/powerpc) 817 target_include_directories(crypto_obj PRIVATE arch/powerpc)