aboutsummaryrefslogtreecommitdiff
path: root/src/server
diff options
context:
space:
mode:
authorShauren <shauren.trinity@gmail.com>2022-05-03 17:03:57 +0200
committerShauren <shauren.trinity@gmail.com>2022-06-16 12:37:00 +0200
commit77091ed599bf34782e26ede0c6b6cbd44c23c52d (patch)
treee2172d0303f543ca9f974c3c746b62d127e7124f /src/server
parente23a9943dd24cc8333f121c65f4ece969cc6be3d (diff)
Core/Crypto: Switch away from most deprecated openssl functions and removed upper version limit
(cherry picked from commit bc87f7b337154e683369a3790ee8fd1a7d4cba98)
Diffstat (limited to 'src/server')
-rw-r--r--src/server/authserver/Main.cpp2
-rw-r--r--src/server/game/Warden/Warden.cpp31
-rw-r--r--src/server/game/Warden/WardenMac.cpp9
-rw-r--r--src/server/worldserver/Main.cpp2
4 files changed, 12 insertions, 32 deletions
diff --git a/src/server/authserver/Main.cpp b/src/server/authserver/Main.cpp
index af0acb97236..145ec132966 100644
--- a/src/server/authserver/Main.cpp
+++ b/src/server/authserver/Main.cpp
@@ -121,7 +121,7 @@ int main(int argc, char** argv)
[]()
{
TC_LOG_INFO("server.authserver", "Using configuration file %s.", sConfigMgr->GetFilename().c_str());
- TC_LOG_INFO("server.authserver", "Using SSL version: %s (library: %s)", OPENSSL_VERSION_TEXT, SSLeay_version(SSLEAY_VERSION));
+ TC_LOG_INFO("server.authserver", "Using SSL version: %s (library: %s)", OPENSSL_VERSION_TEXT, OpenSSL_version(OPENSSL_VERSION));
TC_LOG_INFO("server.authserver", "Using Boost version: %i.%i.%i", BOOST_VERSION / 100000, BOOST_VERSION / 100 % 1000, BOOST_VERSION % 100);
}
);
diff --git a/src/server/game/Warden/Warden.cpp b/src/server/game/Warden/Warden.cpp
index 8f109e387df..2f974860185 100644
--- a/src/server/game/Warden/Warden.cpp
+++ b/src/server/game/Warden/Warden.cpp
@@ -21,15 +21,12 @@
#include "Log.h"
#include "Opcodes.h"
#include "ByteBuffer.h"
+#include "CryptoHash.h"
#include "GameTime.h"
#include "World.h"
#include "Util.h"
#include "Warden.h"
#include "AccountMgr.h"
-
-#include <openssl/sha.h>
-#include <openssl/md5.h>
-
#include <charconv>
Warden::Warden() : _session(nullptr), _checkTimer(10 * IN_MILLISECONDS), _clientResponseTimer(0),
@@ -47,10 +44,7 @@ void Warden::MakeModuleForClient()
TC_LOG_DEBUG("warden", "Make module for client");
InitializeModuleForClient(_module.emplace());
- MD5_CTX ctx;
- MD5_Init(&ctx);
- MD5_Update(&ctx, _module->CompressedData, _module->CompressedSize);
- MD5_Final(_module->Id.data(), &ctx);
+ _module->Id = Trinity::Crypto::MD5::GetDigestOf(_module->CompressedData, _module->CompressedSize);
}
void Warden::SendModuleToClient()
@@ -160,28 +154,19 @@ bool Warden::IsValidCheckSum(uint32 checksum, uint8 const* data, const uint16 le
}
}
-struct keyData {
- union
- {
- struct
- {
- uint8 bytes[20];
- } bytes;
-
- struct
- {
- uint32 ints[5];
- } ints;
- };
+union keyData
+{
+ std::array<uint8, 20> bytes;
+ std::array<uint32, 5> ints;
};
uint32 Warden::BuildChecksum(uint8 const* data, uint32 length)
{
keyData hash;
- SHA1(data, length, hash.bytes.bytes);
+ hash.bytes = Trinity::Crypto::SHA1::GetDigestOf(data, size_t(length));
uint32 checkSum = 0;
for (uint8 i = 0; i < 5; ++i)
- checkSum = checkSum ^ hash.ints.ints[i];
+ checkSum = checkSum ^ hash.ints[i];
return checkSum;
}
diff --git a/src/server/game/Warden/WardenMac.cpp b/src/server/game/Warden/WardenMac.cpp
index b2242123818..65f60670771 100644
--- a/src/server/game/Warden/WardenMac.cpp
+++ b/src/server/game/Warden/WardenMac.cpp
@@ -18,6 +18,7 @@
#include "WardenMac.h"
#include "ByteBuffer.h"
#include "Common.h"
+#include "CryptoHash.h"
#include "GameTime.h"
#include "Log.h"
#include "Opcodes.h"
@@ -28,7 +29,6 @@
#include "WorldPacket.h"
#include "WorldSession.h"
-#include <openssl/md5.h>
#include <array>
WardenMac::WardenMac() : Warden() { }
@@ -231,12 +231,7 @@ void WardenMac::HandleCheckResult(ByteBuffer &buff)
//found = true;
}
- MD5_CTX ctx;
- MD5_Init(&ctx);
- MD5_Update(&ctx, str.c_str(), str.size());
- std::array<uint8, 16> ourMD5Hash;
- MD5_Final(ourMD5Hash.data(), &ctx);
-
+ std::array<uint8, 16> ourMD5Hash = Trinity::Crypto::MD5::GetDigestOf(str);
std::array<uint8, 16> theirsMD5Hash;
buff.read(theirsMD5Hash);
diff --git a/src/server/worldserver/Main.cpp b/src/server/worldserver/Main.cpp
index f370881001e..1c97d92b8f3 100644
--- a/src/server/worldserver/Main.cpp
+++ b/src/server/worldserver/Main.cpp
@@ -201,7 +201,7 @@ extern int main(int argc, char** argv)
[]()
{
TC_LOG_INFO("server.worldserver", "Using configuration file %s.", sConfigMgr->GetFilename().c_str());
- TC_LOG_INFO("server.worldserver", "Using SSL version: %s (library: %s)", OPENSSL_VERSION_TEXT, SSLeay_version(SSLEAY_VERSION));
+ TC_LOG_INFO("server.worldserver", "Using SSL version: %s (library: %s)", OPENSSL_VERSION_TEXT, OpenSSL_version(OPENSSL_VERSION));
TC_LOG_INFO("server.worldserver", "Using Boost version: %i.%i.%i", BOOST_VERSION / 100000, BOOST_VERSION / 100 % 1000, BOOST_VERSION % 100);
}
);