-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathStrings Encryption.HPP
198 lines (189 loc) · 11 KB
/
Strings Encryption.HPP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
#pragma once
#include "Requirements.HPP"
#include "SeRnd.HPP" // #include SE_RND_HPP /* ".vcxproj" <PreprocessorDefinitions>SE_RND_HPP="$(SERND)";%(PreprocessorDefinitions)</PreprocessorDefinitions> */
template < int ... > struct SE_IDX_LST; template < typename, int > struct SE_APP;
template < int ... SE_LFT, int SE_RGT > struct SE_APP < ::SE_IDX_LST < SE_LFT ... >, SE_RGT > { typedef ::SE_IDX_LST < SE_LFT ..., SE_RGT > SE_RES; };
template < int SE_NUM > struct SE_CST_IDX_LST { typedef typename ::SE_APP < typename ::SE_CST_IDX_LST < SE_NUM - 1 > ::SE_RES, SE_NUM - 1 > ::SE_RES SE_RES; };
template < > struct SE_CST_IDX_LST < 0 > { typedef ::SE_IDX_LST < > SE_RES; }; template < typename SE_IDX_LST > struct SE_XOR_STR;
constexpr __forceinline char SE_ENC(char SE_CHR, int SE_WHR) noexcept { return SE_CHR ^ ::SE_RND[SE_WHR]; }
template < int ... SE_IDX > struct SE_XOR_STR < ::SE_IDX_LST < SE_IDX ... > > {
char SE_BFR[sizeof ... (SE_IDX) + ::SE_RND[sizeof ... (SE_IDX)]]{ };
constexpr __forceinline SE_XOR_STR(const char* SE_STR) noexcept : SE_BFR{ ::SE_ENC(SE_STR[SE_IDX], SE_IDX) ..., } { }
constexpr __forceinline ::std::string SE_DEC() noexcept {
for (SE_ITR = { }; SE_ITR < sizeof ... (SE_IDX); SE_ITR++) SE_BFR[SE_ITR] = SE_BFR[SE_ITR] ^ ::SE_RND[SE_ITR];
SE_BFR[sizeof ... (SE_IDX)] = { }; return SE_BFR;
} static inline int SE_ITR{ };
};
#ifndef NO_STRENC
# define XS(SE_STR) (::SE_XOR_STR < ::SE_CST_IDX_LST < sizeof (SE_STR) - 1 > ::SE_RES > (SE_STR).SE_DEC())
# define XCS(SE_STR) ((::SE_XOR_STR < ::SE_CST_IDX_LST < sizeof (SE_STR) - 1 > ::SE_RES > (SE_STR).SE_DEC()).c_str())
#else
# define XS(SE_STR) (SE_STR)
# define XCS(SE_STR) (SE_STR)
#endif
#define XWS(SE_STR) (::toUnicode(XCS(SE_STR)))
#define XCWS(SE_STR) (::toUnicode(XCS(SE_STR)).c_str())
#define SE_ZERO ((int)(::std::atof(XCS("0.00000"))))
#define SE_ONE ((int)(::std::atof(XCS("1.00000"))))
#define SE_TWO ((int)(::std::atof(XCS("2.00000"))))
#define SE_THREE ((int)(::std::atof(XCS("3.00000"))))
#define SE_FOUR ((int)(::std::atof(XCS("4.00000"))))
#define SE_FIVE ((int)(::std::atof(XCS("5.00000"))))
#define SE_SIX ((int)(::std::atof(XCS("6.00000"))))
#define SE_SEVEN ((int)(::std::atof(XCS("7.00000"))))
#define SE_EIGHT ((int)(::std::atof(XCS("8.00000"))))
#define SE_NINE ((int)(::std::atof(XCS("9.00000"))))
#define SE_TEN ((int)(::std::atof(XCS("10.00000"))))
#define SE_ELEVEN ((int)(::std::atof(XCS("11.00000"))))
#define SE_TWELVE ((int)(::std::atof(XCS("12.00000"))))
#define SE_THIRTEEN ((int)(::std::atof(XCS("13.00000"))))
#define SE_FOURTEEN ((int)(::std::atof(XCS("14.00000"))))
#define SE_FIVETEEN ((int)(::std::atof(XCS("15.00000"))))
#define SE_SIXTEEN ((int)(::std::atof(XCS("16.00000"))))
#define SE_SEVENTEEN ((int)(::std::atof(XCS("17.00000"))))
#define SE_EIGHTEEN ((int)(::std::atof(XCS("18.00000"))))
#define SE_NINETEEN ((int)(::std::atof(XCS("19.00000"))))
#define SE_TWENTY ((int)(::std::atof(XCS("20.00000"))))
#define SE_TWENTYONE ((int)(::std::atof(XCS("21.00000"))))
#define SE_TWENTYTWO ((int)(::std::atof(XCS("22.00000"))))
#define SE_TWENTYTHREE ((int)(::std::atof(XCS("23.00000"))))
#define SE_TWENTYFOUR ((int)(::std::atof(XCS("24.00000"))))
#define SE_TWENTYFIVE ((int)(::std::atof(XCS("25.00000"))))
#define SE_TWENTYSIX ((int)(::std::atof(XCS("26.00000"))))
#define SE_TWENTYSEVEN ((int)(::std::atof(XCS("27.00000"))))
#define SE_TWENTYEIGHT ((int)(::std::atof(XCS("28.00000"))))
#define SE_TWENTYNINE ((int)(::std::atof(XCS("29.00000"))))
#define SE_THIRTY ((int)(::std::atof(XCS("30.00000"))))
#define SE_THIRTYONE ((int)(::std::atof(XCS("31.00000"))))
#define SE_THIRTYTWO ((int)(::std::atof(XCS("32.00000"))))
#define SE_THIRTYTHREE ((int)(::std::atof(XCS("33.00000"))))
#define SE_THIRTYFOUR ((int)(::std::atof(XCS("34.00000"))))
#define SE_THIRTYFIVE ((int)(::std::atof(XCS("35.00000"))))
#define SE_THIRTYSIX ((int)(::std::atof(XCS("36.00000"))))
#define SE_THIRTYSEVEN ((int)(::std::atof(XCS("37.00000"))))
#define SE_THIRTYEIGHT ((int)(::std::atof(XCS("38.00000"))))
#define SE_THIRTYNINE ((int)(::std::atof(XCS("39.00000"))))
#define SE_FOURTY ((int)(::std::atof(XCS("40.00000"))))
#define SE_ZERO_F ((float)(::std::atof(XCS("0.00000"))))
#define SE_ONE_F ((float)(::std::atof(XCS("1.00000"))))
#define SE_TWO_F ((float)(::std::atof(XCS("2.00000"))))
#define SE_THREE_F ((float)(::std::atof(XCS("3.00000"))))
#define SE_FOUR_F ((float)(::std::atof(XCS("4.00000"))))
#define SE_FIVE_F ((float)(::std::atof(XCS("5.00000"))))
#define SE_SIX_F ((float)(::std::atof(XCS("6.00000"))))
#define SE_SEVEN_F ((float)(::std::atof(XCS("7.00000"))))
#define SE_EIGHT_F ((float)(::std::atof(XCS("8.00000"))))
#define SE_NINE_F ((float)(::std::atof(XCS("9.00000"))))
#define SE_TEN_F ((float)(::std::atof(XCS("10.00000"))))
#define SE_ELEVEN_F ((float)(::std::atof(XCS("11.00000"))))
#define SE_TWELVE_F ((float)(::std::atof(XCS("12.00000"))))
#define SE_THIRTEEN_F ((float)(::std::atof(XCS("13.00000"))))
#define SE_FOURTEEN_F ((float)(::std::atof(XCS("14.00000"))))
#define SE_FIVETEEN_F ((float)(::std::atof(XCS("15.00000"))))
#define SE_SIXTEEN_F ((float)(::std::atof(XCS("16.00000"))))
#define SE_SEVENTEEN_F ((float)(::std::atof(XCS("17.00000"))))
#define SE_EIGHTEEN_F ((float)(::std::atof(XCS("18.00000"))))
#define SE_NINETEEN_F ((float)(::std::atof(XCS("19.00000"))))
#define SE_TWENTY_F ((float)(::std::atof(XCS("20.00000"))))
#define SE_TWENTYONE_F ((float)(::std::atof(XCS("21.00000"))))
#define SE_TWENTYTWO_F ((float)(::std::atof(XCS("22.00000"))))
#define SE_TWENTYTHREE_F ((float)(::std::atof(XCS("23.00000"))))
#define SE_TWENTYFOUR_F ((float)(::std::atof(XCS("24.00000"))))
#define SE_TWENTYFIVE_F ((float)(::std::atof(XCS("25.00000"))))
#define SE_TWENTYSIX_F ((float)(::std::atof(XCS("26.00000"))))
#define SE_TWENTYSEVEN_F ((float)(::std::atof(XCS("27.00000"))))
#define SE_TWENTYEIGHT_F ((float)(::std::atof(XCS("28.00000"))))
#define SE_TWENTYNINE_F ((float)(::std::atof(XCS("29.00000"))))
#define SE_THIRTY_F ((float)(::std::atof(XCS("30.00000"))))
#define SE_THIRTYONE_F ((float)(::std::atof(XCS("31.00000"))))
#define SE_THIRTYTWO_F ((float)(::std::atof(XCS("32.00000"))))
#define SE_THIRTYTHREE_F ((float)(::std::atof(XCS("33.00000"))))
#define SE_THIRTYFOUR_F ((float)(::std::atof(XCS("34.00000"))))
#define SE_THIRTYFIVE_F ((float)(::std::atof(XCS("35.00000"))))
#define SE_THIRTYSIX_F ((float)(::std::atof(XCS("36.00000"))))
#define SE_THIRTYSEVEN_F ((float)(::std::atof(XCS("37.00000"))))
#define SE_THIRTYEIGHT_F ((float)(::std::atof(XCS("38.00000"))))
#define SE_THIRTYNINE_F ((float)(::std::atof(XCS("39.00000"))))
#define SE_FOURTY_F ((float)(::std::atof(XCS("40.00000"))))
#define SE_0 ((int)(::std::atof(XCS("0.00000"))))
#define SE_1 ((int)(::std::atof(XCS("1.00000"))))
#define SE_2 ((int)(::std::atof(XCS("2.00000"))))
#define SE_3 ((int)(::std::atof(XCS("3.00000"))))
#define SE_4 ((int)(::std::atof(XCS("4.00000"))))
#define SE_5 ((int)(::std::atof(XCS("5.00000"))))
#define SE_6 ((int)(::std::atof(XCS("6.00000"))))
#define SE_7 ((int)(::std::atof(XCS("7.00000"))))
#define SE_8 ((int)(::std::atof(XCS("8.00000"))))
#define SE_9 ((int)(::std::atof(XCS("9.00000"))))
#define SE_10 ((int)(::std::atof(XCS("10.00000"))))
#define SE_11 ((int)(::std::atof(XCS("11.00000"))))
#define SE_12 ((int)(::std::atof(XCS("12.00000"))))
#define SE_13 ((int)(::std::atof(XCS("13.00000"))))
#define SE_14 ((int)(::std::atof(XCS("14.00000"))))
#define SE_15 ((int)(::std::atof(XCS("15.00000"))))
#define SE_16 ((int)(::std::atof(XCS("16.00000"))))
#define SE_17 ((int)(::std::atof(XCS("17.00000"))))
#define SE_18 ((int)(::std::atof(XCS("18.00000"))))
#define SE_19 ((int)(::std::atof(XCS("19.00000"))))
#define SE_20 ((int)(::std::atof(XCS("20.00000"))))
#define SE_21 ((int)(::std::atof(XCS("21.00000"))))
#define SE_22 ((int)(::std::atof(XCS("22.00000"))))
#define SE_23 ((int)(::std::atof(XCS("23.00000"))))
#define SE_24 ((int)(::std::atof(XCS("24.00000"))))
#define SE_25 ((int)(::std::atof(XCS("25.00000"))))
#define SE_26 ((int)(::std::atof(XCS("26.00000"))))
#define SE_27 ((int)(::std::atof(XCS("27.00000"))))
#define SE_28 ((int)(::std::atof(XCS("28.00000"))))
#define SE_29 ((int)(::std::atof(XCS("29.00000"))))
#define SE_30 ((int)(::std::atof(XCS("30.00000"))))
#define SE_31 ((int)(::std::atof(XCS("31.00000"))))
#define SE_32 ((int)(::std::atof(XCS("32.00000"))))
#define SE_33 ((int)(::std::atof(XCS("33.00000"))))
#define SE_34 ((int)(::std::atof(XCS("34.00000"))))
#define SE_35 ((int)(::std::atof(XCS("35.00000"))))
#define SE_36 ((int)(::std::atof(XCS("36.00000"))))
#define SE_37 ((int)(::std::atof(XCS("37.00000"))))
#define SE_38 ((int)(::std::atof(XCS("38.00000"))))
#define SE_39 ((int)(::std::atof(XCS("39.00000"))))
#define SE_40 ((int)(::std::atof(XCS("40.00000"))))
#define SE_0_F ((float)(::std::atof(XCS("0.00000"))))
#define SE_1_F ((float)(::std::atof(XCS("1.00000"))))
#define SE_2_F ((float)(::std::atof(XCS("2.00000"))))
#define SE_3_F ((float)(::std::atof(XCS("3.00000"))))
#define SE_4_F ((float)(::std::atof(XCS("4.00000"))))
#define SE_5_F ((float)(::std::atof(XCS("5.00000"))))
#define SE_6_F ((float)(::std::atof(XCS("6.00000"))))
#define SE_7_F ((float)(::std::atof(XCS("7.00000"))))
#define SE_8_F ((float)(::std::atof(XCS("8.00000"))))
#define SE_9_F ((float)(::std::atof(XCS("9.00000"))))
#define SE_10_F ((float)(::std::atof(XCS("10.00000"))))
#define SE_11_F ((float)(::std::atof(XCS("11.00000"))))
#define SE_12_F ((float)(::std::atof(XCS("12.00000"))))
#define SE_13_F ((float)(::std::atof(XCS("13.00000"))))
#define SE_14_F ((float)(::std::atof(XCS("14.00000"))))
#define SE_15_F ((float)(::std::atof(XCS("15.00000"))))
#define SE_16_F ((float)(::std::atof(XCS("16.00000"))))
#define SE_17_F ((float)(::std::atof(XCS("17.00000"))))
#define SE_18_F ((float)(::std::atof(XCS("18.00000"))))
#define SE_19_F ((float)(::std::atof(XCS("19.00000"))))
#define SE_20_F ((float)(::std::atof(XCS("20.00000"))))
#define SE_21_F ((float)(::std::atof(XCS("21.00000"))))
#define SE_22_F ((float)(::std::atof(XCS("22.00000"))))
#define SE_23_F ((float)(::std::atof(XCS("23.00000"))))
#define SE_24_F ((float)(::std::atof(XCS("24.00000"))))
#define SE_25_F ((float)(::std::atof(XCS("25.00000"))))
#define SE_26_F ((float)(::std::atof(XCS("26.00000"))))
#define SE_27_F ((float)(::std::atof(XCS("27.00000"))))
#define SE_28_F ((float)(::std::atof(XCS("28.00000"))))
#define SE_29_F ((float)(::std::atof(XCS("29.00000"))))
#define SE_30_F ((float)(::std::atof(XCS("30.00000"))))
#define SE_31_F ((float)(::std::atof(XCS("31.00000"))))
#define SE_32_F ((float)(::std::atof(XCS("32.00000"))))
#define SE_33_F ((float)(::std::atof(XCS("33.00000"))))
#define SE_34_F ((float)(::std::atof(XCS("34.00000"))))
#define SE_35_F ((float)(::std::atof(XCS("35.00000"))))
#define SE_36_F ((float)(::std::atof(XCS("36.00000"))))
#define SE_37_F ((float)(::std::atof(XCS("37.00000"))))
#define SE_38_F ((float)(::std::atof(XCS("38.00000"))))
#define SE_39_F ((float)(::std::atof(XCS("39.00000"))))
#define SE_40_F ((float)(::std::atof(XCS("40.00000"))))