⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 encryptdeshashmodule.h

📁 五行MMORPG引擎系统V1.0
💻 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 + -