summaryrefslogtreecommitdiffstats
path: root/src/core/KeyGen.cpp
diff options
context:
space:
mode:
authorSergeanur <s.anureev@yandex.ua>2021-01-08 21:39:25 +0100
committerSergeanur <s.anureev@yandex.ua>2021-01-08 21:39:25 +0100
commitde13141b68d00ab09300d9cfce271d633fea39cf (patch)
treeae18b1fa1c0beafe8ecb9c8949adaadcd99777d9 /src/core/KeyGen.cpp
parentMerge branch 'miami' into lcs (diff)
downloadre3-de13141b68d00ab09300d9cfce271d633fea39cf.tar
re3-de13141b68d00ab09300d9cfce271d633fea39cf.tar.gz
re3-de13141b68d00ab09300d9cfce271d633fea39cf.tar.bz2
re3-de13141b68d00ab09300d9cfce271d633fea39cf.tar.lz
re3-de13141b68d00ab09300d9cfce271d633fea39cf.tar.xz
re3-de13141b68d00ab09300d9cfce271d633fea39cf.tar.zst
re3-de13141b68d00ab09300d9cfce271d633fea39cf.zip
Diffstat (limited to '')
-rw-r--r--src/core/KeyGen.cpp8
1 files 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