1e1051a39Sopenharmony_ci/*
2e1051a39Sopenharmony_ci * Copyright 1995-2016 The OpenSSL Project Authors. All Rights Reserved.
3e1051a39Sopenharmony_ci *
4e1051a39Sopenharmony_ci * Licensed under the Apache License 2.0 (the "License").  You may not use
5e1051a39Sopenharmony_ci * this file except in compliance with the License.  You can obtain a copy
6e1051a39Sopenharmony_ci * in the file LICENSE in the source distribution or at
7e1051a39Sopenharmony_ci * https://www.openssl.org/source/license.html
8e1051a39Sopenharmony_ci */
9e1051a39Sopenharmony_ci
10e1051a39Sopenharmony_ci#define KL0 0x00000000L
11e1051a39Sopenharmony_ci#define KL1 0x5A827999L
12e1051a39Sopenharmony_ci#define KL2 0x6ED9EBA1L
13e1051a39Sopenharmony_ci#define KL3 0x8F1BBCDCL
14e1051a39Sopenharmony_ci#define KL4 0xA953FD4EL
15e1051a39Sopenharmony_ci
16e1051a39Sopenharmony_ci#define KR0 0x50A28BE6L
17e1051a39Sopenharmony_ci#define KR1 0x5C4DD124L
18e1051a39Sopenharmony_ci#define KR2 0x6D703EF3L
19e1051a39Sopenharmony_ci#define KR3 0x7A6D76E9L
20e1051a39Sopenharmony_ci#define KR4 0x00000000L
21e1051a39Sopenharmony_ci
22e1051a39Sopenharmony_ci#define WL00  0
23e1051a39Sopenharmony_ci#define SL00 11
24e1051a39Sopenharmony_ci#define WL01  1
25e1051a39Sopenharmony_ci#define SL01 14
26e1051a39Sopenharmony_ci#define WL02  2
27e1051a39Sopenharmony_ci#define SL02 15
28e1051a39Sopenharmony_ci#define WL03  3
29e1051a39Sopenharmony_ci#define SL03 12
30e1051a39Sopenharmony_ci#define WL04  4
31e1051a39Sopenharmony_ci#define SL04  5
32e1051a39Sopenharmony_ci#define WL05  5
33e1051a39Sopenharmony_ci#define SL05  8
34e1051a39Sopenharmony_ci#define WL06  6
35e1051a39Sopenharmony_ci#define SL06  7
36e1051a39Sopenharmony_ci#define WL07  7
37e1051a39Sopenharmony_ci#define SL07  9
38e1051a39Sopenharmony_ci#define WL08  8
39e1051a39Sopenharmony_ci#define SL08 11
40e1051a39Sopenharmony_ci#define WL09  9
41e1051a39Sopenharmony_ci#define SL09 13
42e1051a39Sopenharmony_ci#define WL10 10
43e1051a39Sopenharmony_ci#define SL10 14
44e1051a39Sopenharmony_ci#define WL11 11
45e1051a39Sopenharmony_ci#define SL11 15
46e1051a39Sopenharmony_ci#define WL12 12
47e1051a39Sopenharmony_ci#define SL12  6
48e1051a39Sopenharmony_ci#define WL13 13
49e1051a39Sopenharmony_ci#define SL13  7
50e1051a39Sopenharmony_ci#define WL14 14
51e1051a39Sopenharmony_ci#define SL14  9
52e1051a39Sopenharmony_ci#define WL15 15
53e1051a39Sopenharmony_ci#define SL15  8
54e1051a39Sopenharmony_ci
55e1051a39Sopenharmony_ci#define WL16  7
56e1051a39Sopenharmony_ci#define SL16  7
57e1051a39Sopenharmony_ci#define WL17  4
58e1051a39Sopenharmony_ci#define SL17  6
59e1051a39Sopenharmony_ci#define WL18 13
60e1051a39Sopenharmony_ci#define SL18  8
61e1051a39Sopenharmony_ci#define WL19  1
62e1051a39Sopenharmony_ci#define SL19 13
63e1051a39Sopenharmony_ci#define WL20 10
64e1051a39Sopenharmony_ci#define SL20 11
65e1051a39Sopenharmony_ci#define WL21  6
66e1051a39Sopenharmony_ci#define SL21  9
67e1051a39Sopenharmony_ci#define WL22 15
68e1051a39Sopenharmony_ci#define SL22  7
69e1051a39Sopenharmony_ci#define WL23  3
70e1051a39Sopenharmony_ci#define SL23 15
71e1051a39Sopenharmony_ci#define WL24 12
72e1051a39Sopenharmony_ci#define SL24  7
73e1051a39Sopenharmony_ci#define WL25  0
74e1051a39Sopenharmony_ci#define SL25 12
75e1051a39Sopenharmony_ci#define WL26  9
76e1051a39Sopenharmony_ci#define SL26 15
77e1051a39Sopenharmony_ci#define WL27  5
78e1051a39Sopenharmony_ci#define SL27  9
79e1051a39Sopenharmony_ci#define WL28  2
80e1051a39Sopenharmony_ci#define SL28 11
81e1051a39Sopenharmony_ci#define WL29 14
82e1051a39Sopenharmony_ci#define SL29  7
83e1051a39Sopenharmony_ci#define WL30 11
84e1051a39Sopenharmony_ci#define SL30 13
85e1051a39Sopenharmony_ci#define WL31  8
86e1051a39Sopenharmony_ci#define SL31 12
87e1051a39Sopenharmony_ci
88e1051a39Sopenharmony_ci#define WL32  3
89e1051a39Sopenharmony_ci#define SL32 11
90e1051a39Sopenharmony_ci#define WL33 10
91e1051a39Sopenharmony_ci#define SL33 13
92e1051a39Sopenharmony_ci#define WL34 14
93e1051a39Sopenharmony_ci#define SL34  6
94e1051a39Sopenharmony_ci#define WL35  4
95e1051a39Sopenharmony_ci#define SL35  7
96e1051a39Sopenharmony_ci#define WL36  9
97e1051a39Sopenharmony_ci#define SL36 14
98e1051a39Sopenharmony_ci#define WL37 15
99e1051a39Sopenharmony_ci#define SL37  9
100e1051a39Sopenharmony_ci#define WL38  8
101e1051a39Sopenharmony_ci#define SL38 13
102e1051a39Sopenharmony_ci#define WL39  1
103e1051a39Sopenharmony_ci#define SL39 15
104e1051a39Sopenharmony_ci#define WL40  2
105e1051a39Sopenharmony_ci#define SL40 14
106e1051a39Sopenharmony_ci#define WL41  7
107e1051a39Sopenharmony_ci#define SL41  8
108e1051a39Sopenharmony_ci#define WL42  0
109e1051a39Sopenharmony_ci#define SL42 13
110e1051a39Sopenharmony_ci#define WL43  6
111e1051a39Sopenharmony_ci#define SL43  6
112e1051a39Sopenharmony_ci#define WL44 13
113e1051a39Sopenharmony_ci#define SL44  5
114e1051a39Sopenharmony_ci#define WL45 11
115e1051a39Sopenharmony_ci#define SL45 12
116e1051a39Sopenharmony_ci#define WL46  5
117e1051a39Sopenharmony_ci#define SL46  7
118e1051a39Sopenharmony_ci#define WL47 12
119e1051a39Sopenharmony_ci#define SL47  5
120e1051a39Sopenharmony_ci
121e1051a39Sopenharmony_ci#define WL48  1
122e1051a39Sopenharmony_ci#define SL48 11
123e1051a39Sopenharmony_ci#define WL49  9
124e1051a39Sopenharmony_ci#define SL49 12
125e1051a39Sopenharmony_ci#define WL50 11
126e1051a39Sopenharmony_ci#define SL50 14
127e1051a39Sopenharmony_ci#define WL51 10
128e1051a39Sopenharmony_ci#define SL51 15
129e1051a39Sopenharmony_ci#define WL52  0
130e1051a39Sopenharmony_ci#define SL52 14
131e1051a39Sopenharmony_ci#define WL53  8
132e1051a39Sopenharmony_ci#define SL53 15
133e1051a39Sopenharmony_ci#define WL54 12
134e1051a39Sopenharmony_ci#define SL54  9
135e1051a39Sopenharmony_ci#define WL55  4
136e1051a39Sopenharmony_ci#define SL55  8
137e1051a39Sopenharmony_ci#define WL56 13
138e1051a39Sopenharmony_ci#define SL56  9
139e1051a39Sopenharmony_ci#define WL57  3
140e1051a39Sopenharmony_ci#define SL57 14
141e1051a39Sopenharmony_ci#define WL58  7
142e1051a39Sopenharmony_ci#define SL58  5
143e1051a39Sopenharmony_ci#define WL59 15
144e1051a39Sopenharmony_ci#define SL59  6
145e1051a39Sopenharmony_ci#define WL60 14
146e1051a39Sopenharmony_ci#define SL60  8
147e1051a39Sopenharmony_ci#define WL61  5
148e1051a39Sopenharmony_ci#define SL61  6
149e1051a39Sopenharmony_ci#define WL62  6
150e1051a39Sopenharmony_ci#define SL62  5
151e1051a39Sopenharmony_ci#define WL63  2
152e1051a39Sopenharmony_ci#define SL63 12
153e1051a39Sopenharmony_ci
154e1051a39Sopenharmony_ci#define WL64  4
155e1051a39Sopenharmony_ci#define SL64  9
156e1051a39Sopenharmony_ci#define WL65  0
157e1051a39Sopenharmony_ci#define SL65 15
158e1051a39Sopenharmony_ci#define WL66  5
159e1051a39Sopenharmony_ci#define SL66  5
160e1051a39Sopenharmony_ci#define WL67  9
161e1051a39Sopenharmony_ci#define SL67 11
162e1051a39Sopenharmony_ci#define WL68  7
163e1051a39Sopenharmony_ci#define SL68  6
164e1051a39Sopenharmony_ci#define WL69 12
165e1051a39Sopenharmony_ci#define SL69  8
166e1051a39Sopenharmony_ci#define WL70  2
167e1051a39Sopenharmony_ci#define SL70 13
168e1051a39Sopenharmony_ci#define WL71 10
169e1051a39Sopenharmony_ci#define SL71 12
170e1051a39Sopenharmony_ci#define WL72 14
171e1051a39Sopenharmony_ci#define SL72  5
172e1051a39Sopenharmony_ci#define WL73  1
173e1051a39Sopenharmony_ci#define SL73 12
174e1051a39Sopenharmony_ci#define WL74  3
175e1051a39Sopenharmony_ci#define SL74 13
176e1051a39Sopenharmony_ci#define WL75  8
177e1051a39Sopenharmony_ci#define SL75 14
178e1051a39Sopenharmony_ci#define WL76 11
179e1051a39Sopenharmony_ci#define SL76 11
180e1051a39Sopenharmony_ci#define WL77  6
181e1051a39Sopenharmony_ci#define SL77  8
182e1051a39Sopenharmony_ci#define WL78 15
183e1051a39Sopenharmony_ci#define SL78  5
184e1051a39Sopenharmony_ci#define WL79 13
185e1051a39Sopenharmony_ci#define SL79  6
186e1051a39Sopenharmony_ci
187e1051a39Sopenharmony_ci#define WR00  5
188e1051a39Sopenharmony_ci#define SR00  8
189e1051a39Sopenharmony_ci#define WR01 14
190e1051a39Sopenharmony_ci#define SR01  9
191e1051a39Sopenharmony_ci#define WR02  7
192e1051a39Sopenharmony_ci#define SR02  9
193e1051a39Sopenharmony_ci#define WR03  0
194e1051a39Sopenharmony_ci#define SR03 11
195e1051a39Sopenharmony_ci#define WR04  9
196e1051a39Sopenharmony_ci#define SR04 13
197e1051a39Sopenharmony_ci#define WR05  2
198e1051a39Sopenharmony_ci#define SR05 15
199e1051a39Sopenharmony_ci#define WR06 11
200e1051a39Sopenharmony_ci#define SR06 15
201e1051a39Sopenharmony_ci#define WR07  4
202e1051a39Sopenharmony_ci#define SR07  5
203e1051a39Sopenharmony_ci#define WR08 13
204e1051a39Sopenharmony_ci#define SR08  7
205e1051a39Sopenharmony_ci#define WR09  6
206e1051a39Sopenharmony_ci#define SR09  7
207e1051a39Sopenharmony_ci#define WR10 15
208e1051a39Sopenharmony_ci#define SR10  8
209e1051a39Sopenharmony_ci#define WR11  8
210e1051a39Sopenharmony_ci#define SR11 11
211e1051a39Sopenharmony_ci#define WR12  1
212e1051a39Sopenharmony_ci#define SR12 14
213e1051a39Sopenharmony_ci#define WR13 10
214e1051a39Sopenharmony_ci#define SR13 14
215e1051a39Sopenharmony_ci#define WR14  3
216e1051a39Sopenharmony_ci#define SR14 12
217e1051a39Sopenharmony_ci#define WR15 12
218e1051a39Sopenharmony_ci#define SR15  6
219e1051a39Sopenharmony_ci
220e1051a39Sopenharmony_ci#define WR16  6
221e1051a39Sopenharmony_ci#define SR16  9
222e1051a39Sopenharmony_ci#define WR17 11
223e1051a39Sopenharmony_ci#define SR17 13
224e1051a39Sopenharmony_ci#define WR18  3
225e1051a39Sopenharmony_ci#define SR18 15
226e1051a39Sopenharmony_ci#define WR19  7
227e1051a39Sopenharmony_ci#define SR19  7
228e1051a39Sopenharmony_ci#define WR20  0
229e1051a39Sopenharmony_ci#define SR20 12
230e1051a39Sopenharmony_ci#define WR21 13
231e1051a39Sopenharmony_ci#define SR21  8
232e1051a39Sopenharmony_ci#define WR22  5
233e1051a39Sopenharmony_ci#define SR22  9
234e1051a39Sopenharmony_ci#define WR23 10
235e1051a39Sopenharmony_ci#define SR23 11
236e1051a39Sopenharmony_ci#define WR24 14
237e1051a39Sopenharmony_ci#define SR24  7
238e1051a39Sopenharmony_ci#define WR25 15
239e1051a39Sopenharmony_ci#define SR25  7
240e1051a39Sopenharmony_ci#define WR26  8
241e1051a39Sopenharmony_ci#define SR26 12
242e1051a39Sopenharmony_ci#define WR27 12
243e1051a39Sopenharmony_ci#define SR27  7
244e1051a39Sopenharmony_ci#define WR28  4
245e1051a39Sopenharmony_ci#define SR28  6
246e1051a39Sopenharmony_ci#define WR29  9
247e1051a39Sopenharmony_ci#define SR29 15
248e1051a39Sopenharmony_ci#define WR30  1
249e1051a39Sopenharmony_ci#define SR30 13
250e1051a39Sopenharmony_ci#define WR31  2
251e1051a39Sopenharmony_ci#define SR31 11
252e1051a39Sopenharmony_ci
253e1051a39Sopenharmony_ci#define WR32 15
254e1051a39Sopenharmony_ci#define SR32  9
255e1051a39Sopenharmony_ci#define WR33  5
256e1051a39Sopenharmony_ci#define SR33  7
257e1051a39Sopenharmony_ci#define WR34  1
258e1051a39Sopenharmony_ci#define SR34 15
259e1051a39Sopenharmony_ci#define WR35  3
260e1051a39Sopenharmony_ci#define SR35 11
261e1051a39Sopenharmony_ci#define WR36  7
262e1051a39Sopenharmony_ci#define SR36  8
263e1051a39Sopenharmony_ci#define WR37 14
264e1051a39Sopenharmony_ci#define SR37  6
265e1051a39Sopenharmony_ci#define WR38  6
266e1051a39Sopenharmony_ci#define SR38  6
267e1051a39Sopenharmony_ci#define WR39  9
268e1051a39Sopenharmony_ci#define SR39 14
269e1051a39Sopenharmony_ci#define WR40 11
270e1051a39Sopenharmony_ci#define SR40 12
271e1051a39Sopenharmony_ci#define WR41  8
272e1051a39Sopenharmony_ci#define SR41 13
273e1051a39Sopenharmony_ci#define WR42 12
274e1051a39Sopenharmony_ci#define SR42  5
275e1051a39Sopenharmony_ci#define WR43  2
276e1051a39Sopenharmony_ci#define SR43 14
277e1051a39Sopenharmony_ci#define WR44 10
278e1051a39Sopenharmony_ci#define SR44 13
279e1051a39Sopenharmony_ci#define WR45  0
280e1051a39Sopenharmony_ci#define SR45 13
281e1051a39Sopenharmony_ci#define WR46  4
282e1051a39Sopenharmony_ci#define SR46  7
283e1051a39Sopenharmony_ci#define WR47 13
284e1051a39Sopenharmony_ci#define SR47  5
285e1051a39Sopenharmony_ci
286e1051a39Sopenharmony_ci#define WR48  8
287e1051a39Sopenharmony_ci#define SR48 15
288e1051a39Sopenharmony_ci#define WR49  6
289e1051a39Sopenharmony_ci#define SR49  5
290e1051a39Sopenharmony_ci#define WR50  4
291e1051a39Sopenharmony_ci#define SR50  8
292e1051a39Sopenharmony_ci#define WR51  1
293e1051a39Sopenharmony_ci#define SR51 11
294e1051a39Sopenharmony_ci#define WR52  3
295e1051a39Sopenharmony_ci#define SR52 14
296e1051a39Sopenharmony_ci#define WR53 11
297e1051a39Sopenharmony_ci#define SR53 14
298e1051a39Sopenharmony_ci#define WR54 15
299e1051a39Sopenharmony_ci#define SR54  6
300e1051a39Sopenharmony_ci#define WR55  0
301e1051a39Sopenharmony_ci#define SR55 14
302e1051a39Sopenharmony_ci#define WR56  5
303e1051a39Sopenharmony_ci#define SR56  6
304e1051a39Sopenharmony_ci#define WR57 12
305e1051a39Sopenharmony_ci#define SR57  9
306e1051a39Sopenharmony_ci#define WR58  2
307e1051a39Sopenharmony_ci#define SR58 12
308e1051a39Sopenharmony_ci#define WR59 13
309e1051a39Sopenharmony_ci#define SR59  9
310e1051a39Sopenharmony_ci#define WR60  9
311e1051a39Sopenharmony_ci#define SR60 12
312e1051a39Sopenharmony_ci#define WR61  7
313e1051a39Sopenharmony_ci#define SR61  5
314e1051a39Sopenharmony_ci#define WR62 10
315e1051a39Sopenharmony_ci#define SR62 15
316e1051a39Sopenharmony_ci#define WR63 14
317e1051a39Sopenharmony_ci#define SR63  8
318e1051a39Sopenharmony_ci
319e1051a39Sopenharmony_ci#define WR64 12
320e1051a39Sopenharmony_ci#define SR64  8
321e1051a39Sopenharmony_ci#define WR65 15
322e1051a39Sopenharmony_ci#define SR65  5
323e1051a39Sopenharmony_ci#define WR66 10
324e1051a39Sopenharmony_ci#define SR66 12
325e1051a39Sopenharmony_ci#define WR67  4
326e1051a39Sopenharmony_ci#define SR67  9
327e1051a39Sopenharmony_ci#define WR68  1
328e1051a39Sopenharmony_ci#define SR68 12
329e1051a39Sopenharmony_ci#define WR69  5
330e1051a39Sopenharmony_ci#define SR69  5
331e1051a39Sopenharmony_ci#define WR70  8
332e1051a39Sopenharmony_ci#define SR70 14
333e1051a39Sopenharmony_ci#define WR71  7
334e1051a39Sopenharmony_ci#define SR71  6
335e1051a39Sopenharmony_ci#define WR72  6
336e1051a39Sopenharmony_ci#define SR72  8
337e1051a39Sopenharmony_ci#define WR73  2
338e1051a39Sopenharmony_ci#define SR73 13
339e1051a39Sopenharmony_ci#define WR74 13
340e1051a39Sopenharmony_ci#define SR74  6
341e1051a39Sopenharmony_ci#define WR75 14
342e1051a39Sopenharmony_ci#define SR75  5
343e1051a39Sopenharmony_ci#define WR76  0
344e1051a39Sopenharmony_ci#define SR76 15
345e1051a39Sopenharmony_ci#define WR77  3
346e1051a39Sopenharmony_ci#define SR77 13
347e1051a39Sopenharmony_ci#define WR78  9
348e1051a39Sopenharmony_ci#define SR78 11
349e1051a39Sopenharmony_ci#define WR79 11
350e1051a39Sopenharmony_ci#define SR79 11
351