Fix CharSections DBC layout and Warden SHA1 hash computation

CharSections fields were mapped incorrectly (Variation/Color at 4-5,
textures at 6-8) — corrected to textures at 4-6, Flags at 7,
Variation at 8, Color at 9. Fixed in both dbc_layout.cpp and all
expansion JSON configs. Also fix Warden HASH_REQUEST to SHA1 over
seed+moduleImage instead of just seed.
This commit is contained in:
Kelsi 2026-02-14 18:35:08 -08:00
parent c2467cf2fc
commit 0ef4af9c99
6 changed files with 17 additions and 12 deletions

View file

@ -2281,9 +2281,13 @@ void GameHandler::handleWardenData(network::Packet& packet) {
break;
}
// SHA1 fallback (unlikely to work for vanilla modules, but log for debugging)
// SHA1(seed + moduleImage) — the server verifies this against its own copy
{
auto hash = auth::Crypto::sha1(seed);
std::vector<uint8_t> hashInput;
hashInput.insert(hashInput.end(), seed.begin(), seed.end());
hashInput.insert(hashInput.end(), wardenModuleData_.begin(), wardenModuleData_.end());
auto hash = auth::Crypto::sha1(hashInput);
LOG_INFO("Warden: SHA1 fallback hash over ", hashInput.size(), " bytes (seed+module)");
std::vector<uint8_t> resp;
resp.push_back(0x04);
resp.insert(resp.end(), hash.begin(), hash.end());