aboutsummaryrefslogtreecommitdiff
path: root/src/communication.cc
diff options
context:
space:
mode:
authorfusion32 <marcopuzziello@gmail.com>2025-07-03 10:10:27 -0300
committerfusion32 <marcopuzziello@gmail.com>2025-07-03 10:46:43 -0300
commite65dc561acab7a9e49f59777f16cb040c574c64d (patch)
tree2206c066b97b1948a4b98647c91a369d3b9863c8 /src/communication.cc
parente782274ade8d7307e157a997d6ac3bcaa4130024 (diff)
downloadgame-e65dc561acab7a9e49f59777f16cb040c574c64d.tar.gz
game-e65dc561acab7a9e49f59777f16cb040c574c64d.zip
implement `crypto.cc` with OpenSSL + fix config loading
I considered reversing the original `vlong` implementation but OpenSSL is just simpler, more secure, and most importantly, is already there. I also made it so the key is now stored in a PEM file (`tibia.pem`) so it can be easily swapped without re-compiling. This was the last piece to build and run a working executable, except that we now need to implement a query manager for the server to communicate with. I was able to fix a small problem with loading the config before hitting the problem with the query manager, which was expected. The next task should be getting a query manager up and running before starting phase two of upgrading and fixing the server itself.
Diffstat (limited to 'src/communication.cc')
-rw-r--r--src/communication.cc14
1 files changed, 3 insertions, 11 deletions
diff --git a/src/communication.cc b/src/communication.cc
index 9f0e6e5..a15e20a 100644
--- a/src/communication.cc
+++ b/src/communication.cc
@@ -23,16 +23,6 @@
#define MAX_COMMUNICATION_THREADS 1100
#define COMMUNICATION_THREAD_STACK_SIZE ((int)KB(64))
-static const char RSA_PRIME_P[] =
- "1201758001370723323398753778257470257713354828752713123415294815"
- "0506251412291888866940292054989907714155267326586216043845592229"
- "084368540020196135619327879";
-
-static const char RSA_PRIME_Q[] =
- "1189892136861686835188050824611210139447876026576932541274639840"
- "5473436969889506919017477758618276066588858607419440134394668095"
- "105156501566867770737187273";
-
static int TERMINALVERSION[3] = {770, 770, 770};
static int TCPSocket;
static ThreadHandle AcceptorThread;
@@ -1533,7 +1523,9 @@ void InitCommunication(void){
AcceptorThreadPID = 0;
ActiveConnections = 0;
QueryManagerConnectionPool.init();
- PrivateKey.init(RSA_PRIME_P, RSA_PRIME_Q);
+
+ // TODO(fusion): This is arbitrary, should probably be set in the config.
+ PrivateKey.initFromFile("tibia.pem");
OpenSocket();
if(TCPSocket == -1){