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,30 +0,0 @@
1
- #!/bin/sh
2
- #
3
- # Copyright (c) 2014 Brent Cook
4
- #
5
- # Permission to use, copy, modify, and distribute this software for any
6
- # purpose with or without fee is hereby granted, provided that the above
7
- # copyright notice and this permission notice appear in all copies.
8
- #
9
- # THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
10
- # WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
11
- # MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
12
- # ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
13
- # WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
14
- # ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
15
- # OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
16
-
17
- set -e
18
- TEST=./aeadtest
19
- if [ -e ./aeadtest.exe ]; then
20
- TEST=./aeadtest.exe
21
- elif [ -e ./aeadtest.js ]; then
22
- TEST="node ./aeadtest.js"
23
- fi
24
- $TEST aead $srcdir/aeadtests.txt
25
- $TEST aes-128-gcm $srcdir/aes_128_gcm_tests.txt
26
- $TEST aes-192-gcm $srcdir/aes_192_gcm_tests.txt
27
- $TEST aes-256-gcm $srcdir/aes_256_gcm_tests.txt
28
- $TEST chacha20-poly1305 $srcdir/chacha20_poly1305_tests.txt
29
- $TEST xchacha20-poly1305 $srcdir/xchacha20_poly1305_tests.txt
30
-
@@ -1,21 +0,0 @@
1
- #!/bin/sh
2
- #
3
- # Copyright (c) 2014 Brent Cook
4
- #
5
- # Permission to use, copy, modify, and distribute this software for any
6
- # purpose with or without fee is hereby granted, provided that the above
7
- # copyright notice and this permission notice appear in all copies.
8
- #
9
- # THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
10
- # WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
11
- # MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
12
- # ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
13
- # WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
14
- # ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
15
- # OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
16
-
17
- set -e
18
- ./arc4randomforktest
19
- ./arc4randomforktest -b
20
- ./arc4randomforktest -p
21
- ./arc4randomforktest -bp
@@ -1,10 +0,0 @@
1
- #!/bin/sh
2
- echo 1..1
3
- TEST=./asn1time
4
- if [ -e ./asn1time.exe ]; then
5
- TEST=./asn1time.exe
6
- fi
7
-
8
- # map test failure to XFAIL and success to XPASS
9
- $TEST || echo -n "not "
10
- echo "ok # this system is unable to represent times past 2038"
@@ -1,52 +0,0 @@
1
- #
2
- # Copyright (c) 2023 Pierre Wendling
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
- cmake_minimum_required(VERSION 3.5)
17
-
18
- project(LibreSSL_Consumer LANGUAGES C)
19
-
20
- find_package(
21
- LibreSSL
22
- CONFIG
23
- REQUIRED
24
- COMPONENTS Crypto SSL TLS
25
- )
26
-
27
- set(RESULTS_TO_CHECK
28
- "LIBRESSL_VERSION"
29
- "LIBRESSL_FOUND"
30
- "LIBRESSL_INCLUDE_DIR"
31
- "LIBRESSL_LIBRARIES"
32
- "LIBRESSL_CRYPTO_LIBRARY"
33
- "LIBRESSL_SSL_LIBRARY"
34
- "LIBRESSL_TLS_LIBRARY"
35
- )
36
-
37
- foreach(RESULT_VAR IN LISTS RESULTS_TO_CHECK)
38
- if(${RESULT_VAR})
39
- message(STATUS "${RESULT_VAR}: ${${RESULT_VAR}}")
40
- else()
41
- message(FATAL_ERROR "${RESULT_VAR} was not set by the package.")
42
- endif()
43
- endforeach()
44
-
45
- add_executable(crypto crypto.c)
46
- target_link_libraries(crypto PRIVATE LibreSSL::Crypto)
47
-
48
- add_executable(ssl ssl.c)
49
- target_link_libraries(ssl PRIVATE LibreSSL::SSL)
50
-
51
- add_executable(tls tls.c)
52
- target_link_libraries(tls PRIVATE LibreSSL::TLS)
@@ -1,7 +0,0 @@
1
- #include <openssl/crypto.h>
2
-
3
- int main(void) {
4
- OPENSSL_init_crypto(0, NULL);
5
- OPENSSL_cleanup();
6
- return 0;
7
- }
@@ -1,6 +0,0 @@
1
- #include <openssl/ssl.h>
2
-
3
- int main(void) {
4
- SSL_library_init();
5
- return 0;
6
- }
@@ -1,6 +0,0 @@
1
- #include <tls.h>
2
-
3
- int main(void) {
4
- tls_init();
5
- return 0;
6
- }
@@ -1,186 +0,0 @@
1
- /*
2
- * Public domain
3
- *
4
- * pipe2/pipe/socketpair emulation
5
- * Brent Cook <bcook@openbsd.org>
6
- */
7
-
8
- #include <errno.h>
9
- #include <fcntl.h>
10
- #include <unistd.h>
11
- #include <sys/socket.h>
12
-
13
- #undef socketpair
14
-
15
- #ifdef _WIN32
16
-
17
- static int setfd(int fd, int flag)
18
- {
19
- int rc = -1;
20
- if (flag & FD_CLOEXEC) {
21
- HANDLE h = (HANDLE)_get_osfhandle(fd);
22
- if (h != NULL)
23
- rc = SetHandleInformation(h, HANDLE_FLAG_INHERIT, 0) == 0 ? -1 : 0;
24
- }
25
- return rc;
26
- }
27
-
28
- static int setfl(int fd, int flag)
29
- {
30
- int rc = -1;
31
- if (flag & O_NONBLOCK) {
32
- long mode = 1;
33
- rc = ioctlsocket(fd, FIONBIO, &mode);
34
- }
35
- return rc;
36
- }
37
-
38
- /*
39
- * Have open() temporarily use up file descriptors until reaching beyond the
40
- * allocated sockets, then leak the ones conflicting with any of the latter.
41
- */
42
- static void create_issue_1069_sentinels(int socket_vector[2])
43
- {
44
- int fd = open("CONIN$", O_RDONLY);
45
- if (fd == -1 || fd > socket_vector[0] && fd > socket_vector[1]) {
46
- return;
47
- }
48
- create_issue_1069_sentinels(socket_vector);
49
- if (fd != socket_vector[0] && fd != socket_vector[1]) {
50
- close(fd);
51
- }
52
- }
53
-
54
- int socketpair(int domain, int type, int protocol, int socket_vector[2])
55
- {
56
- if (domain != AF_UNIX || !(type & SOCK_STREAM) || protocol != PF_UNSPEC)
57
- return -1;
58
-
59
- socket_vector[0] = -1;
60
- socket_vector[1] = -1;
61
-
62
- int listener = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
63
- if (listener == -1) {
64
- return -1;
65
- }
66
-
67
- struct sockaddr_in addr = {
68
- .sin_family = AF_INET,
69
- .sin_addr.s_addr = htonl(INADDR_LOOPBACK),
70
- .sin_port = 0,
71
- };
72
-
73
- int yes = 1, e;
74
- if (setsockopt(listener, SOL_SOCKET, SO_REUSEADDR,
75
- (void *)&yes, sizeof yes) == -1)
76
- goto err;
77
-
78
- if (bind(listener, (struct sockaddr *)&addr, sizeof addr) != 0)
79
- goto err;
80
-
81
- memset(&addr, 0, sizeof addr);
82
- socklen_t addrlen = sizeof addr;
83
- if (getsockname(listener, (struct sockaddr *)&addr, &addrlen) != 0)
84
- goto err;
85
-
86
- addr.sin_addr.s_addr = htonl(INADDR_LOOPBACK);
87
- addr.sin_family = AF_INET;
88
-
89
- if (listen(listener, 1) != 0)
90
- goto err;
91
-
92
- socket_vector[0] = WSASocket(AF_INET, SOCK_STREAM, 0, NULL, 0, 0);
93
- if (socket_vector[0] == -1)
94
- goto err;
95
-
96
- if (connect(socket_vector[0], (struct sockaddr *)&addr, sizeof addr) != 0)
97
- goto err;
98
-
99
- socket_vector[1] = accept(listener, NULL, NULL);
100
- if (socket_vector[1] == -1)
101
- goto err;
102
-
103
- closesocket(listener);
104
-
105
- create_issue_1069_sentinels(socket_vector);
106
-
107
- return 0;
108
-
109
- err:
110
- e = WSAGetLastError();
111
- closesocket(listener);
112
- closesocket(socket_vector[0]);
113
- closesocket(socket_vector[1]);
114
- WSASetLastError(e);
115
- socket_vector[0] = -1;
116
- socket_vector[1] = -1;
117
- return -1;
118
- }
119
-
120
- int pipe(int fildes[2])
121
- {
122
- return socketpair(AF_UNIX, SOCK_STREAM | SOCK_NONBLOCK, PF_UNSPEC, fildes);
123
- }
124
-
125
- #else
126
-
127
- static int setfd(int fd, int flag)
128
- {
129
- int flags = fcntl(fd, F_GETFD);
130
- flags |= flag;
131
- return fcntl(fd, F_SETFD, flags);
132
- }
133
-
134
- static int setfl(int fd, int flag)
135
- {
136
- int flags = fcntl(fd, F_GETFL);
137
- flags |= flag;
138
- return fcntl(fd, F_SETFL, flags);
139
- }
140
- #endif
141
-
142
- int pipe2(int fildes[2], int flags)
143
- {
144
- int rc = pipe(fildes);
145
- if (rc == 0) {
146
- if (flags & O_NONBLOCK) {
147
- rc |= setfl(fildes[0], O_NONBLOCK);
148
- rc |= setfl(fildes[1], O_NONBLOCK);
149
- }
150
- if (flags & O_CLOEXEC) {
151
- rc |= setfd(fildes[0], FD_CLOEXEC);
152
- rc |= setfd(fildes[1], FD_CLOEXEC);
153
- }
154
- if (rc != 0) {
155
- int e = errno;
156
- close(fildes[0]);
157
- close(fildes[1]);
158
- errno = e;
159
- }
160
- }
161
- return rc;
162
- }
163
-
164
- int bsd_socketpair(int domain, int type, int protocol, int socket_vector[2])
165
- {
166
- int flags = type & ~0xf;
167
- type &= 0xf;
168
- int rc = socketpair(domain, type, protocol, socket_vector);
169
- if (rc == 0) {
170
- if (flags & SOCK_NONBLOCK) {
171
- rc |= setfl(socket_vector[0], O_NONBLOCK);
172
- rc |= setfl(socket_vector[1], O_NONBLOCK);
173
- }
174
- if (flags & SOCK_CLOEXEC) {
175
- rc |= setfd(socket_vector[0], FD_CLOEXEC);
176
- rc |= setfd(socket_vector[1], FD_CLOEXEC);
177
- }
178
- if (rc != 0) {
179
- int e = errno;
180
- close(socket_vector[0]);
181
- close(socket_vector[1]);
182
- errno = e;
183
- }
184
- }
185
- return rc;
186
- }
@@ -1,28 +0,0 @@
1
- #!/bin/sh
2
- #
3
- # Copyright (c) 2021 Kinichiro Inoguchi
4
- #
5
- # Permission to use, copy, modify, and distribute this software for any
6
- # purpose with or without fee is hereby granted, provided that the above
7
- # copyright notice and this permission notice appear in all copies.
8
- #
9
- # THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
10
- # WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
11
- # MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
12
- # ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
13
- # WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
14
- # ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
15
- # OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
16
-
17
- set -e
18
-
19
- dtlstest_bin=./dtlstest
20
- if [ -e ./dtlstest.exe ]; then
21
- dtlstest_bin=./dtlstest.exe
22
- fi
23
-
24
- if [ -z $srcdir ]; then
25
- srcdir=.
26
- fi
27
-
28
- $dtlstest_bin $srcdir/server1-rsa.pem $srcdir/server1-rsa.pem $srcdir/ca-int-rsa.pem
@@ -1,22 +0,0 @@
1
- #!/bin/sh
2
- #
3
- # Copyright (c) 2014 Brent Cook
4
- #
5
- # Permission to use, copy, modify, and distribute this software for any
6
- # purpose with or without fee is hereby granted, provided that the above
7
- # copyright notice and this permission notice appear in all copies.
8
- #
9
- # THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
10
- # WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
11
- # MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
12
- # ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
13
- # WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
14
- # ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
15
- # OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
16
-
17
- set -e
18
- TEST=./evptest
19
- if [ -e ./evptest.exe ]; then
20
- TEST=./evptest.exe
21
- fi
22
- $TEST $srcdir/evptests.txt
@@ -1,27 +0,0 @@
1
- #!/bin/sh
2
- #
3
- # Copyright (c) 2018 Kinichiro Inoguchi
4
- #
5
- # Permission to use, copy, modify, and distribute this software for any
6
- # purpose with or without fee is hereby granted, provided that the above
7
- # copyright notice and this permission notice appear in all copies.
8
- #
9
- # THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
10
- # WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
11
- # MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
12
- # ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
13
- # WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
14
- # ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
15
- # OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
16
-
17
- set -e
18
- TEST=./keypairtest
19
- if [ -e ./keypairtest.exe ]; then
20
- TEST=./keypairtest.exe
21
- fi
22
-
23
- if [ -z $srcdir ]; then
24
- srcdir=.
25
- fi
26
-
27
- $TEST $srcdir/ca-root-rsa.pem $srcdir/server1-rsa.pem $srcdir/server1-rsa.pem
@@ -1,39 +0,0 @@
1
- #!/bin/sh
2
- #
3
- # Copyright (c) 2024 Theo Buehler
4
- #
5
- # Permission to use, copy, modify, and distribute this software for any
6
- # purpose with or without fee is hereby granted, provided that the above
7
- # copyright notice and this permission notice appear in all copies.
8
- #
9
- # THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
10
- # WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
11
- # MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
12
- # ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
13
- # WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
14
- # ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
15
- # OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
16
-
17
- set -e
18
-
19
- TEST=./mlkem_tests
20
- if [ -e ./mlkem_tests.exe ]; then
21
- TEST=./mlkem_tests.exe
22
- elif [ -e ./mlkem_tests.js ]; then
23
- TEST="node ./mlkem_tests.js"
24
- fi
25
-
26
- if [ -z $srcdir ]; then
27
- srcdir=.
28
- fi
29
-
30
- $TEST mlkem768_decap_tests $srcdir/mlkem768_decap_tests.txt
31
- $TEST mlkem768_encap_tests $srcdir/mlkem768_encap_tests.txt
32
- $TEST mlkem768_keygen_tests $srcdir/mlkem768_keygen_tests.txt
33
- $TEST mlkem768_nist_decap_tests $srcdir/mlkem768_nist_decap_tests.txt
34
- $TEST mlkem768_nist_keygen_tests $srcdir/mlkem768_nist_keygen_tests.txt
35
- $TEST mlkem1024_decap_tests $srcdir/mlkem1024_decap_tests.txt
36
- $TEST mlkem1024_encap_tests $srcdir/mlkem1024_encap_tests.txt
37
- $TEST mlkem1024_keygen_tests $srcdir/mlkem1024_keygen_tests.txt
38
- $TEST mlkem1024_nist_decap_tests $srcdir/mlkem1024_nist_decap_tests.txt
39
- $TEST mlkem1024_nist_keygen_tests $srcdir/mlkem1024_nist_keygen_tests.txt
@@ -1,25 +0,0 @@
1
- @echo off
2
- setlocal enabledelayedexpansion
3
-
4
- :: Copyright (c) 2016 Kinichiro Inoguchi
5
- ::
6
- :: Permission to use, copy, modify, and distribute this software for any
7
- :: purpose with or without fee is hereby granted, provided that the above
8
- :: copyright notice and this permission notice appear in all copies.
9
- ::
10
- :: THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
11
- :: WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
12
- :: MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
13
- :: ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
14
- :: WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
15
- :: ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
16
- :: OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
17
-
18
- set ocsp_test_bin=%1
19
- set ocsp_test_bin=%ocsp_test_bin:/=\%
20
- if not exist %ocsp_test_bin% exit /b 1
21
-
22
- %ocsp_test_bin% www.amazon.com 443 & if !errorlevel! neq 0 exit /b 1
23
- %ocsp_test_bin% cloudflare.com 443 & if !errorlevel! neq 0 exit /b 1
24
-
25
- endlocal
@@ -1,23 +0,0 @@
1
- #!/bin/sh
2
- #
3
- # Copyright (c) 2016 Brent Cook
4
- #
5
- # Permission to use, copy, modify, and distribute this software for any
6
- # purpose with or without fee is hereby granted, provided that the above
7
- # copyright notice and this permission notice appear in all copies.
8
- #
9
- # THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
10
- # WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
11
- # MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
12
- # ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
13
- # WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
14
- # ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
15
- # OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
16
-
17
- set -e
18
- TEST=./ocsp_test
19
- if [ -e ./ocsp_test.exe ]; then
20
- TEST=./ocsp_test.exe
21
- fi
22
- $TEST www.amazon.com 443
23
- $TEST cloudflare.com 443
@@ -1,29 +0,0 @@
1
- # $OpenBSD: openssl.cnf,v 1.1 2014/08/26 17:50:07 jsing Exp $
2
-
3
- #
4
- # SSLeay example configuration file.
5
- # This is mostly being used for generation of certificate requests.
6
- #
7
- # hacked by iang to do DSA certs - Server
8
-
9
- RANDFILE = ./.rnd
10
-
11
- ####################################################################
12
- [ req ]
13
- distinguished_name = req_distinguished_name
14
- encrypt_rsa_key = no
15
-
16
- [ req_distinguished_name ]
17
- countryName = Country Name (2 letter code)
18
- countryName_default = CA
19
- countryName_value = CA
20
-
21
- organizationName = Organization Name (eg, company)
22
- organizationName_value = Shake it Vera
23
-
24
- 0.commonName = Common Name (eg, YOUR name)
25
- 0.commonName_value = Wastelandus
26
-
27
- 1.commonName = Common Name (eg, YOUR name)
28
- 1.commonName_value = Maximus
29
-