From e83bbc48abcc77c3128e304df6de27a4621ed3b7 Mon Sep 17 00:00:00 2001 From: Tony Kelman <tony@kelman.net> Date: Sat, 12 Nov 2016 02:41:48 -0800 Subject: [PATCH] Build mbedtls from source on Travis (#133) * Revert "Revert "travis: Test mbedtls too"" This reverts commit c4c60eac5ca756333034b07dd9e0b97741493ed3. * travis: Build mbedtls from source on Travis Use TOOLCHAIN_OPTION when calling cmake on mbedtls * tests: only run DSA tests for non-mbedtls crypto backends --- .travis.yml | 19 +++++++++++++++++++ tests/CMakeLists.txt | 7 ++++++- 2 files changed, 25 insertions(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 6d2d28d..9a3115c 100644 --- a/.travis.yml +++ b/.travis.yml @@ -54,6 +54,10 @@ env: - ADDRESS_SIZE=64 CRYPTO_BACKEND=Libgcrypt BUILD_SHARED_LIBS=ON ENABLE_ZLIB_COMPRESSION=OFF - ADDRESS_SIZE=64 CRYPTO_BACKEND=Libgcrypt BUILD_SHARED_LIBS=OFF ENABLE_ZLIB_COMPRESSION=ON - ADDRESS_SIZE=64 CRYPTO_BACKEND=Libgcrypt BUILD_SHARED_LIBS=ON ENABLE_ZLIB_COMPRESSION=ON + - ADDRESS_SIZE=64 CRYPTO_BACKEND=mbedTLS BUILD_SHARED_LIBS=OFF ENABLE_ZLIB_COMPRESSION=OFF + - ADDRESS_SIZE=64 CRYPTO_BACKEND=mbedTLS BUILD_SHARED_LIBS=ON ENABLE_ZLIB_COMPRESSION=OFF + - ADDRESS_SIZE=64 CRYPTO_BACKEND=mbedTLS BUILD_SHARED_LIBS=OFF ENABLE_ZLIB_COMPRESSION=ON + - ADDRESS_SIZE=64 CRYPTO_BACKEND=mbedTLS BUILD_SHARED_LIBS=ON ENABLE_ZLIB_COMPRESSION=ON - ADDRESS_SIZE=32 CRYPTO_BACKEND=OpenSSL BUILD_SHARED_LIBS=OFF ENABLE_ZLIB_COMPRESSION=OFF - ADDRESS_SIZE=32 CRYPTO_BACKEND=OpenSSL BUILD_SHARED_LIBS=ON ENABLE_ZLIB_COMPRESSION=OFF - ADDRESS_SIZE=32 CRYPTO_BACKEND=OpenSSL BUILD_SHARED_LIBS=OFF ENABLE_ZLIB_COMPRESSION=ON @@ -62,6 +66,11 @@ env: - ADDRESS_SIZE=32 CRYPTO_BACKEND=Libgcrypt BUILD_SHARED_LIBS=ON ENABLE_ZLIB_COMPRESSION=OFF - ADDRESS_SIZE=32 CRYPTO_BACKEND=Libgcrypt BUILD_SHARED_LIBS=OFF ENABLE_ZLIB_COMPRESSION=ON - ADDRESS_SIZE=32 CRYPTO_BACKEND=Libgcrypt BUILD_SHARED_LIBS=ON ENABLE_ZLIB_COMPRESSION=ON + - ADDRESS_SIZE=32 CRYPTO_BACKEND=mbedTLS BUILD_SHARED_LIBS=OFF ENABLE_ZLIB_COMPRESSION=OFF + - ADDRESS_SIZE=32 CRYPTO_BACKEND=mbedTLS BUILD_SHARED_LIBS=ON ENABLE_ZLIB_COMPRESSION=OFF + - ADDRESS_SIZE=32 CRYPTO_BACKEND=mbedTLS BUILD_SHARED_LIBS=OFF ENABLE_ZLIB_COMPRESSION=ON + - ADDRESS_SIZE=32 CRYPTO_BACKEND=mbedTLS BUILD_SHARED_LIBS=ON ENABLE_ZLIB_COMPRESSION=ON + before_install: # Fix issue with chrome and 32-bit multilib @@ -76,6 +85,16 @@ before_install: - if [ $ADDRESS_SIZE = '64' ]; then sudo apt-get install -y libssl-dev; fi - if [ $ADDRESS_SIZE = '64' ]; then sudo apt-get install -y libgcrypt11-dev; fi - if [ $ADDRESS_SIZE = '32' ]; then export TOOLCHAIN_OPTION="-DCMAKE_TOOLCHAIN_FILE=../cmake/Toolchain-Linux-32.cmake"; fi + - if [ $CRYPTO_BACKEND = 'mbedTLS' ]; then + MBEDTLSVER=mbedtls-2.4.0; + curl -L https://github.com/ARMmbed/mbedtls/archive/$MBEDTLSVER.tar.gz | tar -xzf -; + cd mbedtls-$MBEDTLSVER; + cmake $TOOLCHAIN_OPTION -DUSE_SHARED_MBEDTLS_LIBRARY=ON -DCMAKE_INSTALL_PREFIX:PATH=../usr .; + make -j3 install; + cd ..; + export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$PWD/usr/lib; + export TOOLCHAIN_OPTION="$TOOLCHAIN_OPTION -DCMAKE_PREFIX_PATH=$PWD/usr"; + fi install: - mkdir bin diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index bd0f903..1f5a79f 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -60,11 +60,16 @@ set(TESTS password_auth_fails_with_wrong_username public_key_auth_fails_with_wrong_key public_key_auth_succeeds_with_correct_rsa_key - public_key_auth_succeeds_with_correct_dsa_key keyboard_interactive_auth_fails_with_wrong_response keyboard_interactive_auth_succeeds_with_correct_response ) +if(NOT CRYPTO_BACKEND STREQUAL "mbedTLS") + list(APPEND TESTS + public_key_auth_succeeds_with_correct_dsa_key + ) +endif() + add_library(openssh_fixture STATIC openssh_fixture.h openssh_fixture.c) target_link_libraries(openssh_fixture ${LIBRARIES}) target_include_directories(openssh_fixture PRIVATE "${CMAKE_CURRENT_BINARY_DIR}")