mirror of
https://github.com/entropy-z/Kharon
synced 2026-06-06 15:34:34 +00:00
39 lines
964 B
C++
39 lines
964 B
C++
#include <Kharon.h>
|
|
|
|
#if ENCRYPTION_TYPE == ENCRYPTION_XOR
|
|
|
|
static UCHAR Key[] = XOR_KEY;
|
|
|
|
static INT XorDecrypt(
|
|
const UCHAR *Encrypted,
|
|
INT EncryptedLen,
|
|
const UCHAR *Key,
|
|
INT KeyLen,
|
|
UCHAR *Output
|
|
) {
|
|
if (!Encrypted || !Key || !Output || EncryptedLen <= 0 || KeyLen <= 0)
|
|
return -1;
|
|
|
|
for (INT i = 0; i < EncryptedLen; i++)
|
|
Output[i] = Encrypted[i] ^ Key[i % KeyLen];
|
|
|
|
return EncryptedLen;
|
|
}
|
|
|
|
auto Encryption::Decrypt( const UCHAR* Encrypted, INT EncryptedLen, UCHAR* Output ) -> INT {
|
|
return XorDecrypt(Encrypted, EncryptedLen, Key, sizeof(Key), Output);
|
|
}
|
|
|
|
#elif ENCRYPTION_TYPE == ENCRYPTION_NONE
|
|
|
|
auto Encryption::Decrypt( const UCHAR* Encrypted, INT EncryptedLen, UCHAR* Output ) -> INT {
|
|
if (!Encrypted || !Output || EncryptedLen <= 0)
|
|
return -1;
|
|
|
|
for (INT i = 0; i < EncryptedLen; i++)
|
|
Output[i] = Encrypted[i];
|
|
|
|
return EncryptedLen;
|
|
}
|
|
|
|
#endif |