mirror of
https://foundry.openuru.org/gitblit/r/CWE-ou-minkata.git
synced 2025-07-14 10:37:41 -04:00
Swap DH key bytes to maintain compatability with PC's server.ini format
This commit is contained in:
@ -1062,6 +1062,14 @@ PF_CONSOLE_CMD(
|
||||
*
|
||||
***/
|
||||
|
||||
//TODO: Fix Plasma to use OpenSSL's byte order (or better yet, to use OpenSSL),
|
||||
// so this hack isn't needed
|
||||
static void swap_key_bytes(byte keyData[])
|
||||
{
|
||||
for (size_t i = 0; i < (kNetDiffieHellmanKeyBits / 16); ++i)
|
||||
std::swap(keyData[i], keyData[ (kNetDiffieHellmanKeyBits / 8) - i - 1 ]);
|
||||
}
|
||||
|
||||
//============================================================================
|
||||
// Server group
|
||||
PF_CONSOLE_GROUP(Server)
|
||||
@ -1140,6 +1148,7 @@ PF_CONSOLE_CMD(
|
||||
|
||||
Base64Decode(hsStrlen((const char *)params[0]), (const char *)params[0],
|
||||
kNetDiffieHellmanKeyBits / 8, kAuthDhNData);
|
||||
swap_key_bytes(kAuthDhNData);
|
||||
}
|
||||
|
||||
//============================================================================
|
||||
@ -1158,6 +1167,7 @@ PF_CONSOLE_CMD(
|
||||
|
||||
Base64Decode(hsStrlen((const char *)params[0]), (const char *)params[0],
|
||||
kNetDiffieHellmanKeyBits / 8, kAuthDhXData);
|
||||
swap_key_bytes(kAuthDhXData);
|
||||
}
|
||||
|
||||
|
||||
@ -1193,6 +1203,7 @@ PF_CONSOLE_CMD(
|
||||
|
||||
Base64Decode(hsStrlen((const char *)params[0]), (const char *)params[0],
|
||||
kNetDiffieHellmanKeyBits / 8, kCsrDhNData);
|
||||
swap_key_bytes(kCsrDhNData);
|
||||
}
|
||||
|
||||
//============================================================================
|
||||
@ -1211,6 +1222,7 @@ PF_CONSOLE_CMD(
|
||||
|
||||
Base64Decode(hsStrlen((const char *)params[0]), (const char *)params[0],
|
||||
kNetDiffieHellmanKeyBits / 8, kCsrDhXData);
|
||||
swap_key_bytes(kCsrDhXData);
|
||||
}
|
||||
|
||||
|
||||
@ -1234,6 +1246,7 @@ PF_CONSOLE_CMD(
|
||||
|
||||
Base64Decode(hsStrlen((const char *)params[0]), (const char *)params[0],
|
||||
kNetDiffieHellmanKeyBits / 8, kGameDhNData);
|
||||
swap_key_bytes(kGameDhNData);
|
||||
}
|
||||
|
||||
//============================================================================
|
||||
@ -1252,6 +1265,7 @@ PF_CONSOLE_CMD(
|
||||
|
||||
Base64Decode(hsStrlen((const char *)params[0]), (const char *)params[0],
|
||||
kNetDiffieHellmanKeyBits / 8, kGameDhXData);
|
||||
swap_key_bytes(kGameDhXData);
|
||||
}
|
||||
|
||||
|
||||
@ -1287,6 +1301,7 @@ PF_CONSOLE_CMD(
|
||||
|
||||
Base64Decode(hsStrlen((const char *)params[0]), (const char *)params[0],
|
||||
kNetDiffieHellmanKeyBits / 8, kGateKeeperDhNData);
|
||||
swap_key_bytes(kGateKeeperDhNData);
|
||||
}
|
||||
|
||||
//============================================================================
|
||||
@ -1305,4 +1320,5 @@ PF_CONSOLE_CMD(
|
||||
|
||||
Base64Decode(hsStrlen((const char *)params[0]), (const char *)params[0],
|
||||
kNetDiffieHellmanKeyBits / 8, kGateKeeperDhXData);
|
||||
swap_key_bytes(kGateKeeperDhXData);
|
||||
}
|
||||
|
Reference in New Issue
Block a user