uringmachine 0.15 → 0.18

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (261) hide show
  1. checksums.yaml +4 -4
  2. data/.github/FUNDING.yml +3 -0
  3. data/.gitmodules +4 -0
  4. data/CHANGELOG.md +12 -0
  5. data/TODO.md +12 -3
  6. data/examples/bm_send.rb +86 -0
  7. data/ext/um/um.c +28 -1
  8. data/ext/um/um.h +3 -0
  9. data/ext/um/um_class.c +17 -0
  10. data/ext/um/um_stream_class.c +0 -1
  11. data/ext/um/um_utils.c +38 -15
  12. data/lib/uringmachine/version.rb +1 -1
  13. data/lib/uringmachine.rb +4 -3
  14. data/test/test_um.rb +76 -0
  15. data/vendor/libressl/.github/scripts/changelog.sh +74 -0
  16. data/vendor/libressl/.github/workflows/android.yml +35 -0
  17. data/vendor/libressl/.github/workflows/cifuzz.yml +33 -0
  18. data/vendor/libressl/.github/workflows/cmake-config.yml +98 -0
  19. data/vendor/libressl/.github/workflows/coverity.yml +69 -0
  20. data/vendor/libressl/.github/workflows/emscripten.yml +71 -0
  21. data/vendor/libressl/.github/workflows/fedora-rawhide.yml +39 -0
  22. data/vendor/libressl/.github/workflows/freebsd.yml +71 -0
  23. data/vendor/libressl/.github/workflows/linux.yml +71 -0
  24. data/vendor/libressl/.github/workflows/macos.yml +37 -0
  25. data/vendor/libressl/.github/workflows/release.yml +81 -0
  26. data/vendor/libressl/.github/workflows/rust-openssl.yml +47 -0
  27. data/vendor/libressl/.github/workflows/solaris.yml +37 -0
  28. data/vendor/libressl/.github/workflows/windows.yml +70 -0
  29. data/vendor/libressl/.gitignore +333 -0
  30. data/vendor/libressl/CMakeLists.txt +581 -0
  31. data/vendor/libressl/COPYING +133 -0
  32. data/vendor/libressl/ChangeLog +3280 -0
  33. data/vendor/libressl/FindLibreSSL.cmake +232 -0
  34. data/vendor/libressl/LibreSSLConfig.cmake.in +36 -0
  35. data/vendor/libressl/Makefile.am +60 -0
  36. data/vendor/libressl/Makefile.am.common +20 -0
  37. data/vendor/libressl/OPENBSD_BRANCH +1 -0
  38. data/vendor/libressl/README.md +238 -0
  39. data/vendor/libressl/README.mingw.md +43 -0
  40. data/vendor/libressl/apps/CMakeLists.txt +18 -0
  41. data/vendor/libressl/apps/Makefile.am +5 -0
  42. data/vendor/libressl/apps/nc/CMakeLists.txt +67 -0
  43. data/vendor/libressl/apps/nc/Makefile.am +64 -0
  44. data/vendor/libressl/apps/nc/compat/accept4.c +17 -0
  45. data/vendor/libressl/apps/nc/compat/readpassphrase.c +205 -0
  46. data/vendor/libressl/apps/nc/compat/socket.c +29 -0
  47. data/vendor/libressl/apps/nc/compat/sys/socket.h +30 -0
  48. data/vendor/libressl/apps/ocspcheck/CMakeLists.txt +44 -0
  49. data/vendor/libressl/apps/ocspcheck/Makefile.am +45 -0
  50. data/vendor/libressl/apps/ocspcheck/compat/.gitignore +0 -0
  51. data/vendor/libressl/apps/openssl/CMakeLists.txt +97 -0
  52. data/vendor/libressl/apps/openssl/Makefile.am +108 -0
  53. data/vendor/libressl/apps/openssl/apps_win.c +138 -0
  54. data/vendor/libressl/apps/openssl/certhash_win.c +13 -0
  55. data/vendor/libressl/apps/openssl/compat/clock_gettime_osx.c +26 -0
  56. data/vendor/libressl/apps/openssl/compat/poll_win.c +329 -0
  57. data/vendor/libressl/appveyor.yml +53 -0
  58. data/vendor/libressl/autogen.sh +15 -0
  59. data/vendor/libressl/check-release.sh +86 -0
  60. data/vendor/libressl/cmake_export_symbol.cmake +71 -0
  61. data/vendor/libressl/cmake_uninstall.cmake.in +36 -0
  62. data/vendor/libressl/config +17 -0
  63. data/vendor/libressl/configure.ac +165 -0
  64. data/vendor/libressl/crypto/CMakeLists.txt +863 -0
  65. data/vendor/libressl/crypto/Makefile.am +962 -0
  66. data/vendor/libressl/crypto/Makefile.am.arc4random +46 -0
  67. data/vendor/libressl/crypto/Makefile.am.elf-mips +14 -0
  68. data/vendor/libressl/crypto/Makefile.am.elf-mips64 +14 -0
  69. data/vendor/libressl/crypto/Makefile.am.elf-x86_64 +35 -0
  70. data/vendor/libressl/crypto/Makefile.am.macosx-x86_64 +35 -0
  71. data/vendor/libressl/crypto/Makefile.am.masm-x86_64 +22 -0
  72. data/vendor/libressl/crypto/Makefile.am.mingw64-x86_64 +23 -0
  73. data/vendor/libressl/crypto/arch/aarch64/crypto_cpu_caps_darwin.c +60 -0
  74. data/vendor/libressl/crypto/arch/aarch64/crypto_cpu_caps_linux.c +62 -0
  75. data/vendor/libressl/crypto/arch/aarch64/crypto_cpu_caps_none.c +26 -0
  76. data/vendor/libressl/crypto/arch/aarch64/crypto_cpu_caps_windows.c +36 -0
  77. data/vendor/libressl/crypto/arch/loongarch64/crypto_arch.h +21 -0
  78. data/vendor/libressl/crypto/arch/mips/crypto_arch.h +21 -0
  79. data/vendor/libressl/crypto/bn/arch/loongarch64/bn_arch.h +23 -0
  80. data/vendor/libressl/crypto/bn/arch/mips/bn_arch.h +24 -0
  81. data/vendor/libressl/crypto/compat/.gitignore +31 -0
  82. data/vendor/libressl/crypto/compat/arc4random.h +41 -0
  83. data/vendor/libressl/crypto/compat/b_win.c +55 -0
  84. data/vendor/libressl/crypto/compat/bsd-asprintf.c +96 -0
  85. data/vendor/libressl/crypto/compat/crypto_lock_win.c +56 -0
  86. data/vendor/libressl/crypto/compat/explicit_bzero_win.c +13 -0
  87. data/vendor/libressl/crypto/compat/freezero.c +32 -0
  88. data/vendor/libressl/crypto/compat/getdelim.c +78 -0
  89. data/vendor/libressl/crypto/compat/getline.c +40 -0
  90. data/vendor/libressl/crypto/compat/getopt_long.c +528 -0
  91. data/vendor/libressl/crypto/compat/getpagesize.c +18 -0
  92. data/vendor/libressl/crypto/compat/getprogname_linux.c +23 -0
  93. data/vendor/libressl/crypto/compat/getprogname_unimpl.c +7 -0
  94. data/vendor/libressl/crypto/compat/getprogname_windows.c +13 -0
  95. data/vendor/libressl/crypto/compat/posix_win.c +296 -0
  96. data/vendor/libressl/crypto/compat/syslog_r.c +19 -0
  97. data/vendor/libressl/crypto/compat/ui_openssl_win.c +334 -0
  98. data/vendor/libressl/dist.sh +22 -0
  99. data/vendor/libressl/gen-coverage-report.sh +58 -0
  100. data/vendor/libressl/gen-openbsd-tags.sh +20 -0
  101. data/vendor/libressl/include/CMakeLists.txt +61 -0
  102. data/vendor/libressl/include/Makefile.am +79 -0
  103. data/vendor/libressl/include/arch/loongarch64/opensslconf.h +150 -0
  104. data/vendor/libressl/include/arch/mips/opensslconf.h +150 -0
  105. data/vendor/libressl/include/compat/arpa/inet.h +15 -0
  106. data/vendor/libressl/include/compat/arpa/nameser.h +25 -0
  107. data/vendor/libressl/include/compat/cet.h +19 -0
  108. data/vendor/libressl/include/compat/dirent.h +17 -0
  109. data/vendor/libressl/include/compat/dirent_msvc.h +611 -0
  110. data/vendor/libressl/include/compat/endian.h +161 -0
  111. data/vendor/libressl/include/compat/err.h +95 -0
  112. data/vendor/libressl/include/compat/fcntl.h +32 -0
  113. data/vendor/libressl/include/compat/getopt.h +50 -0
  114. data/vendor/libressl/include/compat/limits.h +25 -0
  115. data/vendor/libressl/include/compat/netdb.h +10 -0
  116. data/vendor/libressl/include/compat/netinet/in.h +19 -0
  117. data/vendor/libressl/include/compat/netinet/ip.h +49 -0
  118. data/vendor/libressl/include/compat/netinet/tcp.h +10 -0
  119. data/vendor/libressl/include/compat/poll.h +63 -0
  120. data/vendor/libressl/include/compat/pthread.h +122 -0
  121. data/vendor/libressl/include/compat/readpassphrase.h +44 -0
  122. data/vendor/libressl/include/compat/resolv.h +24 -0
  123. data/vendor/libressl/include/compat/stdint.h +31 -0
  124. data/vendor/libressl/include/compat/stdio.h +65 -0
  125. data/vendor/libressl/include/compat/stdlib.h +57 -0
  126. data/vendor/libressl/include/compat/string.h +98 -0
  127. data/vendor/libressl/include/compat/sys/_null.h +18 -0
  128. data/vendor/libressl/include/compat/sys/ioctl.h +11 -0
  129. data/vendor/libressl/include/compat/sys/mman.h +19 -0
  130. data/vendor/libressl/include/compat/sys/param.h +15 -0
  131. data/vendor/libressl/include/compat/sys/queue.h +536 -0
  132. data/vendor/libressl/include/compat/sys/select.h +10 -0
  133. data/vendor/libressl/include/compat/sys/socket.h +18 -0
  134. data/vendor/libressl/include/compat/sys/stat.h +129 -0
  135. data/vendor/libressl/include/compat/sys/time.h +37 -0
  136. data/vendor/libressl/include/compat/sys/tree.h +1006 -0
  137. data/vendor/libressl/include/compat/sys/types.h +69 -0
  138. data/vendor/libressl/include/compat/sys/uio.h +17 -0
  139. data/vendor/libressl/include/compat/syslog.h +38 -0
  140. data/vendor/libressl/include/compat/time.h +59 -0
  141. data/vendor/libressl/include/compat/unistd.h +83 -0
  142. data/vendor/libressl/include/compat/win32netcompat.h +57 -0
  143. data/vendor/libressl/include/openssl/Makefile.am.tpl +45 -0
  144. data/vendor/libressl/libcrypto.pc.in +28 -0
  145. data/vendor/libressl/libressl.pub +2 -0
  146. data/vendor/libressl/libssl.pc.in +28 -0
  147. data/vendor/libressl/libtls.pc.in +28 -0
  148. data/vendor/libressl/m4/ax_add_fortify_source.m4 +80 -0
  149. data/vendor/libressl/m4/ax_check_compile_flag.m4 +53 -0
  150. data/vendor/libressl/m4/check-hardening-options.m4 +110 -0
  151. data/vendor/libressl/m4/check-libc.m4 +189 -0
  152. data/vendor/libressl/m4/check-os-options.m4 +181 -0
  153. data/vendor/libressl/m4/disable-compiler-warnings.m4 +44 -0
  154. data/vendor/libressl/man/CMakeLists.txt +26 -0
  155. data/vendor/libressl/man/links +2780 -0
  156. data/vendor/libressl/man/update_links.sh +25 -0
  157. data/vendor/libressl/openssl.pc.in +11 -0
  158. data/vendor/libressl/patches/bn_shift.patch +34 -0
  159. data/vendor/libressl/patches/crypto_arch.h.patch +34 -0
  160. data/vendor/libressl/patches/crypto_namespace.h.patch +22 -0
  161. data/vendor/libressl/patches/netcat.c.patch +178 -0
  162. data/vendor/libressl/patches/openssl.c.patch +12 -0
  163. data/vendor/libressl/patches/opensslfeatures.h.patch +49 -0
  164. data/vendor/libressl/patches/patch-amd64-crypto-cpu-caps.c.patch +20 -0
  165. data/vendor/libressl/patches/patch-i386-crypto-cpu-caps.c.patch +20 -0
  166. data/vendor/libressl/patches/speed.c.patch +114 -0
  167. data/vendor/libressl/patches/ssl_namespace.h.patch +21 -0
  168. data/vendor/libressl/patches/tls.h.patch +16 -0
  169. data/vendor/libressl/patches/tls_config.c.patch +15 -0
  170. data/vendor/libressl/patches/win32_amd64_bn_arch.h.patch +28 -0
  171. data/vendor/libressl/patches/windows_headers.patch +80 -0
  172. data/vendor/libressl/scripts/config.guess +1774 -0
  173. data/vendor/libressl/scripts/config.sub +1907 -0
  174. data/vendor/libressl/scripts/i686-w64-mingw32.cmake +9 -0
  175. data/vendor/libressl/scripts/test +210 -0
  176. data/vendor/libressl/scripts/wrap-compiler-for-flag-check +31 -0
  177. data/vendor/libressl/scripts/x86_64-w64-mingw32.cmake +9 -0
  178. data/vendor/libressl/ssl/CMakeLists.txt +183 -0
  179. data/vendor/libressl/ssl/Makefile.am +187 -0
  180. data/vendor/libressl/tests/CMakeLists.txt +970 -0
  181. data/vendor/libressl/tests/Makefile.am +944 -0
  182. data/vendor/libressl/tests/aeadtest.sh +30 -0
  183. data/vendor/libressl/tests/arc4randomforktest.sh +21 -0
  184. data/vendor/libressl/tests/asn1time_small.test +10 -0
  185. data/vendor/libressl/tests/cmake/CMakeLists.txt +52 -0
  186. data/vendor/libressl/tests/cmake/crypto.c +7 -0
  187. data/vendor/libressl/tests/cmake/ssl.c +6 -0
  188. data/vendor/libressl/tests/cmake/tls.c +6 -0
  189. data/vendor/libressl/tests/compat/pipe2.c +186 -0
  190. data/vendor/libressl/tests/dtlstest.sh +28 -0
  191. data/vendor/libressl/tests/evptest.sh +22 -0
  192. data/vendor/libressl/tests/keypairtest.sh +27 -0
  193. data/vendor/libressl/tests/mlkem_tests.sh +39 -0
  194. data/vendor/libressl/tests/ocsptest.bat +25 -0
  195. data/vendor/libressl/tests/ocsptest.sh +23 -0
  196. data/vendor/libressl/tests/openssl.cnf +29 -0
  197. data/vendor/libressl/tests/optionstest.c +381 -0
  198. data/vendor/libressl/tests/pidwraptest.c +85 -0
  199. data/vendor/libressl/tests/pidwraptest.sh +26 -0
  200. data/vendor/libressl/tests/quictest.bat +27 -0
  201. data/vendor/libressl/tests/quictest.sh +30 -0
  202. data/vendor/libressl/tests/renegotiation_test.bat +27 -0
  203. data/vendor/libressl/tests/renegotiation_test.sh +30 -0
  204. data/vendor/libressl/tests/rfc5280time_small.test +10 -0
  205. data/vendor/libressl/tests/servertest.bat +27 -0
  206. data/vendor/libressl/tests/servertest.sh +30 -0
  207. data/vendor/libressl/tests/shutdowntest.bat +27 -0
  208. data/vendor/libressl/tests/shutdowntest.sh +30 -0
  209. data/vendor/libressl/tests/ssltest.bat +32 -0
  210. data/vendor/libressl/tests/ssltest.sh +48 -0
  211. data/vendor/libressl/tests/testdsa.bat +47 -0
  212. data/vendor/libressl/tests/testdsa.sh +57 -0
  213. data/vendor/libressl/tests/testenc.bat +85 -0
  214. data/vendor/libressl/tests/testenc.sh +93 -0
  215. data/vendor/libressl/tests/testrsa.bat +47 -0
  216. data/vendor/libressl/tests/testrsa.sh +57 -0
  217. data/vendor/libressl/tests/testssl.bat +171 -0
  218. data/vendor/libressl/tests/tlstest.bat +27 -0
  219. data/vendor/libressl/tests/tlstest.sh +28 -0
  220. data/vendor/libressl/tls/CMakeLists.txt +125 -0
  221. data/vendor/libressl/tls/Makefile.am +76 -0
  222. data/vendor/libressl/tls/compat/ftruncate.c +17 -0
  223. data/vendor/libressl/tls/compat/pread.c +29 -0
  224. data/vendor/libressl/tls/compat/pwrite.c +29 -0
  225. data/vendor/libressl/update.sh +460 -0
  226. data/vendor/liburing/.github/workflows/ci.yml +8 -0
  227. data/vendor/liburing/configure +23 -2
  228. data/vendor/liburing/examples/helpers.c +1 -1
  229. data/vendor/liburing/examples/helpers.h +1 -1
  230. data/vendor/liburing/examples/reg-wait.c +3 -3
  231. data/vendor/liburing/examples/zcrx.c +5 -5
  232. data/vendor/liburing/liburing.spec +1 -1
  233. data/vendor/liburing/src/include/liburing/io_uring.h +16 -0
  234. data/vendor/liburing/src/include/liburing.h +20 -4
  235. data/vendor/liburing/src/lib.h +2 -4
  236. data/vendor/liburing/src/liburing-ffi.map +7 -0
  237. data/vendor/liburing/src/liburing.map +7 -0
  238. data/vendor/liburing/src/register.c +5 -0
  239. data/vendor/liburing/src/sanitize.c +5 -4
  240. data/vendor/liburing/src/setup.c +43 -28
  241. data/vendor/liburing/test/Makefile +7 -0
  242. data/vendor/liburing/test/cmd-discard.c +2 -2
  243. data/vendor/liburing/test/evfd-short-read.c +84 -0
  244. data/vendor/liburing/test/fdinfo-sqpoll.c +117 -0
  245. data/vendor/liburing/test/fdinfo.c +1 -1
  246. data/vendor/liburing/test/fixed-buf-merge.c +2 -2
  247. data/vendor/liburing/test/futex-kill.c +135 -0
  248. data/vendor/liburing/test/helpers.c +1 -1
  249. data/vendor/liburing/test/helpers.h +1 -1
  250. data/vendor/liburing/test/init-mem.c +50 -12
  251. data/vendor/liburing/test/io_uring_passthrough.c +25 -6
  252. data/vendor/liburing/test/msg-ring.c +123 -9
  253. data/vendor/liburing/test/recv-bundle-short-ooo.c +16 -1
  254. data/vendor/liburing/test/recv-inc-ooo.c +411 -0
  255. data/vendor/liburing/test/recv-mshot-fair.c +513 -0
  256. data/vendor/liburing/test/reg-wait.c +14 -14
  257. data/vendor/liburing/test/send-zerocopy.c +4 -4
  258. data/vendor/liburing/test/timerfd-short-read.c +81 -0
  259. data/vendor/liburing/test/timestamp.c +382 -0
  260. data/vendor/liburing/test/zcrx.c +22 -22
  261. metadata +222 -2
