Files
Sun1602/Server/MolaCrypt/SRC.MOLA/BBTanStream/BBTanStream.h
T
2022-10-26 12:25:11 +08:00

57 lines
1.4 KiB
C++

#pragma once
union uRND_CONVKEY
{
DWORD KEYBLOCK;
BYTE RNDBLOCK[4];
WORD WORDBLOCK[2];
};
#define DWORD2uRND( val ) (*(uRND_CONVKEY*)&(val))
typedef BOOL (*ConvertBBTanHandler)( uRND_CONVKEY& rKEY, BYTE* pBYTE, WORD wRemain, BYTE& rbyLinkedNo );
//¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦´
// <BBTanStream>
class BBTanStream
{
typedef STLX_MAP<BYTE, ConvertBBTanHandler> BBTAN_MAP;
typedef BBTAN_MAP::iterator BBTAN_MAP_IT;
public: BBTanStream();
~BBTanStream();
public: VOID Init();
VOID Init_T1();
VOID Init_T2();
VOID Encode( uRND_CONVKEY& rKEY, BYTE* pBYTE, WORD wMSG_BASE, BYTE& rbyLinkedNo );
VOID Decode( uRND_CONVKEY& rKEY, BYTE* pBYTE, WORD wMSG_BASE, BYTE& rbyLinkedNo );
VOID Release();
private: VOID Converter( BBTAN_MAP& rStarter, uRND_CONVKEY& rKEY, BYTE* pBYTE, WORD wMSG_BASE, BYTE& rbyLinkedNo );
//private: uRND_CONVKEY m_SenderKEY;
// uRND_CONVKEY m_ReceiverKEY;
private: BBTAN_MAP m_Sender;
BBTAN_MAP m_Receiver;
};
#include "BBTanStream.InterHdr.h"
#include "BBTanStream.RndList.T1.hxx"
#include "BBTanStream.RndList.T2.hxx"
//#if SERVER_CODE
#define BBTAN_STREAM_TYPE1NAME "BBTanStream.T1.cpp"
#define BBTAN_STREAM_TYPE2NAME "BBTanStream.T2.cpp"
//#else
//
//#define BBTAN_STREAM_TYPE1NAME "BBTanStream.T2.cpp"
//#define BBTAN_STREAM_TYPE2NAME "BBTanStream.T1.cpp"
//
//#endif //
#define ARRAY4_RNDIDX( val ) ((val)%4)