diff --git a/CMakeLists.txt b/CMakeLists.txt index cedc41eae07..0f253a6ec4c 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -18,11 +18,11 @@ set(CMAKE_CXX_STANDARD_REQUIRED ON) if(CMAKE_CXX_COMPILER_ID MATCHES "GNU") # GCC-specific fixes - add_compile_options(-Wno-unknown-pragmas -Wno-subobject-linkage) + add_compile_options(-Wno-unknown-pragmas -Wno-subobject-linkage -Wno-error=deprecated-declarations) # -Wno-subobject-linkage can be removed when we upgrade GCC version to at least 13.3 elseif(CMAKE_CXX_COMPILER_ID MATCHES "Clang") # Clang-specific fixes - add_compile_options(-Wno-unknown-warning-option) # Ignore unknown warning options + add_compile_options(-Wno-unknown-warning-option -Wno-error=deprecated-declarations) # Ignore unknown warning options elseif(MSVC) # MSVC-specific fixes add_compile_options(/wd4068) # Ignore unknown pragmas @@ -85,7 +85,7 @@ endif() ### include(deps/Boost) -find_package(OpenSSL 1.1.1 REQUIRED) +find_package(OpenSSL 3.6.0 REQUIRED) set_target_properties(OpenSSL::SSL PROPERTIES INTERFACE_COMPILE_DEFINITIONS OPENSSL_NO_SSL2 ) diff --git a/conan.lock b/conan.lock index 28bf67b1be8..44d61faad33 100644 --- a/conan.lock +++ b/conan.lock @@ -6,10 +6,10 @@ "sqlite3/3.49.1#8631739a4c9b93bd3d6b753bac548a63%1756234266.869", "soci/4.0.3#a9f8d773cd33e356b5879a4b0564f287%1756234262.318", "snappy/1.1.10#968fef506ff261592ec30c574d4a7809%1756234314.246", - "rocksdb/10.5.1#4a197eca381a3e5ae8adf8cffa5aacd0%1759820024.194", + "rocksdb/10.5.1#4a197eca381a3e5ae8adf8cffa5aacd0%1762797952.535", "re2/20230301#dfd6e2bf050eb90ddd8729cfb4c844a4%1756234257.976", "protobuf/3.21.12#d927114e28de9f4691a6bbcdd9a529d1%1756234251.614", - "openssl/3.5.4#a1d5835cc6ed5c5b8f3cd5b9b5d24205%1760106486.594", + "openssl/3.6.0#89e8af1d4a21afcac0557079d23d8890%1760031152.895", "nudb/2.0.9#c62cfd501e57055a7e0d8ee3d5e5427d%1756234237.107", "lz4/1.10.0#59fc63cac7f10fbe8e05c7e62c2f3504%1756234228.999", "libiconv/1.17#1e65319e945f2d31941a9d28cc13c058%1756223727.64", @@ -17,7 +17,7 @@ "libarchive/3.8.1#5cf685686322e906cb42706ab7e099a8%1756234256.696", "jemalloc/5.3.0#e951da9cf599e956cebc117880d2d9f8%1729241615.244", "grpc/1.50.1#02291451d1e17200293a409410d1c4e1%1756234248.958", - "doctest/2.4.12#eb9fb352fb2fdfc8abb17ec270945165%1749889324.069", + "doctest/2.4.12#eb9fb352fb2fdfc8abb17ec270945165%1762797941.757", "date/3.0.4#f74bbba5a08fa388256688743136cb6f%1756234217.493", "c-ares/1.34.5#b78b91e7cfb1f11ce777a285bbf169c6%1756234217.915", "bzip2/1.0.8#00b4a4658791c1f06914e087f0e792f5%1756234261.716", @@ -53,6 +53,9 @@ ], "lz4/[>=1.9.4 <2]": [ "lz4/1.10.0#59fc63cac7f10fbe8e05c7e62c2f3504" + ], + "sqlite3/3.44.2": [ + "sqlite3/3.49.1" ] }, "config_requires": [] diff --git a/conanfile.py b/conanfile.py index 41ec5d35f38..6b9b5e39f99 100644 --- a/conanfile.py +++ b/conanfile.py @@ -1,6 +1,7 @@ from conan import ConanFile, __version__ as conan_version from conan.tools.cmake import CMake, CMakeToolchain, cmake_layout import re +import subprocess class Xrpl(ConanFile): name = 'xrpl' @@ -27,7 +28,7 @@ class Xrpl(ConanFile): 'grpc/1.50.1', 'libarchive/3.8.1', 'nudb/2.0.9', - 'openssl/3.5.4', + 'openssl/3.6.0', 'soci/4.0.3', 'zlib/1.3.1', ] diff --git a/src/tests/libxrpl/basics/openssl.cpp b/src/tests/libxrpl/basics/openssl.cpp new file mode 100644 index 00000000000..6720bb4b408 --- /dev/null +++ b/src/tests/libxrpl/basics/openssl.cpp @@ -0,0 +1,62 @@ +//------------------------------------------------------------------------------ +/* + This file is part of rippled: https://github.com/ripple/rippled + Copyright (c) 2025 Ripple Labs Inc. + + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. + + THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + ANY SPECIAL , DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF + OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. +*/ +//============================================================================== + +#include +#include + +#include + +#include +#include +#include +#include +#include + +using namespace ripple; + +static std::vector const data = []() { + std::vector strV(pow(10, 5)); + std::random_device rd; + std::mt19937 gen(rd()); + std::uniform_int_distribution dis(32, 127); + for (size_t index = 0; index < strV.size(); ++index) + { + strV[index] = static_cast(dis(gen)); + } + return strV; +}(); + +TEST_SUITE_BEGIN("OpenSSL"); + +TEST_CASE("SingleHashFullSlice") +{ + Slice const s{data.data(), data.size()}; + auto hash = sha512Half(s); +} + +TEST_CASE("MultihashAllSlices") +{ + for (std::size_t i = 0; i < data.size(); ++i) + { + Slice s(&data[i], data.size() - i); + auto hash = sha512Half(s); + } +} + +TEST_SUITE_END();