aboutsummaryrefslogtreecommitdiff
path: root/src/common
diff options
context:
space:
mode:
authorShauren <shauren.trinity@gmail.com>2022-09-06 12:51:08 +0200
committerShauren <shauren.trinity@gmail.com>2022-09-06 12:51:08 +0200
commitb8f18fad29df98d5e8dee1ba28cd5f01fbdf9832 (patch)
treeedc41a74a43855ce71ddfb75442795a2f15d8f84 /src/common
parent0a496d1f2768e9b6f9d6825c5dd35a162b42a308 (diff)
Core/Crypto: Remove support for OpenSSL 1.0
Diffstat (limited to 'src/common')
-rw-r--r--src/common/Cryptography/BigNumber.cpp32
-rw-r--r--src/common/Cryptography/CryptoHash.h5
-rw-r--r--src/common/Cryptography/OpenSSLCrypto.cpp47
3 files changed, 3 insertions, 81 deletions
diff --git a/src/common/Cryptography/BigNumber.cpp b/src/common/Cryptography/BigNumber.cpp
index 65f4bb5808a..6839cbc9255 100644
--- a/src/common/Cryptography/BigNumber.cpp
+++ b/src/common/Cryptography/BigNumber.cpp
@@ -56,20 +56,7 @@ void BigNumber::SetQword(uint64 val)
void BigNumber::SetBinary(uint8 const* bytes, int32 len, bool littleEndian)
{
if (littleEndian)
- {
-#if defined(OPENSSL_VERSION_NUMBER) && OPENSSL_VERSION_NUMBER < 0x10100000L
- uint8* array = new uint8[len];
-
- for (int i = 0; i < len; i++)
- array[i] = bytes[len - 1 - i];
-
- BN_bin2bn(array, len, _bn);
-
- delete[] array;
-#else
BN_lebin2bn(bytes, len, _bn);
-#endif
- }
else
BN_bin2bn(bytes, len, _bn);
}
@@ -196,27 +183,8 @@ bool BigNumber::IsNegative() const
void BigNumber::GetBytes(uint8* buf, size_t bufsize, bool littleEndian) const
{
-#if defined(OPENSSL_VERSION_NUMBER) && OPENSSL_VERSION_NUMBER < 0x10100000L
- int nBytes = GetNumBytes();
- ASSERT(nBytes >= 0, "Bignum has negative number of bytes (%d).", nBytes);
- std::size_t numBytes = static_cast<std::size_t>(nBytes);
-
- // too large to store
- ASSERT(numBytes <= bufsize, "Buffer of size %zu is too small to hold bignum with %zu bytes.\n", bufsize, numBytes);
-
- // If we need more bytes than length of BigNumber set the rest to 0
- if (numBytes < bufsize)
- memset((void*)buf, 0, bufsize);
-
- BN_bn2bin(_bn, buf + (bufsize - numBytes));
-
- // openssl's BN stores data internally in big endian format, reverse if little endian desired
- if (littleEndian)
- std::reverse(buf, buf + bufsize);
-#else
int res = littleEndian ? BN_bn2lebinpad(_bn, buf, bufsize) : BN_bn2binpad(_bn, buf, bufsize);
ASSERT(res > 0, "Buffer of size %zu is too small to hold bignum with %d bytes.\n", bufsize, BN_num_bytes(_bn));
-#endif
}
std::vector<uint8> BigNumber::ToByteVector(int32 minSize, bool littleEndian) const
diff --git a/src/common/Cryptography/CryptoHash.h b/src/common/Cryptography/CryptoHash.h
index a2cd393745e..e31578a8f46 100644
--- a/src/common/Cryptography/CryptoHash.h
+++ b/src/common/Cryptography/CryptoHash.h
@@ -34,13 +34,8 @@ namespace Trinity::Impl
{
typedef EVP_MD const* (*HashCreator)();
-#if defined(OPENSSL_VERSION_NUMBER) && OPENSSL_VERSION_NUMBER < 0x10100000L
- static EVP_MD_CTX* MakeCTX() noexcept { return EVP_MD_CTX_create(); }
- static void DestroyCTX(EVP_MD_CTX* ctx) { EVP_MD_CTX_destroy(ctx); }
-#else
static EVP_MD_CTX* MakeCTX() noexcept { return EVP_MD_CTX_new(); }
static void DestroyCTX(EVP_MD_CTX* ctx) { EVP_MD_CTX_free(ctx); }
-#endif
};
template <GenericHashImpl::HashCreator HashCreator, size_t DigestLength>
diff --git a/src/common/Cryptography/OpenSSLCrypto.cpp b/src/common/Cryptography/OpenSSLCrypto.cpp
index a515dca1c3d..9671fbe95bd 100644
--- a/src/common/Cryptography/OpenSSLCrypto.cpp
+++ b/src/common/Cryptography/OpenSSLCrypto.cpp
@@ -18,28 +18,7 @@
#include "OpenSSLCrypto.h"
#include <openssl/crypto.h>
-#if defined(OPENSSL_VERSION_NUMBER) && OPENSSL_VERSION_NUMBER < 0x1010000fL
-#include <vector>
-#include <thread>
-#include <mutex>
-
-std::vector<std::mutex*> cryptoLocks;
-void ValgrindRandomSetup();
-
-static void lockingCallback(int mode, int type, char const* /*file*/, int /*line*/)
-{
- if (mode & CRYPTO_LOCK)
- cryptoLocks[type]->lock();
- else
- cryptoLocks[type]->unlock();
-}
-
-static void threadIdCallback(CRYPTO_THREADID * id)
-{
- (void)id;
- CRYPTO_THREADID_set_numeric(id, std::hash<std::thread::id>()(std::this_thread::get_id()));
-}
-#elif OPENSSL_VERSION_NUMBER >= 0x30000000L
+#if OPENSSL_VERSION_NUMBER >= 0x30000000L
#include <openssl/provider.h>
OSSL_PROVIDER* LegacyProvider;
OSSL_PROVIDER* DefaultProvider;
@@ -51,19 +30,7 @@ void OpenSSLCrypto::threadsSetup([[maybe_unused]] boost::filesystem::path const&
ValgrindRandomSetup();
#endif
-#if defined(OPENSSL_VERSION_NUMBER) && OPENSSL_VERSION_NUMBER < 0x1010000fL
- cryptoLocks.resize(CRYPTO_num_locks());
- for(int i = 0 ; i < CRYPTO_num_locks(); ++i)
- {
- cryptoLocks[i] = new std::mutex();
- }
-
- (void)&threadIdCallback;
- CRYPTO_THREADID_set_callback(threadIdCallback);
-
- (void)&lockingCallback;
- CRYPTO_set_locking_callback(lockingCallback);
-#elif OPENSSL_VERSION_NUMBER >= 0x30000000L
+#if OPENSSL_VERSION_NUMBER >= 0x30000000L
#if TRINITY_PLATFORM == TRINITY_PLATFORM_WINDOWS
OSSL_PROVIDER_set_default_search_path(nullptr, providerModulePath.string().c_str());
#endif
@@ -74,15 +41,7 @@ void OpenSSLCrypto::threadsSetup([[maybe_unused]] boost::filesystem::path const&
void OpenSSLCrypto::threadsCleanup()
{
-#if defined(OPENSSL_VERSION_NUMBER) && OPENSSL_VERSION_NUMBER < 0x1010000fL
- CRYPTO_set_locking_callback(nullptr);
- CRYPTO_THREADID_set_callback(nullptr);
- for(int i = 0 ; i < CRYPTO_num_locks(); ++i)
- {
- delete cryptoLocks[i];
- }
- cryptoLocks.resize(0);
-#elif OPENSSL_VERSION_NUMBER >= 0x30000000L
+#if OPENSSL_VERSION_NUMBER >= 0x30000000L
OSSL_PROVIDER_unload(LegacyProvider);
OSSL_PROVIDER_unload(DefaultProvider);
OSSL_PROVIDER_set_default_search_path(nullptr, nullptr);