void WardenWin::Init(WorldSession* pClient, BigNumber* K) { Client = pClient; // Generate Warden Key SHA1Randx WK(K->AsByteArray(), K->GetNumBytes()); WK.generate(InputKey, 16); WK.generate(OutputKey, 16); /* Seed: 4D808D2C77D905C41A6380EC08586AFE (0x05 packet) Hash: 568C054C781A972A6037A2290C22B52571A06F4E (0x04 packet) Module MD5: 79C0768D657977D697E10BAD956CCED1 New Client Key: 7F 96 EE FD A5 B6 3D 20 A4 DF 8E 00 CB F4 83 04 New Server Key: C2 B7 AD ED FC CC A9 C2 BF B3 F8 56 02 BA 80 9B */ uint8 mod_seed[16] = { 0x4D, 0x80, 0x8D, 0x2C, 0x77, 0xD9, 0x05, 0xC4, 0x1A, 0x63, 0x80, 0xEC, 0x08, 0x58, 0x6A, 0xFE }; memcpy(Seed, mod_seed, 16); iCrypto.Init(InputKey); oCrypto.Init(OutputKey); sLog.outDebug("Server side warden for client %u initializing...", pClient->GetAccountId()); sLog.outDebug(" C->S Key: %s", ByteArrayToHexStr(InputKey, 16).c_str()); sLog.outDebug(" S->C Key: %s", ByteArrayToHexStr(OutputKey, 16).c_str()); sLog.outDebug(" Seed: %s", ByteArrayToHexStr(Seed, 16).c_str()); sLog.outDebug("Loading Module..."); Module = GetModuleForClient(Client); sLog.outDebug(" Module Key: %s", ByteArrayToHexStr(Module->Key, 16).c_str()); sLog.outDebug(" Module ID: %s", ByteArrayToHexStr(Module->ID, 16).c_str()); RequestModule(); }
void WardenMac::Init(WorldSession *pClient, BigNumber *K) { Client = pClient; // Generate Warden Key SHA1Randx WK(K->AsByteArray(), K->GetNumBytes()); WK.generate(InputKey, 16); WK.generate(OutputKey, 16); /* Seed: 4D808D2C77D905C41A6380EC08586AFE (0x05 packet) Hash: <?> (0x04 packet) Module MD5: 0DBBF209A27B1E279A9FEC5C168A15F7 New Client Key: <?> New Server Key: <?> */ uint8 mod_seed[16] = { 0x4D, 0x80, 0x8D, 0x2C, 0x77, 0xD9, 0x05, 0xC4, 0x1A, 0x63, 0x80, 0xEC, 0x08, 0x58, 0x6A, 0xFE }; memcpy(Seed, mod_seed, 16); iCrypto.Init(InputKey); oCrypto.Init(OutputKey); sLog.outDebug("Server side warden for client %u initializing...", pClient->GetAccountId()); sLog.outDebug(" C->S Key: %s", ByteArrayToHexStr(InputKey, 16).c_str()); sLog.outDebug(" S->C Key: %s", ByteArrayToHexStr(OutputKey, 16).c_str()); sLog.outDebug(" Seed: %s", ByteArrayToHexStr(Seed, 16).c_str()); sLog.outDebug("Loading Module..."); Module = GetModuleForClient(Client); sLog.outDebug(" Module Key: %s", ByteArrayToHexStr(Module->Key, 16).c_str()); sLog.outDebug(" Module ID: %s", ByteArrayToHexStr(Module->ID, 16).c_str()); RequestModule(); }
void WardenMac::Init(WorldSession* pClient, BigNumber* K) { Client = pClient; // Generate Warden Key SHA1Randx WK(K->AsByteArray(), K->GetNumBytes()); WK.generate(InputKey, 16); WK.generate(OutputKey, 16); uint8 mod_seed[16] = { 0x4D, 0x80, 0x8D, 0x2C, 0x77, 0xD9, 0x05, 0xC4, 0x1A, 0x63, 0x80, 0xEC, 0x08, 0x58, 0x6A, 0xFE }; memcpy(Seed, mod_seed, 16); iCrypto.Init(InputKey); oCrypto.Init(OutputKey); sLog->outStaticDebug("Server side warden for client %u initializing...", pClient->GetAccountId()); //PrintHexArray(" C->S Key: ", InputKey, 16, true); //PrintHexArray(" S->C Key: ", OutputKey, 16, true); //PrintHexArray(" Seed: ", Seed, 16, true); sLog->outStaticDebug("Loading Module..."); Module = GetModuleForClient(); PrintHexArray(" Module Key: ", Module->Key, 16, true); PrintHexArray(" Module ID: ", Module->ID, 16, true); RequestModule(); }
void WardenWin::Init(WorldSession* session, BigNumber *k) { _session = session; // Generate Warden Key SHA1Randx WK(k->AsByteArray().get(), k->GetNumBytes()); WK.Generate(_inputKey, 16); WK.Generate(_outputKey, 16); memcpy(_seed, Module.Seed, 16); _inputCrypto.Init(_inputKey); _outputCrypto.Init(_outputKey); #if defined(ENABLE_EXTRAS) && defined(ENABLE_EXTRA_LOGS) sLog->outDebug(LOG_FILTER_WARDEN, "Server side warden for client %u initializing...", session->GetAccountId()); sLog->outDebug(LOG_FILTER_WARDEN, "C->S Key: %s", ByteArrayToHexStr(_inputKey, 16).c_str()); sLog->outDebug(LOG_FILTER_WARDEN, "S->C Key: %s", ByteArrayToHexStr(_outputKey, 16).c_str()); sLog->outDebug(LOG_FILTER_WARDEN, " Seed: %s", ByteArrayToHexStr(_seed, 16).c_str()); sLog->outDebug(LOG_FILTER_WARDEN, "Loading Module..."); #endif _module = GetModuleForClient(); #if defined(ENABLE_EXTRAS) && defined(ENABLE_EXTRA_LOGS) sLog->outDebug(LOG_FILTER_WARDEN, "Module Key: %s", ByteArrayToHexStr(_module->Key, 16).c_str()); sLog->outDebug(LOG_FILTER_WARDEN, "Module ID: %s", ByteArrayToHexStr(_module->Id, 16).c_str()); #endif RequestModule(); }
void WardenMac::Init(WorldSession* pClient, BigNumber* K) { _session = pClient; // Generate Warden Key SessionKeyGenerator<SHA1Hash> WK(K->AsByteArray().get(), K->GetNumBytes()); WK.Generate(_inputKey, 16); WK.Generate(_outputKey, 16); /* Seed: 4D808D2C77D905C41A6380EC08586AFE (0x05 packet) Hash: <?> (0x04 packet) Module MD5: 0DBBF209A27B1E279A9FEC5C168A15F7 New Client Key: <?> New Cerver Key: <?> */ uint8 mod_seed[16] = { 0x4D, 0x80, 0x8D, 0x2C, 0x77, 0xD9, 0x05, 0xC4, 0x1A, 0x63, 0x80, 0xEC, 0x08, 0x58, 0x6A, 0xFE }; memcpy(_seed, mod_seed, 16); _inputCrypto.Init(_inputKey); _outputCrypto.Init(_outputKey); TC_LOG_DEBUG("warden", "Server side warden for client %u initializing...", pClient->GetAccountId()); TC_LOG_DEBUG("warden", "C->S Key: %s", ByteArrayToHexStr(_inputKey, 16).c_str()); TC_LOG_DEBUG("warden", "S->C Key: %s", ByteArrayToHexStr(_outputKey, 16).c_str()); TC_LOG_DEBUG("warden", " Seed: %s", ByteArrayToHexStr(_seed, 16).c_str()); TC_LOG_DEBUG("warden", "Loading Module..."); _module = GetModuleForClient(); TC_LOG_DEBUG("warden", "Module Key: %s", ByteArrayToHexStr(_module->Key, 16).c_str()); TC_LOG_DEBUG("warden", "Module ID: %s", ByteArrayToHexStr(_module->Id, 16).c_str()); RequestModule(); }
void WardenWin::Init(WorldSession* session, BigNumber* k) { _session = session; // Generate Warden Key SHA1Randx WK(k->AsByteArray().get(), k->GetNumBytes()); WK.Generate(_inputKey, 16); WK.Generate(_outputKey, 16); memcpy(_seed, Module.Seed, 16); _inputCrypto.Init(_inputKey); _outputCrypto.Init(_outputKey); TC_LOG_DEBUG("warden", "Server side warden for client %u initializing...", session->GetAccountId()); TC_LOG_DEBUG("warden", "C->S Key: %s", ByteArrayToHexStr(_inputKey, 16).c_str()); TC_LOG_DEBUG("warden", "S->C Key: %s", ByteArrayToHexStr(_outputKey, 16).c_str()); TC_LOG_DEBUG("warden", " Seed: %s", ByteArrayToHexStr(_seed, 16).c_str()); TC_LOG_DEBUG("warden", "Loading Module..."); _module = GetModuleForClient(); TC_LOG_DEBUG("warden", "Module Key: %s", ByteArrayToHexStr(_module->Key, 16).c_str()); TC_LOG_DEBUG("warden", "Module ID: %s", ByteArrayToHexStr(_module->Id, 16).c_str()); RequestModule(); }