From 2b93ccb3934f080da6b1706e977a1bf992f98cd7 Mon Sep 17 00:00:00 2001 From: Jason Rhinelander Date: Sun, 2 Feb 2020 16:34:51 -0400 Subject: [PATCH] Bump libsodium required version to 1.0.18 We use crypto_core_ed25519_scalar_mul which is only exported by libsodium >= 1.0.18. --- Makefile | 2 +- cmake/DownloadLibSodium.cmake | 16 ++++++++-------- crypto/CMakeLists.txt | 6 +++--- readme.md | 2 +- readme_es.md | 3 ++- 5 files changed, 15 insertions(+), 14 deletions(-) diff --git a/Makefile b/Makefile index 0ad4bc737..1d90d7231 100644 --- a/Makefile +++ b/Makefile @@ -95,7 +95,7 @@ CROSS ?= OFF SHARED_LIB ?= OFF # enable generating coverage COVERAGE ?= OFF -# allow downloading libsodium if >= 1.0.17 not installed +# allow downloading libsodium if >= 1.0.18 not installed DOWNLOAD_SODIUM ?= OFF COVERAGE_OUTDIR ?= "$(TMPDIR)/lokinet-coverage" diff --git a/cmake/DownloadLibSodium.cmake b/cmake/DownloadLibSodium.cmake index c6d77e335..ea78905ff 100644 --- a/cmake/DownloadLibSodium.cmake +++ b/cmake/DownloadLibSodium.cmake @@ -1,7 +1,7 @@ set(LIBSODIUM_PREFIX ${CMAKE_BINARY_DIR}/libsodium) -set(LIBSODIUM_SRC ${LIBSODIUM_PREFIX}/libsodium-1.0.17) -set(LIBSODIUM_TARBALL ${LIBSODIUM_PREFIX}/libsodium-1.0.17.tar.gz) -set(LIBSODIUM_URL https://github.com/jedisct1/libsodium/releases/download/1.0.17/libsodium-1.0.17.tar.gz) +set(LIBSODIUM_SRC ${LIBSODIUM_PREFIX}/libsodium-1.0.18) +set(LIBSODIUM_TARBALL ${LIBSODIUM_PREFIX}/libsodium-1.0.18.tar.gz) +set(LIBSODIUM_URL https://github.com/jedisct1/libsodium/releases/download/1.0.18/libsodium-1.0.18.tar.gz) if(SODIUM_TARBALL_URL) # make a build time override of the tarball url so we can fetch it if the original link goes away set(LIBSODIUM_URL ${SODIUM_TARBALL_URL}) @@ -10,13 +10,13 @@ set(SODIUM_PRETEND_TO_BE_CONFIGURED ON) file(DOWNLOAD ${LIBSODIUM_URL} ${LIBSODIUM_TARBALL} - EXPECTED_HASH SHA512=7cc9e4f11e656008ce9dff735acea95acbcb91ae4936de4d26f7798093766a77c373e9bd4a7b45b60ef8a11de6c55bc8dcac13bebf8c23c671d0536430501da1 + EXPECTED_HASH SHA512=17e8638e46d8f6f7d024fe5559eccf2b8baf23e143fadd472a7d29d228b186d86686a5e6920385fe2020729119a5f12f989c3a782afbd05a8db4819bb18666ef SHOW_PROGRESS) execute_process(COMMAND tar -xzf ${LIBSODIUM_TARBALL} -C ${LIBSODIUM_PREFIX}) if(WIN32) - message("patch -p0 -d ${LIBSODIUM_SRC} < ${CMAKE_SOURCE_DIR}/llarp/win32/libsodium-1.0.17-win32.patch") - execute_process(COMMAND "patch -p0 -d ${LIBSODIUM_SRC} < ${CMAKE_SOURCE_DIR}/llarp/win32/libsodium-1.0.17-win32.patch") + message("patch -p0 -d ${LIBSODIUM_SRC} < ${CMAKE_SOURCE_DIR}/llarp/win32/libsodium-1.0.18-win32.patch") + execute_process(COMMAND "patch -p0 -d ${LIBSODIUM_SRC} < ${CMAKE_SOURCE_DIR}/llarp/win32/libsodium-1.0.18-win32.patch") endif() add_library(sodium_vendor ${LIBSODIUM_SRC}/src/libsodium/crypto_aead/aes256gcm/aesni/aead_aes256gcm_aesni.c @@ -284,9 +284,9 @@ target_compile_definitions(sodium_vendor # Variables that need to be exported to version.h.in set(VERSION_ORIG "${VERSION}") # an included module sets things in the calling scope :( -set(VERSION 1.0.17) +set(VERSION 1.0.18) set(SODIUM_LIBRARY_VERSION_MAJOR 10) -set(SODIUM_LIBRARY_VERSION_MINOR 2) +set(SODIUM_LIBRARY_VERSION_MINOR 3) configure_file( ${LIBSODIUM_SRC}/src/libsodium/include/sodium/version.h.in diff --git a/crypto/CMakeLists.txt b/crypto/CMakeLists.txt index feafa2fea..5b4db3606 100644 --- a/crypto/CMakeLists.txt +++ b/crypto/CMakeLists.txt @@ -66,19 +66,19 @@ target_link_libraries(${CRYPTOGRAPHY_LIB} PRIVATE cryptography_avx_lib) option(DOWNLOAD_SODIUM "Allow libsodium to be downloaded and built locally if not found on the system" OFF) -find_package(Sodium 1.0.17) +find_package(Sodium 1.0.18) if(sodium_FOUND) target_include_directories(${CRYPTOGRAPHY_LIB} PUBLIC ${sodium_INCLUDE_DIR}) target_include_directories(cryptography_avx_lib PUBLIC ${sodium_INCLUDE_DIR}) target_link_libraries(${CRYPTOGRAPHY_LIB} PUBLIC ${sodium_LIBRARY_RELEASE}) elseif(DOWNLOAD_SODIUM) - message(STATUS "Sodium >= 1.0.17 not found, but DOWNLOAD_SODIUM specified, so downloading it") + message(STATUS "Sodium >= 1.0.18 not found, but DOWNLOAD_SODIUM specified, so downloading it") include(DownloadLibSodium) target_link_libraries(${CRYPTOGRAPHY_LIB} PUBLIC sodium_vendor) target_link_libraries(cryptography_avx_lib PUBLIC sodium_vendor) else() - message(FATAL_ERROR "Could not find libsodium >= 1.0.17; either install it on your system or use -DDOWNLOAD_SODIUM=ON to download and build an internal copy") + message(FATAL_ERROR "Could not find libsodium >= 1.0.18; either install it on your system or use -DDOWNLOAD_SODIUM=ON to download and build an internal copy") endif() target_include_directories(${CRYPTOGRAPHY_LIB} PUBLIC "${CMAKE_CURRENT_SOURCE_DIR}/libntrup/include") diff --git a/readme.md b/readme.md index 9a82e8628..a9c9ced3d 100644 --- a/readme.md +++ b/readme.md @@ -70,7 +70,7 @@ Build requirements: * C++ 14 capable C++ compiler * gcovr (if generating test coverage with gcc) * libuv >= 1.27.0 -* libsodium >= 1.0.17 +* libsodium >= 1.0.18 * libcurl ### Linux diff --git a/readme_es.md b/readme_es.md index 741f640db..94f03a2b7 100644 --- a/readme_es.md +++ b/readme_es.md @@ -70,7 +70,8 @@ Requerimientos de compilaciĆ³n: * Compilador C++ que pueda usar C++ 17 * gcovr (para generar la covertura de prueba en gcc) * libuv >= 1.27.0 -* libsodium +* libsodium >= 1.0.18 +* libcurl ### Linux