uringmachine 0.24.0 → 0.26.0

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 (279) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +1 -0
  3. data/.gitmodules +0 -3
  4. data/CHANGELOG.md +13 -0
  5. data/Gemfile +11 -0
  6. data/README.md +266 -112
  7. data/Rakefile +8 -0
  8. data/TODO.md +14 -21
  9. data/benchmark/common.rb +2 -0
  10. data/benchmark/openssl.rb +77 -0
  11. data/benchmark/openssl_socketpair.rb +112 -0
  12. data/benchmark/sqlite.rb +1 -1
  13. data/docs/design/buffer_pool.md +1 -1
  14. data/docs/wroclove.rb.md +52 -0
  15. data/ext/um/extconf.rb +15 -0
  16. data/ext/um/um.c +392 -358
  17. data/ext/um/um.h +48 -23
  18. data/ext/um/um_async_op.c +9 -8
  19. data/ext/um/um_async_op_class.c +34 -3
  20. data/ext/um/um_class.c +705 -19
  21. data/ext/um/um_const.c +31 -0
  22. data/ext/um/um_mutex_class.c +12 -0
  23. data/ext/um/um_op.c +15 -1
  24. data/ext/um/um_queue_class.c +16 -0
  25. data/ext/um/um_ssl.c +109 -0
  26. data/ext/um/um_stream.c +9 -8
  27. data/ext/um/um_sync.c +18 -11
  28. data/ext/um/um_utils.c +17 -8
  29. data/grant-2025/interim-report.md +1 -1
  30. data/grant-2025/journal.md +4 -4
  31. data/grant-2025/tasks.md +6 -4
  32. data/lib/uringmachine/dns_resolver.rb +38 -0
  33. data/lib/uringmachine/fiber_scheduler.rb +7 -5
  34. data/lib/uringmachine/version.rb +1 -1
  35. data/lib/uringmachine.rb +106 -6
  36. data/test/helper.rb +15 -0
  37. data/test/test_async_op.rb +3 -2
  38. data/test/test_fiber_scheduler.rb +41 -1
  39. data/test/test_ssl.rb +85 -0
  40. data/test/test_stream.rb +11 -0
  41. data/test/test_um.rb +445 -11
  42. data/uringmachine.gemspec +1 -7
  43. data/vendor/liburing/examples/send-zerocopy.c +43 -31
  44. data/vendor/liburing/examples/zcrx.c +260 -69
  45. data/vendor/liburing/liburing.spec +1 -1
  46. data/vendor/liburing/src/include/liburing/io_uring.h +12 -0
  47. data/vendor/liburing/src/include/liburing.h +3 -2
  48. data/vendor/liburing/src/liburing-ffi.map +4 -0
  49. data/vendor/liburing/src/liburing.map +4 -0
  50. data/vendor/liburing/src/queue.c +12 -0
  51. data/vendor/liburing/src/register.c +1 -0
  52. data/vendor/liburing/src/setup.c +15 -7
  53. data/vendor/liburing/test/Makefile +8 -4
  54. data/vendor/liburing/test/conn-unreach.c +1 -1
  55. data/vendor/liburing/test/epwait.c +32 -6
  56. data/vendor/liburing/test/io-wq-exit.c +131 -0
  57. data/vendor/liburing/test/iowait.c +1 -1
  58. data/vendor/liburing/test/min-timeout.c +3 -1
  59. data/vendor/liburing/test/open-close.c +39 -0
  60. data/vendor/liburing/test/poll-update-trigger.c +85 -0
  61. data/vendor/liburing/test/recvsend_bundle.c +14 -11
  62. data/vendor/liburing/test/sendzc-bug.c +146 -0
  63. data/vendor/liburing/test/sqe-mixed-nop.c +151 -7
  64. data/vendor/liburing/test/test.h +2 -0
  65. data/vendor/liburing/test/timestamp-bug.c +135 -0
  66. data/vendor/liburing/test/timestamp.c +5 -0
  67. data/vendor/liburing/test/vec-regbuf.c +136 -1
  68. metadata +38 -283
  69. data/vendor/libressl/.github/scripts/changelog.sh +0 -74
  70. data/vendor/libressl/.github/workflows/android.yml +0 -35
  71. data/vendor/libressl/.github/workflows/cifuzz.yml +0 -33
  72. data/vendor/libressl/.github/workflows/cmake-config.yml +0 -98
  73. data/vendor/libressl/.github/workflows/coverity.yml +0 -69
  74. data/vendor/libressl/.github/workflows/emscripten.yml +0 -71
  75. data/vendor/libressl/.github/workflows/fedora-rawhide.yml +0 -39
  76. data/vendor/libressl/.github/workflows/freebsd.yml +0 -71
  77. data/vendor/libressl/.github/workflows/linux.yml +0 -71
  78. data/vendor/libressl/.github/workflows/macos.yml +0 -37
  79. data/vendor/libressl/.github/workflows/release.yml +0 -81
  80. data/vendor/libressl/.github/workflows/rust-openssl.yml +0 -47
  81. data/vendor/libressl/.github/workflows/solaris.yml +0 -37
  82. data/vendor/libressl/.github/workflows/windows.yml +0 -70
  83. data/vendor/libressl/.gitignore +0 -333
  84. data/vendor/libressl/CMakeLists.txt +0 -581
  85. data/vendor/libressl/COPYING +0 -133
  86. data/vendor/libressl/ChangeLog +0 -3280
  87. data/vendor/libressl/FindLibreSSL.cmake +0 -232
  88. data/vendor/libressl/LibreSSLConfig.cmake.in +0 -36
  89. data/vendor/libressl/Makefile.am +0 -60
  90. data/vendor/libressl/Makefile.am.common +0 -20
  91. data/vendor/libressl/OPENBSD_BRANCH +0 -1
  92. data/vendor/libressl/README.md +0 -238
  93. data/vendor/libressl/README.mingw.md +0 -43
  94. data/vendor/libressl/apps/CMakeLists.txt +0 -18
  95. data/vendor/libressl/apps/Makefile.am +0 -5
  96. data/vendor/libressl/apps/nc/CMakeLists.txt +0 -67
  97. data/vendor/libressl/apps/nc/Makefile.am +0 -64
  98. data/vendor/libressl/apps/nc/compat/accept4.c +0 -17
  99. data/vendor/libressl/apps/nc/compat/readpassphrase.c +0 -205
  100. data/vendor/libressl/apps/nc/compat/socket.c +0 -29
  101. data/vendor/libressl/apps/nc/compat/sys/socket.h +0 -30
  102. data/vendor/libressl/apps/ocspcheck/CMakeLists.txt +0 -44
  103. data/vendor/libressl/apps/ocspcheck/Makefile.am +0 -45
  104. data/vendor/libressl/apps/ocspcheck/compat/.gitignore +0 -0
  105. data/vendor/libressl/apps/openssl/CMakeLists.txt +0 -97
  106. data/vendor/libressl/apps/openssl/Makefile.am +0 -108
  107. data/vendor/libressl/apps/openssl/apps_win.c +0 -138
  108. data/vendor/libressl/apps/openssl/certhash_win.c +0 -13
  109. data/vendor/libressl/apps/openssl/compat/clock_gettime_osx.c +0 -26
  110. data/vendor/libressl/apps/openssl/compat/poll_win.c +0 -329
  111. data/vendor/libressl/appveyor.yml +0 -53
  112. data/vendor/libressl/autogen.sh +0 -15
  113. data/vendor/libressl/check-release.sh +0 -86
  114. data/vendor/libressl/cmake_export_symbol.cmake +0 -71
  115. data/vendor/libressl/cmake_uninstall.cmake.in +0 -36
  116. data/vendor/libressl/config +0 -17
  117. data/vendor/libressl/configure.ac +0 -165
  118. data/vendor/libressl/crypto/CMakeLists.txt +0 -863
  119. data/vendor/libressl/crypto/Makefile.am +0 -962
  120. data/vendor/libressl/crypto/Makefile.am.arc4random +0 -46
  121. data/vendor/libressl/crypto/Makefile.am.elf-mips +0 -14
  122. data/vendor/libressl/crypto/Makefile.am.elf-mips64 +0 -14
  123. data/vendor/libressl/crypto/Makefile.am.elf-x86_64 +0 -35
  124. data/vendor/libressl/crypto/Makefile.am.macosx-x86_64 +0 -35
  125. data/vendor/libressl/crypto/Makefile.am.masm-x86_64 +0 -22
  126. data/vendor/libressl/crypto/Makefile.am.mingw64-x86_64 +0 -23
  127. data/vendor/libressl/crypto/arch/aarch64/crypto_cpu_caps_darwin.c +0 -60
  128. data/vendor/libressl/crypto/arch/aarch64/crypto_cpu_caps_linux.c +0 -62
  129. data/vendor/libressl/crypto/arch/aarch64/crypto_cpu_caps_none.c +0 -26
  130. data/vendor/libressl/crypto/arch/aarch64/crypto_cpu_caps_windows.c +0 -36
  131. data/vendor/libressl/crypto/arch/loongarch64/crypto_arch.h +0 -21
  132. data/vendor/libressl/crypto/arch/mips/crypto_arch.h +0 -21
  133. data/vendor/libressl/crypto/bn/arch/loongarch64/bn_arch.h +0 -23
  134. data/vendor/libressl/crypto/bn/arch/mips/bn_arch.h +0 -24
  135. data/vendor/libressl/crypto/compat/.gitignore +0 -31
  136. data/vendor/libressl/crypto/compat/arc4random.h +0 -41
  137. data/vendor/libressl/crypto/compat/b_win.c +0 -55
  138. data/vendor/libressl/crypto/compat/bsd-asprintf.c +0 -96
  139. data/vendor/libressl/crypto/compat/crypto_lock_win.c +0 -56
  140. data/vendor/libressl/crypto/compat/explicit_bzero_win.c +0 -13
  141. data/vendor/libressl/crypto/compat/freezero.c +0 -32
  142. data/vendor/libressl/crypto/compat/getdelim.c +0 -78
  143. data/vendor/libressl/crypto/compat/getline.c +0 -40
  144. data/vendor/libressl/crypto/compat/getopt_long.c +0 -528
  145. data/vendor/libressl/crypto/compat/getpagesize.c +0 -18
  146. data/vendor/libressl/crypto/compat/getprogname_linux.c +0 -23
  147. data/vendor/libressl/crypto/compat/getprogname_unimpl.c +0 -7
  148. data/vendor/libressl/crypto/compat/getprogname_windows.c +0 -13
  149. data/vendor/libressl/crypto/compat/posix_win.c +0 -296
  150. data/vendor/libressl/crypto/compat/syslog_r.c +0 -19
  151. data/vendor/libressl/crypto/compat/ui_openssl_win.c +0 -334
  152. data/vendor/libressl/dist.sh +0 -22
  153. data/vendor/libressl/gen-coverage-report.sh +0 -58
  154. data/vendor/libressl/gen-openbsd-tags.sh +0 -20
  155. data/vendor/libressl/include/CMakeLists.txt +0 -61
  156. data/vendor/libressl/include/Makefile.am +0 -79
  157. data/vendor/libressl/include/arch/loongarch64/opensslconf.h +0 -150
  158. data/vendor/libressl/include/arch/mips/opensslconf.h +0 -150
  159. data/vendor/libressl/include/compat/arpa/inet.h +0 -15
  160. data/vendor/libressl/include/compat/arpa/nameser.h +0 -25
  161. data/vendor/libressl/include/compat/cet.h +0 -19
  162. data/vendor/libressl/include/compat/dirent.h +0 -17
  163. data/vendor/libressl/include/compat/dirent_msvc.h +0 -611
  164. data/vendor/libressl/include/compat/endian.h +0 -161
  165. data/vendor/libressl/include/compat/err.h +0 -95
  166. data/vendor/libressl/include/compat/fcntl.h +0 -32
  167. data/vendor/libressl/include/compat/getopt.h +0 -50
  168. data/vendor/libressl/include/compat/limits.h +0 -25
  169. data/vendor/libressl/include/compat/netdb.h +0 -10
  170. data/vendor/libressl/include/compat/netinet/in.h +0 -19
  171. data/vendor/libressl/include/compat/netinet/ip.h +0 -49
  172. data/vendor/libressl/include/compat/netinet/tcp.h +0 -10
  173. data/vendor/libressl/include/compat/poll.h +0 -63
  174. data/vendor/libressl/include/compat/pthread.h +0 -122
  175. data/vendor/libressl/include/compat/readpassphrase.h +0 -44
  176. data/vendor/libressl/include/compat/resolv.h +0 -24
  177. data/vendor/libressl/include/compat/stdint.h +0 -31
  178. data/vendor/libressl/include/compat/stdio.h +0 -65
  179. data/vendor/libressl/include/compat/stdlib.h +0 -57
  180. data/vendor/libressl/include/compat/string.h +0 -98
  181. data/vendor/libressl/include/compat/sys/_null.h +0 -18
  182. data/vendor/libressl/include/compat/sys/ioctl.h +0 -11
  183. data/vendor/libressl/include/compat/sys/mman.h +0 -19
  184. data/vendor/libressl/include/compat/sys/param.h +0 -15
  185. data/vendor/libressl/include/compat/sys/queue.h +0 -536
  186. data/vendor/libressl/include/compat/sys/select.h +0 -10
  187. data/vendor/libressl/include/compat/sys/socket.h +0 -18
  188. data/vendor/libressl/include/compat/sys/stat.h +0 -129
  189. data/vendor/libressl/include/compat/sys/time.h +0 -37
  190. data/vendor/libressl/include/compat/sys/tree.h +0 -1006
  191. data/vendor/libressl/include/compat/sys/types.h +0 -69
  192. data/vendor/libressl/include/compat/sys/uio.h +0 -17
  193. data/vendor/libressl/include/compat/syslog.h +0 -38
  194. data/vendor/libressl/include/compat/time.h +0 -59
  195. data/vendor/libressl/include/compat/unistd.h +0 -83
  196. data/vendor/libressl/include/compat/win32netcompat.h +0 -57
  197. data/vendor/libressl/include/openssl/Makefile.am.tpl +0 -45
  198. data/vendor/libressl/libcrypto.pc.in +0 -28
  199. data/vendor/libressl/libressl.pub +0 -2
  200. data/vendor/libressl/libssl.pc.in +0 -28
  201. data/vendor/libressl/libtls.pc.in +0 -28
  202. data/vendor/libressl/m4/ax_add_fortify_source.m4 +0 -80
  203. data/vendor/libressl/m4/ax_check_compile_flag.m4 +0 -53
  204. data/vendor/libressl/m4/check-hardening-options.m4 +0 -110
  205. data/vendor/libressl/m4/check-libc.m4 +0 -189
  206. data/vendor/libressl/m4/check-os-options.m4 +0 -181
  207. data/vendor/libressl/m4/disable-compiler-warnings.m4 +0 -44
  208. data/vendor/libressl/man/CMakeLists.txt +0 -26
  209. data/vendor/libressl/man/links +0 -2780
  210. data/vendor/libressl/man/update_links.sh +0 -25
  211. data/vendor/libressl/openssl.pc.in +0 -11
  212. data/vendor/libressl/patches/bn_shift.patch +0 -34
  213. data/vendor/libressl/patches/crypto_arch.h.patch +0 -34
  214. data/vendor/libressl/patches/crypto_namespace.h.patch +0 -22
  215. data/vendor/libressl/patches/netcat.c.patch +0 -178
  216. data/vendor/libressl/patches/openssl.c.patch +0 -12
  217. data/vendor/libressl/patches/opensslfeatures.h.patch +0 -49
  218. data/vendor/libressl/patches/patch-amd64-crypto-cpu-caps.c.patch +0 -20
  219. data/vendor/libressl/patches/patch-i386-crypto-cpu-caps.c.patch +0 -20
  220. data/vendor/libressl/patches/speed.c.patch +0 -114
  221. data/vendor/libressl/patches/ssl_namespace.h.patch +0 -21
  222. data/vendor/libressl/patches/tls.h.patch +0 -16
  223. data/vendor/libressl/patches/tls_config.c.patch +0 -15
  224. data/vendor/libressl/patches/win32_amd64_bn_arch.h.patch +0 -28
  225. data/vendor/libressl/patches/windows_headers.patch +0 -80
  226. data/vendor/libressl/scripts/config.guess +0 -1774
  227. data/vendor/libressl/scripts/config.sub +0 -1907
  228. data/vendor/libressl/scripts/i686-w64-mingw32.cmake +0 -9
  229. data/vendor/libressl/scripts/test +0 -210
  230. data/vendor/libressl/scripts/wrap-compiler-for-flag-check +0 -31
  231. data/vendor/libressl/scripts/x86_64-w64-mingw32.cmake +0 -9
  232. data/vendor/libressl/ssl/CMakeLists.txt +0 -183
  233. data/vendor/libressl/ssl/Makefile.am +0 -187
  234. data/vendor/libressl/tests/CMakeLists.txt +0 -970
  235. data/vendor/libressl/tests/Makefile.am +0 -944
  236. data/vendor/libressl/tests/aeadtest.sh +0 -30
  237. data/vendor/libressl/tests/arc4randomforktest.sh +0 -21
  238. data/vendor/libressl/tests/asn1time_small.test +0 -10
  239. data/vendor/libressl/tests/cmake/CMakeLists.txt +0 -52
  240. data/vendor/libressl/tests/cmake/crypto.c +0 -7
  241. data/vendor/libressl/tests/cmake/ssl.c +0 -6
  242. data/vendor/libressl/tests/cmake/tls.c +0 -6
  243. data/vendor/libressl/tests/compat/pipe2.c +0 -186
  244. data/vendor/libressl/tests/dtlstest.sh +0 -28
  245. data/vendor/libressl/tests/evptest.sh +0 -22
  246. data/vendor/libressl/tests/keypairtest.sh +0 -27
  247. data/vendor/libressl/tests/mlkem_tests.sh +0 -39
  248. data/vendor/libressl/tests/ocsptest.bat +0 -25
  249. data/vendor/libressl/tests/ocsptest.sh +0 -23
  250. data/vendor/libressl/tests/openssl.cnf +0 -29
  251. data/vendor/libressl/tests/optionstest.c +0 -381
  252. data/vendor/libressl/tests/pidwraptest.c +0 -85
  253. data/vendor/libressl/tests/pidwraptest.sh +0 -26
  254. data/vendor/libressl/tests/quictest.bat +0 -27
  255. data/vendor/libressl/tests/quictest.sh +0 -30
  256. data/vendor/libressl/tests/renegotiation_test.bat +0 -27
  257. data/vendor/libressl/tests/renegotiation_test.sh +0 -30
  258. data/vendor/libressl/tests/rfc5280time_small.test +0 -10
  259. data/vendor/libressl/tests/servertest.bat +0 -27
  260. data/vendor/libressl/tests/servertest.sh +0 -30
  261. data/vendor/libressl/tests/shutdowntest.bat +0 -27
  262. data/vendor/libressl/tests/shutdowntest.sh +0 -30
  263. data/vendor/libressl/tests/ssltest.bat +0 -32
  264. data/vendor/libressl/tests/ssltest.sh +0 -48
  265. data/vendor/libressl/tests/testdsa.bat +0 -47
  266. data/vendor/libressl/tests/testdsa.sh +0 -57
  267. data/vendor/libressl/tests/testenc.bat +0 -85
  268. data/vendor/libressl/tests/testenc.sh +0 -93
  269. data/vendor/libressl/tests/testrsa.bat +0 -47
  270. data/vendor/libressl/tests/testrsa.sh +0 -57
  271. data/vendor/libressl/tests/testssl.bat +0 -171
  272. data/vendor/libressl/tests/tlstest.bat +0 -27
  273. data/vendor/libressl/tests/tlstest.sh +0 -28
  274. data/vendor/libressl/tls/CMakeLists.txt +0 -125
  275. data/vendor/libressl/tls/Makefile.am +0 -76
  276. data/vendor/libressl/tls/compat/ftruncate.c +0 -17
  277. data/vendor/libressl/tls/compat/pread.c +0 -29
  278. data/vendor/libressl/tls/compat/pwrite.c +0 -29
  279. data/vendor/libressl/update.sh +0 -460
@@ -1,863 +0,0 @@
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()