@@ -0,0 +1,863 @@
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.
15
+
16
+ add_definitions(-DLIBRESSL_CRYPTO_INTERNAL)
17
+
18
+ if(HOST_ASM_ELF_X86_64)
19
+ set(
20
+ ASM_X86_64_ELF_SRC
21
+ aes/aes-elf-x86_64.S
22
+ aes/aesni-elf-x86_64.S
23
+ bn/modexp512-elf-x86_64.S
24
+ bn/mont-elf-x86_64.S
25
+ bn/mont5-elf-x86_64.S
26
+ modes/ghash-elf-x86_64.S
27
+ rc4/rc4-elf-x86_64.S
28
+
29
+ bn/arch/amd64/bignum_add.S
30
+ bn/arch/amd64/bignum_cmadd.S
31
+ bn/arch/amd64/bignum_cmul.S
32
+ bn/arch/amd64/bignum_mul.S
33
+ bn/arch/amd64/bignum_mul_4_8_alt.S
34
+ bn/arch/amd64/bignum_mul_8_16_alt.S
35
+ bn/arch/amd64/bignum_sqr.S
36
+ bn/arch/amd64/bignum_sqr_4_8_alt.S
37
+ bn/arch/amd64/bignum_sqr_8_16_alt.S
38
+ bn/arch/amd64/bignum_sub.S
39
+ bn/arch/amd64/word_clz.S
40
+ bn/arch/amd64/bn_arch.c
41
+ )
42
+ add_definitions(-DAES_ASM)
43
+ add_definitions(-DBSAES_ASM)
44
+ add_definitions(-DVPAES_ASM)
45
+ add_definitions(-DOPENSSL_IA32_SSE2)
46
+ add_definitions(-DOPENSSL_BN_ASM_MONT)
47
+ add_definitions(-DOPENSSL_BN_ASM_MONT5)
48
+ add_definitions(-DGHASH_ASM)
49
+ add_definitions(-DRSA_ASM)
50
+ set(CRYPTO_SRC ${CRYPTO_SRC} ${ASM_X86_64_ELF_SRC})
51
+ endif()
52
+
53
+ if(HOST_ASM_MACOSX_X86_64)
54
+ set(
55
+ ASM_X86_64_MACOSX_SRC
56
+ aes/aes-macosx-x86_64.S
57
+ aes/aesni-macosx-x86_64.S
58
+ bn/modexp512-macosx-x86_64.S
59
+ bn/mont-macosx-x86_64.S
60
+ bn/mont5-macosx-x86_64.S
61
+ modes/ghash-macosx-x86_64.S
62
+ rc4/rc4-macosx-x86_64.S
63
+
64
+ bn/arch/amd64/bignum_add.S
65
+ bn/arch/amd64/bignum_cmadd.S
66
+ bn/arch/amd64/bignum_cmul.S
67
+ bn/arch/amd64/bignum_mul.S
68
+ bn/arch/amd64/bignum_mul_4_8_alt.S
69
+ bn/arch/amd64/bignum_mul_8_16_alt.S
70
+ bn/arch/amd64/bignum_sqr.S
71
+ bn/arch/amd64/bignum_sqr_4_8_alt.S
72
+ bn/arch/amd64/bignum_sqr_8_16_alt.S
73
+ bn/arch/amd64/bignum_sub.S
74
+ bn/arch/amd64/word_clz.S
75
+ bn/arch/amd64/bn_arch.c
76
+ )
77
+ add_definitions(-DAES_ASM)
78
+ add_definitions(-DBSAES_ASM)
79
+ add_definitions(-DVPAES_ASM)
80
+ add_definitions(-DOPENSSL_IA32_SSE2)
81
+ add_definitions(-DOPENSSL_BN_ASM_MONT)
82
+ add_definitions(-DOPENSSL_BN_ASM_MONT5)
83
+ add_definitions(-DGHASH_ASM)
84
+ add_definitions(-DRSA_ASM)
85
+ set(CRYPTO_SRC ${CRYPTO_SRC} ${ASM_X86_64_MACOSX_SRC})
86
+ set_property(SOURCE ${ASM_X86_64_MACOSX_SRC} PROPERTY XCODE_EXPLICIT_FILE_TYPE "sourcecode.asm")
87
+ endif()
88
+
89
+ if(HOST_ASM_MASM_X86_64)
90
+ set(
91
+ ASM_X86_64_MASM_SRC
92
+ aes/aes-masm-x86_64.S
93
+ aes/aesni-masm-x86_64.S
94
+ #bn/modexp512-masm-x86_64.S
95
+ #bn/mont-masm-x86_64.S
96
+ #bn/mont5-masm-x86_64.S
97
+ modes/ghash-masm-x86_64.S
98
+ rc4/rc4-masm-x86_64.S
99
+ )
100
+ add_definitions(-Dendbr64=)
101
+ add_definitions(-DAES_ASM)
102
+ add_definitions(-DBSAES_ASM)
103
+ add_definitions(-DVPAES_ASM)
104
+ add_definitions(-DOPENSSL_IA32_SSE2)
105
+ #add_definitions(-DOPENSSL_BN_ASM_MONT)
106
+ #add_definitions(-DOPENSSL_BN_ASM_MONT5)
107
+ add_definitions(-DGHASH_ASM)
108
+ add_definitions(-DRSA_ASM)
109
+ set(CRYPTO_SRC ${CRYPTO_SRC} ${ASM_X86_64_MASM_SRC})
110
+ set_property(SOURCE ${ASM_X86_64_MASM_SRC} PROPERTY LANGUAGE ASM_MASM)
111
+ endif()
112
+
113
+ if(HOST_ASM_MINGW64_X86_64)
114
+ set(
115
+ ASM_X86_64_MINGW64_SRC
116
+ aes/aes-mingw64-x86_64.S
117
+ aes/aesni-mingw64-x86_64.S
118
+ #bn/modexp512-mingw64-x86_64.S
119
+ #bn/mont-mingw64-x86_64.S
120
+ #bn/mont5-mingw64-x86_64.S
121
+ modes/ghash-mingw64-x86_64.S
122
+ rc4/rc4-mingw64-x86_64.S
123
+ )
124
+ add_definitions(-Dendbr32=endbr64)
125
+ add_definitions(-DAES_ASM)
126
+ add_definitions(-DBSAES_ASM)
127
+ add_definitions(-DVPAES_ASM)
128
+ add_definitions(-DOPENSSL_IA32_SSE2)
129
+ #add_definitions(-DOPENSSL_BN_ASM_MONT)
130
+ #add_definitions(-DOPENSSL_BN_ASM_MONT5)
131
+ add_definitions(-DGHASH_ASM)
132
+ add_definitions(-DRSA_ASM)
133
+ set(CRYPTO_SRC ${CRYPTO_SRC} ${ASM_X86_64_MINGW64_SRC})
134
+ endif()
135
+
136
+ if(HOST_AARCH64)
137
+ if(APPLE)
138
+ set(CRYPTO_SRC ${CRYPTO_SRC} arch/aarch64/crypto_cpu_caps_darwin.c)
139
+ elseif(LINUX)
140
+ set(CRYPTO_SRC ${CRYPTO_SRC} arch/aarch64/crypto_cpu_caps_linux.c)
141
+ elseif(CMAKE_SYSTEM_NAME STREQUAL "OpenBSD")
142
+ set(CRYPTO_SRC ${CRYPTO_SRC} arch/aarch64/crypto_cpu_caps.c)
143
+ elseif(WIN32)
144
+ set(CRYPTO_SRC ${CRYPTO_SRC} arch/aarch64/crypto_cpu_caps_windows.c)
145
+ else()
146
+ set(CRYPTO_SRC ${CRYPTO_SRC} arch/aarch64/crypto_cpu_caps_none.c)
147
+ endif()
148
+ elseif(HOST_X86_64)
149
+ set(CRYPTO_SRC ${CRYPTO_SRC} arch/amd64/crypto_cpu_caps.c)
150
+ elseif(HOST_I386)
151
+ set(CRYPTO_SRC ${CRYPTO_SRC} arch/i386/crypto_cpu_caps.c)
152
+ endif()
153
+
154
+ set(
155
+ CRYPTO_SRC
156
+ ${CRYPTO_SRC}
157
+ crypto_err.c
158
+ crypto_ex_data.c
159
+ crypto_init.c
160
+ crypto_legacy.c
161
+ crypto_memory.c
162
+ aes/aes.c
163
+ aes/aes_core.c
164
+ asn1/a_bitstr.c
165
+ asn1/a_enum.c
166
+ asn1/a_int.c
167
+ asn1/a_mbstr.c
168
+ asn1/a_object.c
169
+ asn1/a_octet.c
170
+ asn1/a_pkey.c
171
+ asn1/a_print.c
172
+ asn1/a_pubkey.c
173
+ asn1/a_strex.c
174
+ asn1/a_string.c
175
+ asn1/a_strnid.c
176
+ asn1/a_time.c
177
+ asn1/a_time_posix.c
178
+ asn1/a_time_tm.c
179
+ asn1/a_type.c
180
+ asn1/a_utf8.c
181
+ asn1/asn1_err.c
182
+ asn1/asn1_gen.c
183
+ asn1/asn1_item.c
184
+ asn1/asn1_lib.c
185
+ asn1/asn1_old.c
186
+ asn1/asn1_old_lib.c
187
+ asn1/asn1_par.c
188
+ asn1/asn1_types.c
189
+ asn1/asn_mime.c
190
+ asn1/asn_moid.c
191
+ asn1/bio_asn1.c
192
+ asn1/bio_ndef.c
193
+ asn1/p5_pbe.c
194
+ asn1/p5_pbev2.c
195
+ asn1/p8_pkey.c
196
+ asn1/t_crl.c
197
+ asn1/t_req.c
198
+ asn1/t_spki.c
199
+ asn1/t_x509.c
200
+ asn1/t_x509a.c
201
+ asn1/tasn_dec.c
202
+ asn1/tasn_enc.c
203
+ asn1/tasn_fre.c
204
+ asn1/tasn_new.c
205
+ asn1/tasn_prn.c
206
+ asn1/tasn_typ.c
207
+ asn1/tasn_utl.c
208
+ asn1/x_algor.c
209
+ asn1/x_attrib.c
210
+ asn1/x_bignum.c
211
+ asn1/x_crl.c
212
+ asn1/x_exten.c
213
+ asn1/x_info.c
214
+ asn1/x_long.c
215
+ asn1/x_name.c
216
+ asn1/x_pkey.c
217
+ asn1/x_pubkey.c
218
+ asn1/x_req.c
219
+ asn1/x_sig.c
220
+ asn1/x_spki.c
221
+ asn1/x_val.c
222
+ asn1/x_x509.c
223
+ asn1/x_x509a.c
224
+ bf/blowfish.c
225
+ bio/b_dump.c
226
+ bio/b_print.c
227
+ bio/b_sock.c
228
+ bio/bf_buff.c
229
+ bio/bf_nbio.c
230
+ bio/bf_null.c
231
+ bio/bio_cb.c
232
+ bio/bio_err.c
233
+ bio/bio_lib.c
234
+ bio/bio_meth.c
235
+ bio/bss_acpt.c
236
+ bio/bss_bio.c
237
+ bio/bss_conn.c
238
+ bio/bss_dgram.c
239
+ bio/bss_fd.c
240
+ bio/bss_file.c
241
+ bio/bss_mem.c
242
+ bio/bss_null.c
243
+ bio/bss_sock.c
244
+ bn/bn_add.c
245
+ bn/bn_add_sub.c
246
+ bn/bn_bpsw.c
247
+ bn/bn_const.c
248
+ bn/bn_convert.c
249
+ bn/bn_ctx.c
250
+ bn/bn_div.c
251
+ bn/bn_err.c
252
+ bn/bn_exp.c
253
+ bn/bn_gcd.c
254
+ bn/bn_isqrt.c
255
+ bn/bn_kron.c
256
+ bn/bn_lib.c
257
+ bn/bn_mod.c
258
+ bn/bn_mod_sqrt.c
259
+ bn/bn_mod_words.c
260
+ bn/bn_mont.c
261
+ bn/bn_mul.c
262
+ bn/bn_prime.c
263
+ bn/bn_primitives.c
264
+ bn/bn_print.c
265
+ bn/bn_rand.c
266
+ bn/bn_recp.c
267
+ bn/bn_shift.c
268
+ bn/bn_small_primes.c
269
+ bn/bn_sqr.c
270
+ bn/bn_word.c
271
+ buffer/buf_err.c
272
+ buffer/buffer.c
273
+ bytestring/bs_ber.c
274
+ bytestring/bs_cbb.c
275
+ bytestring/bs_cbs.c
276
+ camellia/camellia.c
277
+ cast/cast.c
278
+ chacha/chacha.c
279
+ cmac/cm_ameth.c
280
+ cmac/cm_pmeth.c
281
+ cmac/cmac.c
282
+ cms/cms_asn1.c
283
+ cms/cms_att.c
284
+ cms/cms_dd.c
285
+ cms/cms_enc.c
286
+ cms/cms_env.c
287
+ cms/cms_err.c
288
+ cms/cms_ess.c
289
+ cms/cms_io.c
290
+ cms/cms_kari.c
291
+ cms/cms_lib.c
292
+ cms/cms_pwri.c
293
+ cms/cms_sd.c
294
+ cms/cms_smime.c
295
+ conf/conf_api.c
296
+ conf/conf_def.c
297
+ conf/conf_err.c
298
+ conf/conf_lib.c
299
+ conf/conf_mod.c
300
+ conf/conf_sap.c
301
+ ct/ct_b64.c
302
+ ct/ct_err.c
303
+ ct/ct_log.c
304
+ ct/ct_oct.c
305
+ ct/ct_policy.c
306
+ ct/ct_prn.c
307
+ ct/ct_sct.c
308
+ ct/ct_sct_ctx.c
309
+ ct/ct_vfy.c
310
+ ct/ct_x509v3.c
311
+ curve25519/curve25519-generic.c
312
+ curve25519/curve25519.c
313
+ des/des.c
314
+ des/des_cksum.c
315
+ des/des_enc.c
316
+ des/des_fcrypt.c
317
+ des/des_key.c
318
+ dh/dh_ameth.c
319
+ dh/dh_asn1.c
320
+ dh/dh_check.c
321
+ dh/dh_err.c
322
+ dh/dh_gen.c
323
+ dh/dh_key.c
324
+ dh/dh_lib.c
325
+ dh/dh_pmeth.c
326
+ dsa/dsa_ameth.c
327
+ dsa/dsa_asn1.c
328
+ dsa/dsa_err.c
329
+ dsa/dsa_gen.c
330
+ dsa/dsa_key.c
331
+ dsa/dsa_lib.c
332
+ dsa/dsa_meth.c
333
+ dsa/dsa_ossl.c
334
+ dsa/dsa_pmeth.c
335
+ dsa/dsa_prn.c
336
+ ec/ec_ameth.c
337
+ ec/ec_asn1.c
338
+ ec/ec_convert.c
339
+ ec/ec_curve.c
340
+ ec/ec_err.c
341
+ ec/ec_field.c
342
+ ec/ec_key.c
343
+ ec/ec_lib.c
344
+ ec/ec_mult.c
345
+ ec/ec_pmeth.c
346
+ ec/eck_prn.c
347
+ ec/ecp_hp_methods.c
348
+ ec/ecp_methods.c
349
+ ec/ecx_methods.c
350
+ ecdh/ecdh.c
351
+ ecdsa/ecdsa.c
352
+ engine/engine_stubs.c
353
+ err/err.c
354
+ err/err_all.c
355
+ err/err_prn.c
356
+ evp/bio_b64.c
357
+ evp/bio_enc.c
358
+ evp/bio_md.c
359
+ evp/e_aes.c
360
+ evp/e_bf.c
361
+ evp/e_camellia.c
362
+ evp/e_cast.c
363
+ evp/e_chacha.c
364
+ evp/e_chacha20poly1305.c
365
+ evp/e_des.c
366
+ evp/e_des3.c
367
+ evp/e_idea.c
368
+ evp/e_null.c
369
+ evp/e_rc2.c
370
+ evp/e_rc4.c
371
+ evp/e_sm4.c
372
+ evp/e_xcbc_d.c
373
+ evp/evp_aead.c
374
+ evp/evp_cipher.c
375
+ evp/evp_digest.c
376
+ evp/evp_encode.c
377
+ evp/evp_err.c
378
+ evp/evp_key.c
379
+ evp/evp_names.c
380
+ evp/evp_pbe.c
381
+ evp/evp_pkey.c
382
+ evp/m_md4.c
383
+ evp/m_md5.c
384
+ evp/m_md5_sha1.c
385
+ evp/m_null.c
386
+ evp/m_ripemd.c
387
+ evp/m_sha1.c
388
+ evp/m_sha3.c
389
+ evp/m_sigver.c
390
+ evp/m_sm3.c
391
+ evp/p_legacy.c
392
+ evp/p_lib.c
393
+ evp/p_sign.c
394
+ evp/p_verify.c
395
+ evp/pmeth_fn.c
396
+ evp/pmeth_gn.c
397
+ evp/pmeth_lib.c
398
+ hkdf/hkdf.c
399
+ hmac/hm_ameth.c
400
+ hmac/hm_pmeth.c
401
+ hmac/hmac.c
402
+ idea/idea.c
403
+ kdf/hkdf_evp.c
404
+ kdf/kdf_err.c
405
+ kdf/tls1_prf.c
406
+ lhash/lhash.c
407
+ md4/md4.c
408
+ md5/md5.c
409
+ mlkem/mlkem768.c
410
+ mlkem/mlkem1024.c
411
+ modes/cbc128.c
412
+ modes/ccm128.c
413
+ modes/cfb128.c
414
+ modes/ctr128.c
415
+ modes/gcm128.c
416
+ modes/ofb128.c
417
+ modes/xts128.c
418
+ objects/obj_dat.c
419
+ objects/obj_err.c
420
+ objects/obj_lib.c
421
+ objects/obj_xref.c
422
+ ocsp/ocsp_asn.c
423
+ ocsp/ocsp_cl.c
424
+ ocsp/ocsp_err.c
425
+ ocsp/ocsp_ext.c
426
+ ocsp/ocsp_ht.c
427
+ ocsp/ocsp_lib.c
428
+ ocsp/ocsp_prn.c
429
+ ocsp/ocsp_srv.c
430
+ ocsp/ocsp_vfy.c
431
+ pem/pem_all.c
432
+ pem/pem_err.c
433
+ pem/pem_info.c
434
+ pem/pem_lib.c
435
+ pem/pem_oth.c
436
+ pem/pem_pk8.c
437
+ pem/pem_pkey.c
438
+ pem/pem_sign.c
439
+ pem/pem_x509.c
440
+ pem/pem_xaux.c
441
+ pem/pvkfmt.c
442
+ pkcs12/p12_add.c
443
+ pkcs12/p12_asn.c
444
+ pkcs12/p12_attr.c
445
+ pkcs12/p12_crt.c
446
+ pkcs12/p12_decr.c
447
+ pkcs12/p12_init.c
448
+ pkcs12/p12_key.c
449
+ pkcs12/p12_kiss.c
450
+ pkcs12/p12_mutl.c
451
+ pkcs12/p12_npas.c
452
+ pkcs12/p12_p8d.c
453
+ pkcs12/p12_p8e.c
454
+ pkcs12/p12_sbag.c
455
+ pkcs12/p12_utl.c
456
+ pkcs12/pk12err.c
457
+ pkcs7/pk7_asn1.c
458
+ pkcs7/pk7_attr.c
459
+ pkcs7/pk7_doit.c
460
+ pkcs7/pk7_lib.c
461
+ pkcs7/pk7_mime.c
462
+ pkcs7/pk7_smime.c
463
+ pkcs7/pkcs7err.c
464
+ poly1305/poly1305.c
465
+ rand/rand_err.c
466
+ rand/rand_lib.c
467
+ rand/randfile.c
468
+ rc2/rc2.c
469
+ rc4/rc4.c
470
+ ripemd/ripemd.c
471
+ rsa/rsa_ameth.c
472
+ rsa/rsa_asn1.c
473
+ rsa/rsa_blinding.c
474
+ rsa/rsa_chk.c
475
+ rsa/rsa_eay.c
476
+ rsa/rsa_err.c
477
+ rsa/rsa_gen.c
478
+ rsa/rsa_lib.c
479
+ rsa/rsa_meth.c
480
+ rsa/rsa_none.c
481
+ rsa/rsa_oaep.c
482
+ rsa/rsa_pk1.c
483
+ rsa/rsa_pmeth.c
484
+ rsa/rsa_prn.c
485
+ rsa/rsa_pss.c
486
+ rsa/rsa_saos.c
487
+ rsa/rsa_sign.c
488
+ rsa/rsa_x931.c
489
+ sha/sha1.c
490
+ sha/sha256.c
491
+ sha/sha3.c
492
+ sha/sha512.c
493
+ sm3/sm3.c
494
+ sm4/sm4.c
495
+ stack/stack.c
496
+ ts/ts_asn1.c
497
+ ts/ts_conf.c
498
+ ts/ts_err.c
499
+ ts/ts_lib.c
500
+ ts/ts_req_print.c
501
+ ts/ts_req_utils.c
502
+ ts/ts_rsp_print.c
503
+ ts/ts_rsp_sign.c
504
+ ts/ts_rsp_utils.c
505
+ ts/ts_rsp_verify.c
506
+ ts/ts_verify_ctx.c
507
+ txt_db/txt_db.c
508
+ ui/ui_err.c
509
+ ui/ui_lib.c
510
+ ui/ui_null.c
511
+ x509/by_dir.c
512
+ x509/by_file.c
513
+ x509/by_mem.c
514
+ x509/x509_addr.c
515
+ x509/x509_akey.c
516
+ x509/x509_akeya.c
517
+ x509/x509_alt.c
518
+ x509/x509_asid.c
519
+ x509/x509_att.c
520
+ x509/x509_bcons.c
521
+ x509/x509_bitst.c
522
+ x509/x509_cmp.c
523
+ x509/x509_conf.c
524
+ x509/x509_constraints.c
525
+ x509/x509_cpols.c
526
+ x509/x509_crld.c
527
+ x509/x509_d2.c
528
+ x509/x509_def.c
529
+ x509/x509_err.c
530
+ x509/x509_ext.c
531
+ x509/x509_extku.c
532
+ x509/x509_genn.c
533
+ x509/x509_ia5.c
534
+ x509/x509_info.c
535
+ x509/x509_int.c
536
+ x509/x509_issuer_cache.c
537
+ x509/x509_lib.c
538
+ x509/x509_lu.c
539
+ x509/x509_ncons.c
540
+ x509/x509_obj.c
541
+ x509/x509_ocsp.c
542
+ x509/x509_pcons.c
543
+ x509/x509_pku.c
544
+ x509/x509_pmaps.c
545
+ x509/x509_policy.c
546
+ x509/x509_prn.c
547
+ x509/x509_purp.c
548
+ x509/x509_r2x.c
549
+ x509/x509_req.c
550
+ x509/x509_set.c
551
+ x509/x509_siginfo.c
552
+ x509/x509_skey.c
553
+ x509/x509_trs.c
554
+ x509/x509_txt.c
555
+ x509/x509_utl.c
556
+ x509/x509_v3.c
557
+ x509/x509_verify.c
558
+ x509/x509_vfy.c
559
+ x509/x509_vpm.c
560
+ x509/x509cset.c
561
+ x509/x509name.c
562
+ x509/x509rset.c
563
+ x509/x509spki.c
564
+ x509/x509type.c
565
+ x509/x_all.c
566
+ )
567
+
568
+ set(COMPAT_SRC empty.c)
569
+
570
+ set(CRYPTO_UNEXPORT ${CRYPTO_UNEXPORT} BIO_s_log)
571
+
572
+ if(UNIX)
573
+ set(CRYPTO_SRC ${CRYPTO_SRC} crypto_lock.c)
574
+ set(CRYPTO_SRC ${CRYPTO_SRC} bio/b_posix.c)
575
+ set(CRYPTO_SRC ${CRYPTO_SRC} ui/ui_openssl.c)
576
+ endif()
577
+
578
+ if(WIN32)
579
+ set(CRYPTO_SRC ${CRYPTO_SRC} compat/crypto_lock_win.c)
580
+ set(CRYPTO_SRC ${CRYPTO_SRC} bio/b_win.c)
581
+ set(CRYPTO_SRC ${CRYPTO_SRC} ui/ui_openssl_win.c)
582
+ endif()
583
+
584
+ if(WIN32)
585
+ set(COMPAT_SRC ${COMPAT_SRC} compat/posix_win.c)
586
+ endif()
587
+
588
+ if(NOT HAVE_ASPRINTF)
589
+ set(COMPAT_SRC ${COMPAT_SRC} compat/bsd-asprintf.c)
590
+ endif()
591
+
592
+ if(NOT HAVE_FREEZERO)
593
+ set(COMPAT_SRC ${COMPAT_SRC} compat/freezero.c)
594
+ endif()
595
+
596
+ if(NOT HAVE_GETDELIM)
597
+ set(COMPAT_SRC ${COMPAT_SRC} compat/getdelim.c)
598
+ endif()
599
+
600
+ if(NOT HAVE_GETLINE)
601
+ set(COMPAT_SRC ${COMPAT_SRC} compat/getline.c)
602
+ endif()
603
+
604
+ if(NOT HAVE_GETOPT)
605
+ set(COMPAT_SRC ${COMPAT_SRC} compat/getopt_long.c)
606
+ endif()
607
+
608
+ if(NOT HAVE_GETPAGESIZE)
609
+ set(COMPAT_SRC ${COMPAT_SRC} compat/getpagesize.c)
610
+ endif()
611
+
612
+ if(NOT HAVE_GETPROGNAME)
613
+ if(WIN32)
614
+ set(COMPAT_SRC ${COMPAT_SRC} compat/getprogname_windows.c)
615
+ elseif(CMAKE_SYSTEM_NAME MATCHES "Linux")
616
+ set(COMPAT_SRC ${COMPAT_SRC} compat/getprogname_linux.c)
617
+ else()
618
+ set(COMPAT_SRC ${COMPAT_SRC} compat/getprogname_unimpl.c)
619
+ endif()
620
+ endif()
621
+
622
+ if(NOT HAVE_REALLOCARRAY)
623
+ set(COMPAT_SRC ${COMPAT_SRC} compat/reallocarray.c)
624
+ endif()
625
+
626
+ if(NOT HAVE_RECALLOCARRAY)
627
+ set(COMPAT_SRC ${COMPAT_SRC} compat/recallocarray.c)
628
+ endif()
629
+
630
+ if(NOT HAVE_STRCASECMP)
631
+ set(COMPAT_SRC ${COMPAT_SRC} compat/strcasecmp.c)
632
+ endif()
633
+
634
+ if(NOT HAVE_STRLCAT)
635
+ set(COMPAT_SRC ${COMPAT_SRC} compat/strlcat.c)
636
+ endif()
637
+
638
+ if(NOT HAVE_STRLCPY)
639
+ set(COMPAT_SRC ${COMPAT_SRC} compat/strlcpy.c)
640
+ endif()
641
+
642
+ if(NOT HAVE_STRNDUP)
643
+ set(COMPAT_SRC ${COMPAT_SRC} compat/strndup.c)
644
+ if(NOT HAVE_STRNLEN)
645
+ set(COMPAT_SRC ${COMPAT_SRC} compat/strnlen.c)
646
+ endif()
647
+ endif()
648
+
649
+ if(NOT HAVE_STRSEP)
650
+ set(COMPAT_SRC ${COMPAT_SRC} compat/strsep.c)
651
+ endif()
652
+
653
+ if(NOT HAVE_STRTONUM)
654
+ set(COMPAT_SRC ${COMPAT_SRC} compat/strtonum.c)
655
+ endif()
656
+
657
+ if(NOT HAVE_SYSLOG_R)
658
+ set(COMPAT_SRC ${COMPAT_SRC} compat/syslog_r.c)
659
+ endif()
660
+
661
+ if(NOT HAVE_EXPLICIT_BZERO)
662
+ if(WIN32)
663
+ set(COMPAT_SRC ${COMPAT_SRC} compat/explicit_bzero_win.c)
664
+ else()
665
+ set(COMPAT_SRC ${COMPAT_SRC} compat/explicit_bzero.c)
666
+ set_source_files_properties(compat/explicit_bzero.c PROPERTIES COMPILE_FLAGS -O0)
667
+ endif()
668
+ endif()
669
+
670
+ if(NOT HAVE_ARC4RANDOM_BUF)
671
+ set(COMPAT_SRC ${COMPAT_SRC} compat/arc4random.c)
672
+ set(COMPAT_SRC ${COMPAT_SRC} compat/arc4random_uniform.c)
673
+
674
+ if(NOT HAVE_GETENTROPY)
675
+ if(WIN32)
676
+ set(COMPAT_SRC ${COMPAT_SRC} compat/getentropy_win.c)
677
+ elseif(CMAKE_SYSTEM_NAME MATCHES "AIX")
678
+ set(COMPAT_SRC ${COMPAT_SRC} compat/getentropy_aix.c)
679
+ elseif(CMAKE_SYSTEM_NAME MATCHES "FreeBSD")
680
+ set(COMPAT_SRC ${COMPAT_SRC} compat/getentropy_freebsd.c)
681
+ elseif(CMAKE_SYSTEM_NAME MATCHES "HP-UX")
682
+ set(COMPAT_SRC ${COMPAT_SRC} compat/getentropy_hpux.c)
683
+ elseif(CMAKE_SYSTEM_NAME MATCHES "Linux")
684
+ set(COMPAT_SRC ${COMPAT_SRC} compat/getentropy_linux.c)
685
+ elseif(CMAKE_SYSTEM_NAME MATCHES "NetBSD")
686
+ set(COMPAT_SRC ${COMPAT_SRC} compat/getentropy_netbsd.c)
687
+ elseif(CMAKE_SYSTEM_NAME MATCHES "Darwin")
688
+ set(COMPAT_SRC ${COMPAT_SRC} compat/getentropy_osx.c)
689
+ elseif(CMAKE_SYSTEM_NAME MATCHES "SunOS")
690
+ set(COMPAT_SRC ${COMPAT_SRC} compat/getentropy_solaris.c)
691
+ endif()
692
+ endif()
693
+ endif()
694
+
695
+ if(NOT HAVE_TIMINGSAFE_BCMP)
696
+ set(COMPAT_SRC ${COMPAT_SRC} compat/timingsafe_bcmp.c)
697
+ endif()
698
+
699
+ if(NOT HAVE_TIMINGSAFE_MEMCMP)
700
+ set(COMPAT_SRC ${COMPAT_SRC} compat/timingsafe_memcmp.c)
701
+ endif()
702
+
703
+ if(NOT ENABLE_ASM)
704
+ add_definitions(-DOPENSSL_NO_ASM)
705
+ else()
706
+ if(MSVC)
707
+ if((NOT "${CMAKE_GENERATOR}" MATCHES "Win64") AND
708
+ (NOT "${CMAKE_GENERATOR_PLATFORM}" STREQUAL "x64"))
709
+ add_definitions(-DOPENSSL_NO_ASM)
710
+ endif()
711
+ elseif(WIN32 AND NOT MINGW)
712
+ add_definitions(-DOPENSSL_NO_ASM)
713
+ endif()
714
+ endif()
715
+
716
+ add_definitions(-DOPENSSLDIR=\"${OPENSSLDIR}\")
717
+
718
+ file(READ ${CMAKE_CURRENT_SOURCE_DIR}/crypto.sym SYMS)
719
+ foreach(SYM IN LISTS CRYPTO_UNEXPORT)
720
+ string(REPLACE "${SYM}\n" "" SYMS ${SYMS})
721
+ endforeach()
722
+ file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/crypto_p.sym ${SYMS})
723
+
724
+ add_library(compat_obj OBJECT ${COMPAT_SRC})
725
+ target_include_directories(compat_obj
726
+ PRIVATE
727
+ ../include/compat
728
+ PUBLIC
729
+ ../include
730
+ ${CMAKE_BINARY_DIR}/include)
731
+
732
+ add_library(crypto_obj OBJECT ${CRYPTO_SRC})
733
+ target_include_directories(crypto_obj
734
+ PRIVATE
735
+ .
736
+ asn1
737
+ bio
738
+ bn
739
+ bytestring
740
+ conf
741
+ dh
742
+ dsa
743
+ curve25519
744
+ ec
745
+ ecdh
746
+ ecdsa
747
+ err
748
+ evp
749
+ hidden
750
+ hmac
751
+ lhash
752
+ mlkem
753
+ modes
754
+ ocsp
755
+ pkcs12
756
+ rsa
757
+ sha
758
+ stack
759
+ x509
760
+ ../include/compat
761
+ PUBLIC
762
+ ../include
763
+ ${CMAKE_BINARY_DIR}/include)
764
+
765
+ if(HOST_AARCH64)
766
+ target_include_directories(crypto_obj PRIVATE arch/aarch64/)
767
+ target_include_directories(crypto_obj PRIVATE bn/arch/aarch64/)
768
+ elseif(HOST_ARM)
769
+ target_include_directories(crypto_obj PRIVATE arch/arm/)
770
+ target_include_directories(crypto_obj PRIVATE bn/arch/arm/)
771
+ elseif(HOST_I386)
772
+ target_include_directories(crypto_obj PRIVATE arch/i386/)
773
+ target_include_directories(crypto_obj PRIVATE bn/arch/i386/)
774
+ elseif(HOST_LOONGARCH64)
775
+ target_include_directories(crypto_obj PRIVATE arch/loongarch64)
776
+ target_include_directories(crypto_obj PRIVATE bn/arch/loongarch64)
777
+ elseif(HOST_MIPS64)
778
+ target_include_directories(crypto_obj PRIVATE arch/mips64)
779
+ target_include_directories(crypto_obj PRIVATE bn/arch/mips64)
780
+ elseif(HOST_MIPS)
781
+ target_include_directories(crypto_obj PRIVATE arch/mips)
782
+ target_include_directories(crypto_obj PRIVATE bn/arch/mips)
783
+ elseif(HOST_POWERPC)
784
+ target_include_directories(crypto_obj PRIVATE arch/powerpc)
785
+ target_include_directories(crypto_obj PRIVATE bn/arch/powerpc)
786
+ elseif(HOST_POWERPC64)
787
+ target_include_directories(crypto_obj PRIVATE arch/powerpc64)
788
+ target_include_directories(crypto_obj PRIVATE bn/arch/powerpc64)
789
+ elseif(HOST_RISCV64)
790
+ target_include_directories(crypto_obj PRIVATE arch/riscv64)
791
+ target_include_directories(crypto_obj PRIVATE bn/arch/riscv64)
792
+ elseif(HOST_SPARC64)
793
+ target_include_directories(crypto_obj PRIVATE arch/sparc64)
794
+ target_include_directories(crypto_obj PRIVATE bn/arch/sparc64)
795
+ elseif(HOST_X86_64)
796
+ target_include_directories(crypto_obj PRIVATE arch/amd64)
797
+ target_include_directories(crypto_obj PRIVATE bn/arch/amd64)
798
+ endif()
799
+
800
+ if(MSVC)
801
+ # "C4701" - Potentially uninitialized local variable 'name' used
802
+ set_source_files_properties(bn/bn_convert.c pem/pem_lib.c PROPERTIES
803
+ COMPILE_OPTIONS /wd4701
804
+ )
805
+ # "C4702" - unreachable code
806
+ set_source_files_properties(pkcs7/pk7_doit.c PROPERTIES
807
+ COMPILE_OPTIONS /wd4702
808
+ )
809
+ endif()
810
+
811
+ add_library(crypto $<TARGET_OBJECTS:crypto_obj> $<TARGET_OBJECTS:compat_obj> empty.c)
812
+
813
+ export_symbol(crypto ${CMAKE_CURRENT_BINARY_DIR}/crypto_p.sym)
814
+ target_link_libraries(crypto ${PLATFORM_LIBS})
815
+ set_target_properties(crypto PROPERTIES
816
+ OUTPUT_NAME crypto
817
+ ARCHIVE_OUTPUT_NAME crypto
818
+ EXPORT_NAME Crypto
819
+ VERSION ${CRYPTO_VERSION}
820
+ SOVERSION ${CRYPTO_MAJOR_VERSION}
821
+ )
822
+ if(NOT CMAKE_VERSION VERSION_LESS 3.27.0)
823
+ set_target_properties(crypto PROPERTIES DLL_NAME_WITH_SOVERSION TRUE)
824
+ endif()
825
+
826
+ target_include_directories(
827
+ crypto
828
+ PUBLIC
829
+ $<BUILD_INTERFACE:${CMAKE_BINARY_DIR}/include>
830
+ $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>
831
+ )
832
+
833
+ install(
834
+ TARGETS crypto
835
+ EXPORT Crypto-target
836
+ )
837
+
838
+ export(
839
+ EXPORT Crypto-target
840
+ FILE "${LibreSSL_BINARY_DIR}/LibreSSL-Crypto.cmake"
841
+ NAMESPACE LibreSSL::
842
+ )
843
+
844
+ if(ENABLE_LIBRESSL_INSTALL)
845
+ install(
846
+ TARGETS crypto
847
+ ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
848
+ LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
849
+ RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
850
+ )
851
+ install(
852
+ EXPORT Crypto-target
853
+ FILE "LibreSSL-Crypto.cmake"
854
+ NAMESPACE LibreSSL::
855
+ DESTINATION "${LIBRESSL_INSTALL_CMAKEDIR}"
856
+ )
857
+ endif(ENABLE_LIBRESSL_INSTALL)
858
+
859
+ # build static library for regression test
860
+ if(BUILD_SHARED_LIBS)
861
+ add_library(crypto-static STATIC $<TARGET_OBJECTS:crypto_obj>)
862
+ target_link_libraries(crypto-static ${PLATFORM_LIBS})
863
+ endif()