📄 encryptdeshashmodule.h
字号:
// EncryptDESHashModule.h: interface for the CEncryptDESHashModule class.
/*/////////////////////////////////////////////////////////////////////////////
李亦
2006.06.
/*//////////////////////////////////////////////////////////////////////////////
#if !defined(_ENCRYPTDESHASHMODULE_H_)
#define _ENCRYPTDESHASHMODULE_H_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
#ifndef __INC_ENCRYPTION_H
#include "server/encrypt/EncryptEngine.h"
#endif
namespace CS
{
class CEncryptDESHashModule
{
typedef struct
{
BYTE kn[16][8]; // 8 6-bit subkeys for each of 16 initialized by des_setkey()
} DESHASH_DATA;
static DWORD sp[8][64]; // Combined S and P boxes
static BYTE iperm[16][16][8]; // Initial permutations
static BYTE fperm[16][16][8]; // Final permutations
static int bytebit[8];//= { 0200,0100,040,020,010,04,02,01 };
static int nibblebit[4];// = { 010,04,02,01 };
static BYTE ip[64];
static BYTE fp[64];
static BYTE pc1[56];
static BYTE totrot[16];
static BYTE pc2[48];
static BYTE si[8][64];
static BYTE p32i[32];
static void perminit (BYTE perm[16][16][8], BYTE p[64]);
static void spinit ();
static void des_permute (BYTE *inblock, BYTE perm[16][16][8], BYTE *outblock);
static DWORD f (DWORD r, BYTE subkey[8]);
static void des_round (int num, DWORD *block, BYTE kn[16][8]);
static void des_dedes (BYTE *block, BYTE kn[16][8]);
static void des_setkey (BYTE *key, BYTE kn[16][8]);
static void des_str_to_key (BYTE *str, BYTE *key);
public:
static int RPGAPI2 Insert(void);
static int RPGAPI2 Remove(void);
static char * RPGAPI2 Query(void);
static void * RPGAPI2 Startup(void);
static int RPGAPI2 Shutdown(void *pInternal);
static int RPGAPI2 SetEncryptKey(void *pInternal, char *svKey);
static int RPGAPI2 SetDecryptKey(void *pInternal, char *svKey);
static char * RPGAPI2 GetEncryptKey(void *pInternal);
static char * RPGAPI2 GetDecryptKey(void *pInternal);
static BYTE * RPGAPI2 Encrypt(void *pInternal, BYTE *pBuffer,int nBufLen,int *pnOutBufLen);
static BYTE * RPGAPI2 Decrypt(void *pInternal, BYTE *pBuffer,int nBufLen,int *pnOutBufLen);
static int RPGAPI2 CreateNewKeys(void *pInternal);
static void RPGAPI2 Free(void *pInternal, BYTE *pBuffer);
public:
CS_ENCRYPTHANDLER m_encryptEngine;
static CS_ENCRYPTHANDLER *GetEncryptEngine(void);
public:
CEncryptDESHashModule();
~CEncryptDESHashModule();
#ifndef BIG_ENDIAN
// Byte swap a long
static DWORD byteswap(DWORD x);
#endif
};
};//namespace CS
#endif // !defined(_ENCRYPTDESHASHMODULE_H_)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -