From de13141b68d00ab09300d9cfce271d633fea39cf Mon Sep 17 00:00:00 2001 From: Sergeanur Date: Fri, 8 Jan 2021 22:39:25 +0200 Subject: [PATCH] CKeyGen fixes --- src/core/KeyGen.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/core/KeyGen.cpp b/src/core/KeyGen.cpp index c4652bd4..c54e390c 100644 --- a/src/core/KeyGen.cpp +++ b/src/core/KeyGen.cpp @@ -79,7 +79,7 @@ CKeyGen::GetKey(const char *str, int size) { uint32 key = 0xffffffff; for (int i = 0; i < size; i++) - key ^= keyTable[str[i]]; + key = keyTable[(key ^ str[i]) & 0xFF] ^ (key >> 8); return key; } @@ -88,7 +88,7 @@ CKeyGen::GetKey(const char *str) { uint32 key = 0xffffffff; while(*str != '\0') - key ^= keyTable[*(str++)]; + key = keyTable[(key ^ *(str++)) & 0xFF] ^ (key >> 8); return key; } @@ -97,7 +97,7 @@ CKeyGen::GetUppercaseKey(const char *str) { uint32 key = 0xffffffff; while (*str != '\0') - key ^= keyTable[toupper(*(str++))]; + key = keyTable[(key ^ toupper(*(str++))) & 0xFF] ^ (key >> 8); return key; } @@ -105,6 +105,6 @@ uint32 CKeyGen::AppendStringToKey(uint32 key, const char *str) { while (*str != '\0') - key ^= keyTable[*(str++)]; + key = keyTable[(key ^ *(str++)) & 0xFF] ^ (key >> 8); return key; } \ No newline at end of file