SA-MP/saco/archive/TinyEncrypt.h
2024-05-29 16:32:30 +08:00

40 lines
698 B
C++

#pragma once
#include <windows.h>
#define TEA_KEY_SIZE 16
class CTinyEncrypt
{
private:
static DWORD ms_dwRounds;
static DWORD ms_dwInitDelta;
static DWORD ms_dwInitSum;
static BOOL ms_bInitDone;
DWORD m_pdwKey[TEA_KEY_SIZE/sizeof(DWORD)];
#ifdef ARCTOOL
void EncryptBlock(DWORD &dwV0, DWORD &dwV1);
#endif
void DecryptBlock(DWORD &dwV0, DWORD &dwV1);
public:
CTinyEncrypt(void);
~CTinyEncrypt(void);
void SetKey(BYTE* pbKey, BYTE bytXORKey);
#ifdef ARCTOOL
void LoadKey(PCHAR szFileName);
void WriteKey(PCHAR szFileName);
void WriteCHeaderFile(PCHAR szFileName);
void EncryptData(DWORD dwLength, BYTE* pbData);
#endif
void DecryptData(DWORD dwLength, BYTE* pbData);
};