Files
2022-10-26 12:25:11 +08:00

83 lines
5.7 KiB
C

#define FI_TYPE_MAX_DBL_HEXA_ROUND() (32)
#define FI_ODD_NUMBER_DBL_HEX1 ((CATEGORY_ODD_NUMBER)%7000)
#define FI_ODD_NUMBER_DBL_HEX2 ((PROTOCOL_ODD_NUMBER)%7000)
//BU64DECLARE ODD_HEX1_RANDOM_NUMBER = USIGNED64_T( FI_ODD_NUMBER_HEX1 + (((C2S_HIGH_VERSION_NO)*100) + ((C2S_MIDDLE_VERSION_NO)*10)) );
//BU64DECLARE ODD_HEX2_RANDOM_NUMBER = USIGNED64_T( FI_ODD_NUMBER_HEX2 - (((C2S_HIGH_VERSION_NO)*10) + ((C2S_MIDDLE_VERSION_NO)*100)) );
BU64DECLARE FI_ODD_DBL_HEX1_RANDOM_NUMBER = USIGNED64_T( -FI_ODD_NUMBER_DBL_HEX1 - (C2S_HIGH_VERSION_NO)*100 - ((C2S_MIDDLE_VERSION_NO)*100) );
BU64DECLARE FI_ODD_DBL_HEX2_RANDOM_NUMBER = USIGNED64_T( -FI_ODD_NUMBER_DBL_HEX2 - (C2S_HIGH_VERSION_NO)*10 - ((C2S_MIDDLE_VERSION_NO)*100) );
#define FI_KEY_DBL_HEX1_GENERATOR(num) ( (BYTE)0x1F&( ((FI_ODD_DBL_HEX1_RANDOM_NUMBER)*(num))%(FI_TYPE_MAX_DBL_HEXA_ROUND()) ) )
#define FI_KEY_DBL_HEX2_GENERATOR(num) ( (BYTE)0x1F&( ((FI_ODD_DBL_HEX2_RANDOM_NUMBER)*(num))%(FI_TYPE_MAX_DBL_HEXA_ROUND()) ) )
BU64DECLARE FI_INDEX_DBL_HEX_RANDOM_NUMBER = USIGNED64_T( -(FI_ODD_DBL_HEX1_RANDOM_NUMBER)*(FI_ODD_DBL_HEX2_RANDOM_NUMBER) );
#define FI_INDEX_DBL_HEX_GENERATOR(num) ( (BYTE)( ((FI_INDEX_DBL_HEX_RANDOM_NUMBER)*(num))%(FI_TYPE_MAX_DBL_HEXA_ROUND()) ) )
//////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////
#define FI_TYPE_MAX_HEXA_ROUND() (16)
#define FI_ODD_NUMBER_HEX1 ((CATEGORY_ODD_NUMBER)%5000)
#define FI_ODD_NUMBER_HEX2 ((PROTOCOL_ODD_NUMBER)%5000)
//BU64DECLARE ODD_HEX1_RANDOM_NUMBER = USIGNED64_T( FI_ODD_NUMBER_HEX1 + (((C2S_HIGH_VERSION_NO)*100) + ((C2S_MIDDLE_VERSION_NO)*10)) );
//BU64DECLARE ODD_HEX2_RANDOM_NUMBER = USIGNED64_T( FI_ODD_NUMBER_HEX2 - (((C2S_HIGH_VERSION_NO)*10) + ((C2S_MIDDLE_VERSION_NO)*100)) );
BU64DECLARE FI_ODD_HEX1_RANDOM_NUMBER = USIGNED64_T( -FI_ODD_NUMBER_HEX1 - (C2S_HIGH_VERSION_NO)*100 - ((C2S_MIDDLE_VERSION_NO)*100) );
BU64DECLARE FI_ODD_HEX2_RANDOM_NUMBER = USIGNED64_T( -FI_ODD_NUMBER_HEX2 - (C2S_HIGH_VERSION_NO)*10 - ((C2S_MIDDLE_VERSION_NO)*100) );
#define FI_KEY_HEX1_GENERATOR(num) ( (BYTE)0xF&( ((FI_ODD_HEX1_RANDOM_NUMBER)*(num))%(FI_TYPE_MAX_HEXA_ROUND()) ) )
#define FI_KEY_HEX2_GENERATOR(num) ( (BYTE)0xF&( ((FI_ODD_HEX2_RANDOM_NUMBER)*(num))%(FI_TYPE_MAX_HEXA_ROUND()) ) )
BU64DECLARE FI_INDEX_HEX_RANDOM_NUMBER = USIGNED64_T( -(FI_ODD_HEX1_RANDOM_NUMBER)*(FI_ODD_HEX2_RANDOM_NUMBER) );
#define FI_INDEX_HEX_GENERATOR(num) ( (BYTE)( ((FI_INDEX_HEX_RANDOM_NUMBER)*(num))%(FI_TYPE_MAX_HEXA_ROUND()) ) )
//////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////
// OCTET (8) °³ ·£´ý
#define FI_TYPE_MAX_OCT_ROUND() (8)
#define FI_ODD_NUMBER_OCT1 ((CATEGORY_ODD_NUMBER)%6000)
#define FI_ODD_NUMBER_OCT2 ((PROTOCOL_ODD_NUMBER)%6000)
BU64DECLARE FI_ODD_OCT1_RANDOM_NUMBER = USIGNED64_T( -FI_ODD_NUMBER_OCT1 - (C2S_HIGH_VERSION_NO)*100 - ((C2S_MIDDLE_VERSION_NO)*100) );
BU64DECLARE FI_ODD_OCT2_RANDOM_NUMBER = USIGNED64_T( -FI_ODD_NUMBER_OCT2 - (C2S_HIGH_VERSION_NO)*100 - ((C2S_MIDDLE_VERSION_NO)*10) );
#define FI_KEY_OCT1_GENERATOR(num) ( (BYTE)0x7&( ((FI_ODD_OCT1_RANDOM_NUMBER)*(num))%(FI_TYPE_MAX_OCT_ROUND()) ) )
#define FI_KEY_OCT2_GENERATOR(num) ( (BYTE)0x7&( ((FI_ODD_OCT2_RANDOM_NUMBER)*(num))%(FI_TYPE_MAX_OCT_ROUND()) ) )
BU64DECLARE FI_INDEX_OCT_RANDOM_NUMBER = USIGNED64_T( -(FI_ODD_OCT1_RANDOM_NUMBER)*(FI_ODD_OCT2_RANDOM_NUMBER) );
#define FI_INDEX_OCT_GENERATOR(num) ( (BYTE)( ((INDEX_OCT_RANDOM_NUMBER)*(num))%(FI_TYPE_MAX_OCT_ROUND()) ) )
//////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////
// DWORD (4) °³ ·£´ý
#define FI_TYPE_MAX_DWORD_ROUND() (4)
#define FI_ODD_NUMBER_DWORD1 ((CATEGORY_ODD_NUMBER)%3000)
#define FI_ODD_NUMBER_DWORD2 ((PROTOCOL_ODD_NUMBER)%3000)
BU64DECLARE FI_ODD_DWORD1_RANDOM_NUMBER = USIGNED64_T( -FI_ODD_NUMBER_DWORD1 - ((C2S_HIGH_VERSION_NO)*10) - ((C2S_MIDDLE_VERSION_NO)*10) );
BU64DECLARE FI_ODD_DWORD2_RANDOM_NUMBER = USIGNED64_T( -FI_ODD_NUMBER_DWORD2 - ((C2S_HIGH_VERSION_NO)*100) - ((C2S_MIDDLE_VERSION_NO)*100) );
#define FI_KEY_DWORD1_GENERATOR(num) ( (BYTE)0x3&( ((FI_ODD_DWORD1_RANDOM_NUMBER)*(num))%(FI_TYPE_MAX_DWORD_ROUND()) ) )
#define FI_KEY_DWORD2_GENERATOR(num) ( (BYTE)0x3&( ((FI_ODD_DWORD2_RANDOM_NUMBER)*(num))%(FI_TYPE_MAX_DWORD_ROUND()) ) )
BU64DECLARE FI_INDEX_DWORD_RANDOM_NUMBER = USIGNED64_T( -(FI_ODD_DWORD1_RANDOM_NUMBER)*(FI_ODD_DWORD2_RANDOM_NUMBER) );
#define FI_INDEX_DWORD_GENERATOR(num) ( (BYTE)( ((FI_INDEX_DWORD_RANDOM_NUMBER)*(num))%(FI_TYPE_MAX_DWORD_ROUND()) ) )
//////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////
// WORD (2) °³ ·£´ý
#define FI_TYPE_MAX_WORD_ROUND() (2)
#define FI_ODD_NUMBER_WORD1 ((CATEGORY_ODD_NUMBER)%3000)
#define FI_ODD_NUMBER_WORD2 ((PROTOCOL_ODD_NUMBER)%3000)
BU64DECLARE FI_ODD_WORD1_RANDOM_NUMBER = USIGNED64_T( -FI_ODD_NUMBER_WORD1 - ((C2S_HIGH_VERSION_NO)*10) - ((C2S_MIDDLE_VERSION_NO)*100) );
BU64DECLARE FI_ODD_WORD2_RANDOM_NUMBER = USIGNED64_T( -FI_ODD_NUMBER_WORD2 - ((C2S_HIGH_VERSION_NO)*100) - ((C2S_MIDDLE_VERSION_NO)*10) );
#define FI_KEY_WORD1_GENERATOR(num) ( (BYTE)0x1&( ((FI_ODD_WORD1_RANDOM_NUMBER)*(num))%(FI_TYPE_MAX_WORD_ROUND()) ) )
#define FI_KEY_WORD2_GENERATOR(num) ( (BYTE)0x1&( ((FI_ODD_WORD2_RANDOM_NUMBER)*(num))%(FI_TYPE_MAX_WORD_ROUND()) ) )
BU64DECLARE FI_INDEX_WORD_RANDOM_NUMBER = USIGNED64_T( -(FI_ODD_WORD1_RANDOM_NUMBER)*(FI_ODD_WORD2_RANDOM_NUMBER) );
#define FI_INDEX_WORD_GENERATOR(num) ( (BYTE)( ((FI_INDEX_WORD_RANDOM_NUMBER)*(num))%(FI_TYPE_MAX_WORD_ROUND()) ) )