diff options
| author | Theo Buehler <tb@openbsd.org> | 2026-07-30 08:29:03 +0200 |
|---|---|---|
| committer | Theo Buehler <tb@openbsd.org> | 2026-07-30 08:29:03 +0200 |
| commit | 0ab79b7c8111fce123821c752655c7e6e55110f8 (patch) | |
| tree | d8ae992fefc2436ec01dc74d5fb88b2ad41a4617 | |
| parent | 7a164a4d0a17de54482e8e376a72b2b3a5d071b9 (diff) | |
| parent | a63377faa2aabf5ab9b8e14ba9202950f5a00e62 (diff) | |
| download | portable-0ab79b7c8111fce123821c752655c7e6e55110f8.tar.gz portable-0ab79b7c8111fce123821c752655c7e6e55110f8.tar.bz2 portable-0ab79b7c8111fce123821c752655c7e6e55110f8.zip | |
Land #1341 - wire up libssl verify test
| -rw-r--r-- | .github/workflows/emscripten.yml | 12 | ||||
| -rw-r--r-- | .github/workflows/fedora-rawhide.yml | 3 | ||||
| -rw-r--r-- | .github/workflows/freebsd.yml | 6 | ||||
| -rw-r--r-- | .github/workflows/linux.yml | 12 | ||||
| -rw-r--r-- | .github/workflows/macos.yml | 7 | ||||
| -rw-r--r-- | .github/workflows/solaris.yml | 2 | ||||
| -rw-r--r-- | .github/workflows/windows.yml | 9 | ||||
| -rw-r--r-- | .gitignore | 2 | ||||
| -rw-r--r-- | CMakeLists.txt | 9 | ||||
| -rw-r--r-- | configure.ac | 11 | ||||
| -rw-r--r-- | tests/CMakeLists.txt | 19 | ||||
| -rw-r--r-- | tests/Makefile.am | 11 | ||||
| -rw-r--r-- | tests/ssl_verify.bat | 42 | ||||
| -rwxr-xr-x | tests/ssl_verify.sh | 67 | ||||
| -rwxr-xr-x | update.sh | 6 |
15 files changed, 213 insertions, 5 deletions
diff --git a/.github/workflows/emscripten.yml b/.github/workflows/emscripten.yml index 2addcec..bd4c9a7 100644 --- a/.github/workflows/emscripten.yml +++ b/.github/workflows/emscripten.yml | |||
| @@ -22,6 +22,12 @@ jobs: | |||
| 22 | - name: "Checkout repository" | 22 | - name: "Checkout repository" |
| 23 | uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 | 23 | uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 |
| 24 | 24 | ||
| 25 | - name: "Install test dependencies" | ||
| 26 | run: | | ||
| 27 | sudo apt-get update | ||
| 28 | sudo apt-get install -y libio-socket-ssl-perl | ||
| 29 | perl -MIO::Socket::SSL::Utils -e 1 | ||
| 30 | |||
| 25 | - name: "Setup emsdk" | 31 | - name: "Setup emsdk" |
| 26 | uses: mymindstorm/setup-emsdk@4528d102f7230f0e7b276855c01ea1159be0e984 # v16 | 32 | uses: mymindstorm/setup-emsdk@4528d102f7230f0e7b276855c01ea1159be0e984 # v16 |
| 27 | with: | 33 | with: |
| @@ -50,6 +56,12 @@ jobs: | |||
| 50 | - name: "Checkout repository" | 56 | - name: "Checkout repository" |
| 51 | uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 | 57 | uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 |
| 52 | 58 | ||
| 59 | - name: "Install test dependencies" | ||
| 60 | run: | | ||
| 61 | sudo apt-get update | ||
| 62 | sudo apt-get install -y libio-socket-ssl-perl | ||
| 63 | perl -MIO::Socket::SSL::Utils -e 1 | ||
| 64 | |||
| 53 | - name: "Setup emsdk" | 65 | - name: "Setup emsdk" |
| 54 | uses: mymindstorm/setup-emsdk@4528d102f7230f0e7b276855c01ea1159be0e984 # v16 | 66 | uses: mymindstorm/setup-emsdk@4528d102f7230f0e7b276855c01ea1159be0e984 # v16 |
| 55 | with: | 67 | with: |
diff --git a/.github/workflows/fedora-rawhide.yml b/.github/workflows/fedora-rawhide.yml index 1283c4a..078bc02 100644 --- a/.github/workflows/fedora-rawhide.yml +++ b/.github/workflows/fedora-rawhide.yml | |||
| @@ -26,7 +26,8 @@ jobs: | |||
| 26 | - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 | 26 | - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 |
| 27 | - name: Install dependencies | 27 | - name: Install dependencies |
| 28 | run: | | 28 | run: | |
| 29 | dnf -y install git make clang cmake ninja-build autoconf automake libtool diffutils patch gawk | 29 | dnf -y install git make clang cmake ninja-build autoconf automake libtool diffutils patch gawk perl-IO-Socket-SSL |
| 30 | perl -MIO::Socket::SSL::Utils -e 1 | ||
| 30 | - name: Pull upstream source | 31 | - name: Pull upstream source |
| 31 | run: | | 32 | run: | |
| 32 | ./update.sh | 33 | ./update.sh |
diff --git a/.github/workflows/freebsd.yml b/.github/workflows/freebsd.yml index 64de243..4e38efd 100644 --- a/.github/workflows/freebsd.yml +++ b/.github/workflows/freebsd.yml | |||
| @@ -36,8 +36,9 @@ jobs: | |||
| 36 | release: "${{ env.FREEBSD_VERSION }}" | 36 | release: "${{ env.FREEBSD_VERSION }}" |
| 37 | copyback: false | 37 | copyback: false |
| 38 | prepare: | | 38 | prepare: | |
| 39 | pkg install -y autoconf automake libtool | 39 | pkg install -y autoconf automake libtool p5-IO-Socket-SSL |
| 40 | run: | | 40 | run: | |
| 41 | perl -MIO::Socket::SSL::Utils -e 1 | ||
| 41 | ./configure | 42 | ./configure |
| 42 | make -j2 check || (cat tests/test-suite.log && exit 1) | 43 | make -j2 check || (cat tests/test-suite.log && exit 1) |
| 43 | 44 | ||
| @@ -63,8 +64,9 @@ jobs: | |||
| 63 | release: "${{ env.FREEBSD_VERSION }}" | 64 | release: "${{ env.FREEBSD_VERSION }}" |
| 64 | copyback: false | 65 | copyback: false |
| 65 | prepare: | | 66 | prepare: | |
| 66 | pkg install -y cmake ninja perl5 | 67 | pkg install -y cmake ninja p5-IO-Socket-SSL |
| 67 | run: | | 68 | run: | |
| 69 | perl -MIO::Socket::SSL::Utils -e 1 | ||
| 68 | export CTEST_OUTPUT_ON_FAILURE=1 | 70 | export CTEST_OUTPUT_ON_FAILURE=1 |
| 69 | cmake -G Ninja -B build | 71 | cmake -G Ninja -B build |
| 70 | ninja -C build | 72 | ninja -C build |
diff --git a/.github/workflows/linux.yml b/.github/workflows/linux.yml index a44df9d..197e894 100644 --- a/.github/workflows/linux.yml +++ b/.github/workflows/linux.yml | |||
| @@ -46,6 +46,12 @@ jobs: | |||
| 46 | - name: "Checkout repository" | 46 | - name: "Checkout repository" |
| 47 | uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 | 47 | uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 |
| 48 | 48 | ||
| 49 | - name: "Install test dependencies" | ||
| 50 | run: | | ||
| 51 | sudo apt-get update | ||
| 52 | sudo apt-get install -y libio-socket-ssl-perl | ||
| 53 | perl -MIO::Socket::SSL::Utils -e 1 | ||
| 54 | |||
| 49 | - name: "Run tests" | 55 | - name: "Run tests" |
| 50 | run: ./scripts/test || (status=$?; cat tests/test-suite.log; exit $status) | 56 | run: ./scripts/test || (status=$?; cat tests/test-suite.log; exit $status) |
| 51 | env: | 57 | env: |
| @@ -68,6 +74,12 @@ jobs: | |||
| 68 | - name: "Checkout repository" | 74 | - name: "Checkout repository" |
| 69 | uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 | 75 | uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 |
| 70 | 76 | ||
| 77 | - name: "Install test dependencies" | ||
| 78 | run: | | ||
| 79 | sudo apt-get update | ||
| 80 | sudo apt-get install -y libio-socket-ssl-perl | ||
| 81 | perl -MIO::Socket::SSL::Utils -e 1 | ||
| 82 | |||
| 71 | - name: "Run tests" | 83 | - name: "Run tests" |
| 72 | run: ./scripts/test | 84 | run: ./scripts/test |
| 73 | env: | 85 | env: |
diff --git a/.github/workflows/macos.yml b/.github/workflows/macos.yml index 9b9d5e4..c619b17 100644 --- a/.github/workflows/macos.yml +++ b/.github/workflows/macos.yml | |||
| @@ -25,7 +25,12 @@ jobs: | |||
| 25 | arch: ["arm64", "x86_64"] | 25 | arch: ["arm64", "x86_64"] |
| 26 | steps: | 26 | steps: |
| 27 | - name: "Install required packages" | 27 | - name: "Install required packages" |
| 28 | run: brew install automake libtool | 28 | run: | |
| 29 | brew install automake libtool perl cpanminus | ||
| 30 | PERL="$(brew --prefix perl)/bin/perl" | ||
| 31 | "$PERL" "$(command -v cpanm)" --notest IO::Socket::SSL | ||
| 32 | echo "$(brew --prefix perl)/bin" >> "$GITHUB_PATH" | ||
| 33 | "$PERL" -MIO::Socket::SSL::Utils -e 1 | ||
| 29 | 34 | ||
| 30 | - name: "Checkout repository" | 35 | - name: "Checkout repository" |
| 31 | uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 | 36 | uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 |
diff --git a/.github/workflows/solaris.yml b/.github/workflows/solaris.yml index 24c4056..0e50f5f 100644 --- a/.github/workflows/solaris.yml +++ b/.github/workflows/solaris.yml | |||
| @@ -32,6 +32,8 @@ jobs: | |||
| 32 | with: | 32 | with: |
| 33 | prepare: | | 33 | prepare: | |
| 34 | pkg install gcc make | 34 | pkg install gcc make |
| 35 | PERL_MM_USE_DEFAULT=1 cpan -T IO::Socket::SSL | ||
| 35 | run: | | 36 | run: | |
| 37 | perl -MIO::Socket::SSL::Utils -e 1 | ||
| 36 | MAKE=gmake ./configure | 38 | MAKE=gmake ./configure |
| 37 | gmake -j2 check || (cat tests/test-suite.log && exit 1) | 39 | gmake -j2 check || (cat tests/test-suite.log && exit 1) |
diff --git a/.github/workflows/windows.yml b/.github/workflows/windows.yml index 0cd342e..4814ffa 100644 --- a/.github/workflows/windows.yml +++ b/.github/workflows/windows.yml | |||
| @@ -29,6 +29,7 @@ jobs: | |||
| 29 | uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 | 29 | uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 |
| 30 | 30 | ||
| 31 | - name: "Setup MSYS2" | 31 | - name: "Setup MSYS2" |
| 32 | id: msys2 | ||
| 32 | uses: msys2/setup-msys2@66cd2cce69caa17b53920067426061ca1de3a884 # v2.32.0 | 33 | uses: msys2/setup-msys2@66cd2cce69caa17b53920067426061ca1de3a884 # v2.32.0 |
| 33 | with: | 34 | with: |
| 34 | update: true | 35 | update: true |
| @@ -38,6 +39,7 @@ jobs: | |||
| 38 | git | 39 | git |
| 39 | patch | 40 | patch |
| 40 | perl | 41 | perl |
| 42 | perl-IO-Socket-SSL | ||
| 41 | 43 | ||
| 42 | - name: "Update" | 44 | - name: "Update" |
| 43 | shell: msys2 {0} | 45 | shell: msys2 {0} |
| @@ -46,6 +48,11 @@ jobs: | |||
| 46 | - name: "Configure CMake" | 48 | - name: "Configure CMake" |
| 47 | shell: pwsh | 49 | shell: pwsh |
| 48 | run: | | 50 | run: | |
| 51 | $perl = Join-Path '${{ steps.msys2.outputs.msys2-location }}' 'usr\bin\perl.exe' | ||
| 52 | & $perl -MIO::Socket::SSL::Utils -e 1 | ||
| 53 | if ($LASTEXITCODE -ne 0) { | ||
| 54 | throw "IO::Socket::SSL::Utils is unavailable" | ||
| 55 | } | ||
| 49 | $generator = cmake --help | | 56 | $generator = cmake --help | |
| 50 | Select-String '^\s*\*?\s*(Visual Studio \d+ \d+)' | | 57 | Select-String '^\s*\*?\s*(Visual Studio \d+ \d+)' | |
| 51 | Select-Object -First 1 | | 58 | Select-Object -First 1 | |
| @@ -54,7 +61,7 @@ jobs: | |||
| 54 | throw "No Visual Studio CMake generator found" | 61 | throw "No Visual Studio CMake generator found" |
| 55 | } | 62 | } |
| 56 | Write-Host "Using generator: $generator" | 63 | Write-Host "Using generator: $generator" |
| 57 | cmake -Bbuild -G "$generator" -A ${{ matrix.arch }} -D BUILD_SHARED_LIBS=${{ matrix.shared }} -D CMAKE_INSTALL_PREFIX=../local | 64 | cmake -Bbuild -G "$generator" -A ${{ matrix.arch }} -D BUILD_SHARED_LIBS=${{ matrix.shared }} -D CMAKE_INSTALL_PREFIX=../local "-DPERL_EXECUTABLE=$perl" |
| 58 | 65 | ||
| 59 | - name: "Build" | 66 | - name: "Build" |
| 60 | shell: cmd | 67 | shell: cmd |
| @@ -141,10 +141,12 @@ tests/*test.c | |||
| 141 | tests/pbkdf2* | 141 | tests/pbkdf2* |
| 142 | tests/*.pem | 142 | tests/*.pem |
| 143 | tests/certs/ | 143 | tests/certs/ |
| 144 | tests/create-libressl-test-certs.pl | ||
| 144 | tests/make-dir-roots.pl | 145 | tests/make-dir-roots.pl |
| 145 | tests/testssl | 146 | tests/testssl |
| 146 | tests/*.txt | 147 | tests/*.txt |
| 147 | tests/compat/*.c | 148 | tests/compat/*.c |
| 149 | tests/ssl_verify.c | ||
| 148 | tests/verify* | 150 | tests/verify* |
| 149 | tests/x509_verify* | 151 | tests/x509_verify* |
| 150 | !tests/x509_verify.sh | 152 | !tests/x509_verify.sh |
diff --git a/CMakeLists.txt b/CMakeLists.txt index 699603b..4ffe67b 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt | |||
| @@ -33,6 +33,15 @@ include(GNUInstallDirs) | |||
| 33 | 33 | ||
| 34 | enable_testing() | 34 | enable_testing() |
| 35 | find_program(PERL_EXECUTABLE perl perl5) | 35 | find_program(PERL_EXECUTABLE perl perl5) |
| 36 | set(HAVE_PERL_IO_SOCKET_SSL_UTILS FALSE) | ||
| 37 | if(PERL_EXECUTABLE) | ||
| 38 | execute_process(COMMAND ${PERL_EXECUTABLE} -MIO::Socket::SSL::Utils -e 1 | ||
| 39 | RESULT_VARIABLE PERL_IO_SOCKET_SSL_UTILS_RESULT | ||
| 40 | OUTPUT_QUIET ERROR_QUIET) | ||
| 41 | if(PERL_IO_SOCKET_SSL_UTILS_RESULT EQUAL 0) | ||
| 42 | set(HAVE_PERL_IO_SOCKET_SSL_UTILS TRUE) | ||
| 43 | endif() | ||
| 44 | endif() | ||
| 36 | 45 | ||
| 37 | file(READ ${CMAKE_CURRENT_SOURCE_DIR}/ssl/VERSION SSL_VERSION) | 46 | file(READ ${CMAKE_CURRENT_SOURCE_DIR}/ssl/VERSION SSL_VERSION) |
| 38 | string(STRIP ${SSL_VERSION} SSL_VERSION) | 47 | string(STRIP ${SSL_VERSION} SSL_VERSION) |
diff --git a/configure.ac b/configure.ac index 9012535..23f0c38 100644 --- a/configure.ac +++ b/configure.ac | |||
| @@ -34,6 +34,17 @@ LT_INIT([pic-only]) | |||
| 34 | 34 | ||
| 35 | AC_CHECK_PROGS([PERL], [perl perl5]) | 35 | AC_CHECK_PROGS([PERL], [perl perl5]) |
| 36 | AM_CONDITIONAL([HAVE_PERL], [test "x$PERL" != x]) | 36 | AM_CONDITIONAL([HAVE_PERL], [test "x$PERL" != x]) |
| 37 | AC_CACHE_CHECK([for IO::Socket::SSL::Utils], | ||
| 38 | [ac_cv_perl_io_socket_ssl_utils], | ||
| 39 | [if test "x$PERL" = x; then | ||
| 40 | ac_cv_perl_io_socket_ssl_utils=no | ||
| 41 | elif "$PERL" -MIO::Socket::SSL::Utils -e 1 >/dev/null 2>&1; then | ||
| 42 | ac_cv_perl_io_socket_ssl_utils=yes | ||
| 43 | else | ||
| 44 | ac_cv_perl_io_socket_ssl_utils=no | ||
| 45 | fi]) | ||
| 46 | AM_CONDITIONAL([HAVE_PERL_IO_SOCKET_SSL_UTILS], | ||
| 47 | [test "x$ac_cv_perl_io_socket_ssl_utils" = xyes]) | ||
| 37 | 48 | ||
| 38 | CHECK_OS_OPTIONS | 49 | CHECK_OS_OPTIONS |
| 39 | 50 | ||
diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index ede7463..92588cc 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt | |||
| @@ -844,6 +844,25 @@ add_executable(ssl_verify_param ssl_verify_param.c) | |||
| 844 | target_link_libraries(ssl_verify_param ${OPENSSL_TEST_LIBS}) | 844 | target_link_libraries(ssl_verify_param ${OPENSSL_TEST_LIBS}) |
| 845 | add_platform_test(ssl_verify_param ssl_verify_param) | 845 | add_platform_test(ssl_verify_param ssl_verify_param) |
| 846 | 846 | ||
| 847 | # ssl_verify | ||
| 848 | add_executable(ssl_verify ssl_verify.c) | ||
| 849 | target_link_libraries(ssl_verify ${OPENSSL_TEST_LIBS}) | ||
| 850 | prepare_emscripten_test_target(ssl_verify) | ||
| 851 | if(HAVE_PERL_IO_SOCKET_SSL_UTILS) | ||
| 852 | if(WIN32) | ||
| 853 | add_test(NAME ssl_verify COMMAND | ||
| 854 | ${CMAKE_CURRENT_SOURCE_DIR}/ssl_verify.bat | ||
| 855 | $<TARGET_FILE:ssl_verify>) | ||
| 856 | else() | ||
| 857 | add_test(NAME ssl_verify COMMAND | ||
| 858 | ${CMAKE_CURRENT_SOURCE_DIR}/ssl_verify.sh | ||
| 859 | $<TARGET_FILE:ssl_verify>) | ||
| 860 | endif() | ||
| 861 | set_tests_properties(ssl_verify PROPERTIES | ||
| 862 | ENVIRONMENT "srcdir=${TEST_SOURCE_DIR};PERL=${PERL_EXECUTABLE}" | ||
| 863 | WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}) | ||
| 864 | endif() | ||
| 865 | |||
| 847 | # ssl_versions | 866 | # ssl_versions |
| 848 | add_executable(ssl_versions ssl_versions.c) | 867 | add_executable(ssl_versions ssl_versions.c) |
| 849 | target_link_libraries(ssl_versions ${OPENSSL_TEST_LIBS}) | 868 | target_link_libraries(ssl_versions ${OPENSSL_TEST_LIBS}) |
diff --git a/tests/Makefile.am b/tests/Makefile.am index 9b58724..9d30359 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am | |||
| @@ -104,6 +104,7 @@ EXTRA_DIST = CMakeLists.txt | |||
| 104 | DISTCLEANFILES = pidwraptest.txt | 104 | DISTCLEANFILES = pidwraptest.txt |
| 105 | 105 | ||
| 106 | distclean-local: | 106 | distclean-local: |
| 107 | rm -rf ssl_verify-certs | ||
| 107 | rm -rf x509_verify-certs | 108 | rm -rf x509_verify-certs |
| 108 | 109 | ||
| 109 | # XXX - should probably be in their own static lib | 110 | # XXX - should probably be in their own static lib |
| @@ -855,6 +856,16 @@ TESTS += ssl_verify_param | |||
| 855 | check_PROGRAMS += ssl_verify_param | 856 | check_PROGRAMS += ssl_verify_param |
| 856 | ssl_verify_param_SOURCES = ssl_verify_param.c | 857 | ssl_verify_param_SOURCES = ssl_verify_param.c |
| 857 | 858 | ||
| 859 | # ssl_verify | ||
| 860 | if HAVE_PERL_IO_SOCKET_SSL_UTILS | ||
| 861 | TESTS += ssl_verify.sh | ||
| 862 | check_PROGRAMS += ssl_verify | ||
| 863 | endif | ||
| 864 | ssl_verify_SOURCES = ssl_verify.c | ||
| 865 | EXTRA_DIST += ssl_verify.sh | ||
| 866 | EXTRA_DIST += ssl_verify.bat | ||
| 867 | EXTRA_DIST += create-libressl-test-certs.pl | ||
| 868 | |||
| 858 | # ssl_versions | 869 | # ssl_versions |
| 859 | TESTS += ssl_versions | 870 | TESTS += ssl_versions |
| 860 | check_PROGRAMS += ssl_versions | 871 | check_PROGRAMS += ssl_versions |
diff --git a/tests/ssl_verify.bat b/tests/ssl_verify.bat new file mode 100644 index 0000000..1b8c1dc --- /dev/null +++ b/tests/ssl_verify.bat | |||
| @@ -0,0 +1,42 @@ | |||
| 1 | @echo off | ||
| 2 | setlocal | ||
| 3 | |||
| 4 | :: Copyright (c) 2026 Kenjiro Nakayama | ||
| 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 | if "%~1" == "" exit /b 1 | ||
| 19 | |||
| 20 | set "ssl_verify_bin=%~1" | ||
| 21 | set "ssl_verify_bin=%ssl_verify_bin:/=\%" | ||
| 22 | if not exist "%ssl_verify_bin%" exit /b 1 | ||
| 23 | |||
| 24 | if not defined srcdir set "srcdir=." | ||
| 25 | if not defined PERL set "PERL=perl" | ||
| 26 | |||
| 27 | set "workdir=ssl_verify-certs" | ||
| 28 | if exist "%workdir%" rmdir /s /q "%workdir%" | ||
| 29 | mkdir "%workdir%" || exit /b 1 | ||
| 30 | pushd "%workdir%" || exit /b 1 | ||
| 31 | |||
| 32 | set "status=1" | ||
| 33 | "%PERL%" "%srcdir%/create-libressl-test-certs.pl" | ||
| 34 | if errorlevel 1 goto cleanup | ||
| 35 | |||
| 36 | "%ssl_verify_bin%" | ||
| 37 | set "status=%errorlevel%" | ||
| 38 | |||
| 39 | :cleanup | ||
| 40 | popd | ||
| 41 | rmdir /s /q "%workdir%" | ||
| 42 | exit /b %status% | ||
diff --git a/tests/ssl_verify.sh b/tests/ssl_verify.sh new file mode 100755 index 0000000..bb090db --- /dev/null +++ b/tests/ssl_verify.sh | |||
| @@ -0,0 +1,67 @@ | |||
| 1 | #!/bin/sh | ||
| 2 | # | ||
| 3 | # Copyright (c) 2026 Kenjiro Nakayama | ||
| 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 | if [ -z "$srcdir" ]; then | ||
| 20 | srcdir=. | ||
| 21 | fi | ||
| 22 | |||
| 23 | if [ -z "$PERL" ]; then | ||
| 24 | PERL=perl | ||
| 25 | fi | ||
| 26 | |||
| 27 | case "$srcdir" in | ||
| 28 | /*) | ||
| 29 | create_certs="$srcdir/create-libressl-test-certs.pl" | ||
| 30 | ;; | ||
| 31 | *) | ||
| 32 | create_certs="`pwd`/$srcdir/create-libressl-test-certs.pl" | ||
| 33 | ;; | ||
| 34 | esac | ||
| 35 | |||
| 36 | if [ $# -ge 1 ]; then | ||
| 37 | verify_bin=$1 | ||
| 38 | else | ||
| 39 | verify_bin="`pwd`/ssl_verify" | ||
| 40 | if [ -e ./ssl_verify.exe ]; then | ||
| 41 | verify_bin="`pwd`/ssl_verify.exe" | ||
| 42 | fi | ||
| 43 | fi | ||
| 44 | |||
| 45 | workdir=ssl_verify-certs | ||
| 46 | |||
| 47 | cleanup() | ||
| 48 | { | ||
| 49 | rm -rf "$workdir" | ||
| 50 | } | ||
| 51 | trap cleanup EXIT | ||
| 52 | |||
| 53 | rm -rf "$workdir" | ||
| 54 | mkdir "$workdir" | ||
| 55 | |||
| 56 | ( | ||
| 57 | cd "$workdir" | ||
| 58 | "$PERL" "$create_certs" | ||
| 59 | case "$verify_bin" in | ||
| 60 | *.js) | ||
| 61 | node "$verify_bin" | ||
| 62 | ;; | ||
| 63 | *) | ||
| 64 | "$verify_bin" | ||
| 65 | ;; | ||
| 66 | esac | ||
| 67 | ) | ||
| @@ -336,6 +336,8 @@ for i in `find $libcrypto_regress -name '*.[ch]'`; do | |||
| 336 | done | 336 | done |
| 337 | # x509/verify.c collides with x509/bettertls/verify.c when flattened. | 337 | # x509/verify.c collides with x509/bettertls/verify.c when flattened. |
| 338 | $CP $libcrypto_regress/x509/verify.c tests/x509_verify.c | 338 | $CP $libcrypto_regress/x509/verify.c tests/x509_verify.c |
| 339 | # Do not copy x509/bettertls/verify.c: it requires the large bettertls | ||
| 340 | # certificate corpus, which is not worth bundling in release tarballs. | ||
| 339 | $CP $libcrypto_regress/evp/evptests.txt tests | 341 | $CP $libcrypto_regress/evp/evptests.txt tests |
| 340 | $CP $libcrypto_regress/aead/*.txt tests | 342 | $CP $libcrypto_regress/aead/*.txt tests |
| 341 | $CP $libcrypto_regress/ct/ctlog.conf tests | 343 | $CP $libcrypto_regress/ct/ctlog.conf tests |
| @@ -371,6 +373,10 @@ for i in `find $libssl_regress -name '*.c'`; do | |||
| 371 | done | 373 | done |
| 372 | # tls/tlstest.c collides with libtls/tls/tlstest.c when flattened. | 374 | # tls/tlstest.c collides with libtls/tls/tlstest.c when flattened. |
| 373 | $CP $libssl_regress/tls/tlstest.c tests/ssl_tlstest.c | 375 | $CP $libssl_regress/tls/tlstest.c tests/ssl_tlstest.c |
| 376 | # verify/verify.c collides with other verify tests when flattened. | ||
| 377 | rm -f tests/verify.c | ||
| 378 | $CP $libssl_regress/verify/verify.c tests/ssl_verify.c | ||
| 379 | $CP $libssl_regress/verify/create-libressl-test-certs.pl tests | ||
| 374 | $CP $libssl_regress/unit/tests.h tests | 380 | $CP $libssl_regress/unit/tests.h tests |
| 375 | $CP $libssl_regress/certs/*.pem tests | 381 | $CP $libssl_regress/certs/*.pem tests |
| 376 | $CP $libssl_regress/certs/*.crl tests | 382 | $CP $libssl_regress/certs/*.crl tests |
