diff options
author | Shauren <shauren.trinity@gmail.com> | 2022-09-06 12:51:08 +0200 |
---|---|---|
committer | Shauren <shauren.trinity@gmail.com> | 2022-09-06 12:51:08 +0200 |
commit | b8f18fad29df98d5e8dee1ba28cd5f01fbdf9832 (patch) | |
tree | edc41a74a43855ce71ddfb75442795a2f15d8f84 /src | |
parent | 0a496d1f2768e9b6f9d6825c5dd35a162b42a308 (diff) |
Core/Crypto: Remove support for OpenSSL 1.0
Diffstat (limited to 'src')
-rw-r--r-- | src/common/Cryptography/BigNumber.cpp | 32 | ||||
-rw-r--r-- | src/common/Cryptography/CryptoHash.h | 5 | ||||
-rw-r--r-- | src/common/Cryptography/OpenSSLCrypto.cpp | 47 |
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); |