From a1ee2fd9d2940fdf8814edc51e60e287c332b409 Mon Sep 17 00:00:00 2001 From: XMRig Date: Sun, 29 Jun 2025 12:28:35 +0700 Subject: [PATCH] Improved LibreSSL support. --- cmake/os.cmake | 4 ++++ src/base/kernel/Platform_unix.cpp | 8 ++++---- src/base/net/tls/TlsContext.cpp | 12 ++++++------ src/version.h | 2 ++ 4 files changed, 16 insertions(+), 10 deletions(-) diff --git a/cmake/os.cmake b/cmake/os.cmake index 8f70e9f4..74961192 100644 --- a/cmake/os.cmake +++ b/cmake/os.cmake @@ -17,6 +17,8 @@ else() set(XMRIG_OS_LINUX ON) elseif(CMAKE_SYSTEM_NAME STREQUAL FreeBSD OR CMAKE_SYSTEM_NAME STREQUAL DragonFly) set(XMRIG_OS_FREEBSD ON) + elseif(CMAKE_SYSTEM_NAME STREQUAL OpenBSD) + set(XMRIG_OS_OPENBSD ON) endif() endif() @@ -43,6 +45,8 @@ elseif(XMRIG_OS_UNIX) add_definitions(-DXMRIG_OS_LINUX) elseif (XMRIG_OS_FREEBSD) add_definitions(-DXMRIG_OS_FREEBSD) + elseif (XMRIG_OS_OPENBSD) + add_definitions(-DXMRIG_OS_OPENBSD) endif() endif() diff --git a/src/base/kernel/Platform_unix.cpp b/src/base/kernel/Platform_unix.cpp index 4ffee214..0bfa4ff8 100644 --- a/src/base/kernel/Platform_unix.cpp +++ b/src/base/kernel/Platform_unix.cpp @@ -1,6 +1,6 @@ /* XMRig - * Copyright (c) 2018-2021 SChernykh - * Copyright (c) 2016-2021 XMRig , + * Copyright (c) 2018-2025 SChernykh + * Copyright (c) 2016-2025 XMRig , * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -71,11 +71,11 @@ char *xmrig::Platform::createUserAgent() #ifndef XMRIG_FEATURE_HWLOC -#ifdef __DragonFly__ +#if defined(__DragonFly__) || defined(XMRIG_OS_OPENBSD) bool xmrig::Platform::setThreadAffinity(uint64_t cpu_id) { - return true; + return false; } #else diff --git a/src/base/net/tls/TlsContext.cpp b/src/base/net/tls/TlsContext.cpp index 54b904ea..410059fb 100644 --- a/src/base/net/tls/TlsContext.cpp +++ b/src/base/net/tls/TlsContext.cpp @@ -1,7 +1,7 @@ /* XMRig * Copyright (c) 2018 Lee Clagett - * Copyright (c) 2018-2023 SChernykh - * Copyright (c) 2016-2023 XMRig , + * Copyright (c) 2018-2025 SChernykh + * Copyright (c) 2016-2025 XMRig , * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -45,7 +45,7 @@ namespace xmrig { // https://wiki.openssl.org/index.php/Diffie-Hellman_parameters -#if OPENSSL_VERSION_NUMBER < 0x30000000L || defined(LIBRESSL_VERSION_NUMBER) +#if OPENSSL_VERSION_NUMBER < 0x30000000L || (defined(LIBRESSL_VERSION_NUMBER) && !defined(LIBRESSL_HAS_TLS1_3)) static DH *get_dh2048() { static unsigned char dhp_2048[] = { @@ -152,7 +152,7 @@ bool xmrig::TlsContext::load(const TlsConfig &config) SSL_CTX_set_options(m_ctx, SSL_OP_NO_SSLv2 | SSL_OP_NO_SSLv3); SSL_CTX_set_options(m_ctx, SSL_OP_CIPHER_SERVER_PREFERENCE); -# if OPENSSL_VERSION_NUMBER >= 0x1010100fL && !defined(LIBRESSL_VERSION_NUMBER) +# if OPENSSL_VERSION_NUMBER >= 0x1010100fL || defined(LIBRESSL_HAS_TLS1_3) SSL_CTX_set_max_early_data(m_ctx, 0); # endif @@ -180,7 +180,7 @@ bool xmrig::TlsContext::setCipherSuites(const char *ciphersuites) return true; } -# if OPENSSL_VERSION_NUMBER >= 0x1010100fL && !defined(LIBRESSL_VERSION_NUMBER) +# if OPENSSL_VERSION_NUMBER >= 0x1010100fL || defined(LIBRESSL_HAS_TLS1_3) if (SSL_CTX_set_ciphersuites(m_ctx, ciphersuites) == 1) { return true; } @@ -194,7 +194,7 @@ bool xmrig::TlsContext::setCipherSuites(const char *ciphersuites) bool xmrig::TlsContext::setDH(const char *dhparam) { -# if OPENSSL_VERSION_NUMBER < 0x30000000L || defined(LIBRESSL_VERSION_NUMBER) +# if OPENSSL_VERSION_NUMBER < 0x30000000L || (defined(LIBRESSL_VERSION_NUMBER) && !defined(LIBRESSL_HAS_TLS1_3)) DH *dh = nullptr; if (dhparam != nullptr) { diff --git a/src/version.h b/src/version.h index d5ff72a4..a6773b14 100644 --- a/src/version.h +++ b/src/version.h @@ -64,6 +64,8 @@ # define APP_OS "Linux" #elif defined XMRIG_OS_FREEBSD # define APP_OS "FreeBSD" +#elif defined XMRIG_OS_OPENBSD +# define APP_OS "OpenBSD" #else # define APP_OS "Unknown OS" #endif