11cb0ef41Sopenharmony_ci/*
21cb0ef41Sopenharmony_ci * Copyright 1995-2016 The OpenSSL Project Authors. All Rights Reserved.
31cb0ef41Sopenharmony_ci *
41cb0ef41Sopenharmony_ci * Licensed under the Apache License 2.0 (the "License").  You may not use
51cb0ef41Sopenharmony_ci * this file except in compliance with the License.  You can obtain a copy
61cb0ef41Sopenharmony_ci * in the file LICENSE in the source distribution or at
71cb0ef41Sopenharmony_ci * https://www.openssl.org/source/license.html
81cb0ef41Sopenharmony_ci */
91cb0ef41Sopenharmony_ci
101cb0ef41Sopenharmony_ci#define KL0 0x00000000L
111cb0ef41Sopenharmony_ci#define KL1 0x5A827999L
121cb0ef41Sopenharmony_ci#define KL2 0x6ED9EBA1L
131cb0ef41Sopenharmony_ci#define KL3 0x8F1BBCDCL
141cb0ef41Sopenharmony_ci#define KL4 0xA953FD4EL
151cb0ef41Sopenharmony_ci
161cb0ef41Sopenharmony_ci#define KR0 0x50A28BE6L
171cb0ef41Sopenharmony_ci#define KR1 0x5C4DD124L
181cb0ef41Sopenharmony_ci#define KR2 0x6D703EF3L
191cb0ef41Sopenharmony_ci#define KR3 0x7A6D76E9L
201cb0ef41Sopenharmony_ci#define KR4 0x00000000L
211cb0ef41Sopenharmony_ci
221cb0ef41Sopenharmony_ci#define WL00  0
231cb0ef41Sopenharmony_ci#define SL00 11
241cb0ef41Sopenharmony_ci#define WL01  1
251cb0ef41Sopenharmony_ci#define SL01 14
261cb0ef41Sopenharmony_ci#define WL02  2
271cb0ef41Sopenharmony_ci#define SL02 15
281cb0ef41Sopenharmony_ci#define WL03  3
291cb0ef41Sopenharmony_ci#define SL03 12
301cb0ef41Sopenharmony_ci#define WL04  4
311cb0ef41Sopenharmony_ci#define SL04  5
321cb0ef41Sopenharmony_ci#define WL05  5
331cb0ef41Sopenharmony_ci#define SL05  8
341cb0ef41Sopenharmony_ci#define WL06  6
351cb0ef41Sopenharmony_ci#define SL06  7
361cb0ef41Sopenharmony_ci#define WL07  7
371cb0ef41Sopenharmony_ci#define SL07  9
381cb0ef41Sopenharmony_ci#define WL08  8
391cb0ef41Sopenharmony_ci#define SL08 11
401cb0ef41Sopenharmony_ci#define WL09  9
411cb0ef41Sopenharmony_ci#define SL09 13
421cb0ef41Sopenharmony_ci#define WL10 10
431cb0ef41Sopenharmony_ci#define SL10 14
441cb0ef41Sopenharmony_ci#define WL11 11
451cb0ef41Sopenharmony_ci#define SL11 15
461cb0ef41Sopenharmony_ci#define WL12 12
471cb0ef41Sopenharmony_ci#define SL12  6
481cb0ef41Sopenharmony_ci#define WL13 13
491cb0ef41Sopenharmony_ci#define SL13  7
501cb0ef41Sopenharmony_ci#define WL14 14
511cb0ef41Sopenharmony_ci#define SL14  9
521cb0ef41Sopenharmony_ci#define WL15 15
531cb0ef41Sopenharmony_ci#define SL15  8
541cb0ef41Sopenharmony_ci
551cb0ef41Sopenharmony_ci#define WL16  7
561cb0ef41Sopenharmony_ci#define SL16  7
571cb0ef41Sopenharmony_ci#define WL17  4
581cb0ef41Sopenharmony_ci#define SL17  6
591cb0ef41Sopenharmony_ci#define WL18 13
601cb0ef41Sopenharmony_ci#define SL18  8
611cb0ef41Sopenharmony_ci#define WL19  1
621cb0ef41Sopenharmony_ci#define SL19 13
631cb0ef41Sopenharmony_ci#define WL20 10
641cb0ef41Sopenharmony_ci#define SL20 11
651cb0ef41Sopenharmony_ci#define WL21  6
661cb0ef41Sopenharmony_ci#define SL21  9
671cb0ef41Sopenharmony_ci#define WL22 15
681cb0ef41Sopenharmony_ci#define SL22  7
691cb0ef41Sopenharmony_ci#define WL23  3
701cb0ef41Sopenharmony_ci#define SL23 15
711cb0ef41Sopenharmony_ci#define WL24 12
721cb0ef41Sopenharmony_ci#define SL24  7
731cb0ef41Sopenharmony_ci#define WL25  0
741cb0ef41Sopenharmony_ci#define SL25 12
751cb0ef41Sopenharmony_ci#define WL26  9
761cb0ef41Sopenharmony_ci#define SL26 15
771cb0ef41Sopenharmony_ci#define WL27  5
781cb0ef41Sopenharmony_ci#define SL27  9
791cb0ef41Sopenharmony_ci#define WL28  2
801cb0ef41Sopenharmony_ci#define SL28 11
811cb0ef41Sopenharmony_ci#define WL29 14
821cb0ef41Sopenharmony_ci#define SL29  7
831cb0ef41Sopenharmony_ci#define WL30 11
841cb0ef41Sopenharmony_ci#define SL30 13
851cb0ef41Sopenharmony_ci#define WL31  8
861cb0ef41Sopenharmony_ci#define SL31 12
871cb0ef41Sopenharmony_ci
881cb0ef41Sopenharmony_ci#define WL32  3
891cb0ef41Sopenharmony_ci#define SL32 11
901cb0ef41Sopenharmony_ci#define WL33 10
911cb0ef41Sopenharmony_ci#define SL33 13
921cb0ef41Sopenharmony_ci#define WL34 14
931cb0ef41Sopenharmony_ci#define SL34  6
941cb0ef41Sopenharmony_ci#define WL35  4
951cb0ef41Sopenharmony_ci#define SL35  7
961cb0ef41Sopenharmony_ci#define WL36  9
971cb0ef41Sopenharmony_ci#define SL36 14
981cb0ef41Sopenharmony_ci#define WL37 15
991cb0ef41Sopenharmony_ci#define SL37  9
1001cb0ef41Sopenharmony_ci#define WL38  8
1011cb0ef41Sopenharmony_ci#define SL38 13
1021cb0ef41Sopenharmony_ci#define WL39  1
1031cb0ef41Sopenharmony_ci#define SL39 15
1041cb0ef41Sopenharmony_ci#define WL40  2
1051cb0ef41Sopenharmony_ci#define SL40 14
1061cb0ef41Sopenharmony_ci#define WL41  7
1071cb0ef41Sopenharmony_ci#define SL41  8
1081cb0ef41Sopenharmony_ci#define WL42  0
1091cb0ef41Sopenharmony_ci#define SL42 13
1101cb0ef41Sopenharmony_ci#define WL43  6
1111cb0ef41Sopenharmony_ci#define SL43  6
1121cb0ef41Sopenharmony_ci#define WL44 13
1131cb0ef41Sopenharmony_ci#define SL44  5
1141cb0ef41Sopenharmony_ci#define WL45 11
1151cb0ef41Sopenharmony_ci#define SL45 12
1161cb0ef41Sopenharmony_ci#define WL46  5
1171cb0ef41Sopenharmony_ci#define SL46  7
1181cb0ef41Sopenharmony_ci#define WL47 12
1191cb0ef41Sopenharmony_ci#define SL47  5
1201cb0ef41Sopenharmony_ci
1211cb0ef41Sopenharmony_ci#define WL48  1
1221cb0ef41Sopenharmony_ci#define SL48 11
1231cb0ef41Sopenharmony_ci#define WL49  9
1241cb0ef41Sopenharmony_ci#define SL49 12
1251cb0ef41Sopenharmony_ci#define WL50 11
1261cb0ef41Sopenharmony_ci#define SL50 14
1271cb0ef41Sopenharmony_ci#define WL51 10
1281cb0ef41Sopenharmony_ci#define SL51 15
1291cb0ef41Sopenharmony_ci#define WL52  0
1301cb0ef41Sopenharmony_ci#define SL52 14
1311cb0ef41Sopenharmony_ci#define WL53  8
1321cb0ef41Sopenharmony_ci#define SL53 15
1331cb0ef41Sopenharmony_ci#define WL54 12
1341cb0ef41Sopenharmony_ci#define SL54  9
1351cb0ef41Sopenharmony_ci#define WL55  4
1361cb0ef41Sopenharmony_ci#define SL55  8
1371cb0ef41Sopenharmony_ci#define WL56 13
1381cb0ef41Sopenharmony_ci#define SL56  9
1391cb0ef41Sopenharmony_ci#define WL57  3
1401cb0ef41Sopenharmony_ci#define SL57 14
1411cb0ef41Sopenharmony_ci#define WL58  7
1421cb0ef41Sopenharmony_ci#define SL58  5
1431cb0ef41Sopenharmony_ci#define WL59 15
1441cb0ef41Sopenharmony_ci#define SL59  6
1451cb0ef41Sopenharmony_ci#define WL60 14
1461cb0ef41Sopenharmony_ci#define SL60  8
1471cb0ef41Sopenharmony_ci#define WL61  5
1481cb0ef41Sopenharmony_ci#define SL61  6
1491cb0ef41Sopenharmony_ci#define WL62  6
1501cb0ef41Sopenharmony_ci#define SL62  5
1511cb0ef41Sopenharmony_ci#define WL63  2
1521cb0ef41Sopenharmony_ci#define SL63 12
1531cb0ef41Sopenharmony_ci
1541cb0ef41Sopenharmony_ci#define WL64  4
1551cb0ef41Sopenharmony_ci#define SL64  9
1561cb0ef41Sopenharmony_ci#define WL65  0
1571cb0ef41Sopenharmony_ci#define SL65 15
1581cb0ef41Sopenharmony_ci#define WL66  5
1591cb0ef41Sopenharmony_ci#define SL66  5
1601cb0ef41Sopenharmony_ci#define WL67  9
1611cb0ef41Sopenharmony_ci#define SL67 11
1621cb0ef41Sopenharmony_ci#define WL68  7
1631cb0ef41Sopenharmony_ci#define SL68  6
1641cb0ef41Sopenharmony_ci#define WL69 12
1651cb0ef41Sopenharmony_ci#define SL69  8
1661cb0ef41Sopenharmony_ci#define WL70  2
1671cb0ef41Sopenharmony_ci#define SL70 13
1681cb0ef41Sopenharmony_ci#define WL71 10
1691cb0ef41Sopenharmony_ci#define SL71 12
1701cb0ef41Sopenharmony_ci#define WL72 14
1711cb0ef41Sopenharmony_ci#define SL72  5
1721cb0ef41Sopenharmony_ci#define WL73  1
1731cb0ef41Sopenharmony_ci#define SL73 12
1741cb0ef41Sopenharmony_ci#define WL74  3
1751cb0ef41Sopenharmony_ci#define SL74 13
1761cb0ef41Sopenharmony_ci#define WL75  8
1771cb0ef41Sopenharmony_ci#define SL75 14
1781cb0ef41Sopenharmony_ci#define WL76 11
1791cb0ef41Sopenharmony_ci#define SL76 11
1801cb0ef41Sopenharmony_ci#define WL77  6
1811cb0ef41Sopenharmony_ci#define SL77  8
1821cb0ef41Sopenharmony_ci#define WL78 15
1831cb0ef41Sopenharmony_ci#define SL78  5
1841cb0ef41Sopenharmony_ci#define WL79 13
1851cb0ef41Sopenharmony_ci#define SL79  6
1861cb0ef41Sopenharmony_ci
1871cb0ef41Sopenharmony_ci#define WR00  5
1881cb0ef41Sopenharmony_ci#define SR00  8
1891cb0ef41Sopenharmony_ci#define WR01 14
1901cb0ef41Sopenharmony_ci#define SR01  9
1911cb0ef41Sopenharmony_ci#define WR02  7
1921cb0ef41Sopenharmony_ci#define SR02  9
1931cb0ef41Sopenharmony_ci#define WR03  0
1941cb0ef41Sopenharmony_ci#define SR03 11
1951cb0ef41Sopenharmony_ci#define WR04  9
1961cb0ef41Sopenharmony_ci#define SR04 13
1971cb0ef41Sopenharmony_ci#define WR05  2
1981cb0ef41Sopenharmony_ci#define SR05 15
1991cb0ef41Sopenharmony_ci#define WR06 11
2001cb0ef41Sopenharmony_ci#define SR06 15
2011cb0ef41Sopenharmony_ci#define WR07  4
2021cb0ef41Sopenharmony_ci#define SR07  5
2031cb0ef41Sopenharmony_ci#define WR08 13
2041cb0ef41Sopenharmony_ci#define SR08  7
2051cb0ef41Sopenharmony_ci#define WR09  6
2061cb0ef41Sopenharmony_ci#define SR09  7
2071cb0ef41Sopenharmony_ci#define WR10 15
2081cb0ef41Sopenharmony_ci#define SR10  8
2091cb0ef41Sopenharmony_ci#define WR11  8
2101cb0ef41Sopenharmony_ci#define SR11 11
2111cb0ef41Sopenharmony_ci#define WR12  1
2121cb0ef41Sopenharmony_ci#define SR12 14
2131cb0ef41Sopenharmony_ci#define WR13 10
2141cb0ef41Sopenharmony_ci#define SR13 14
2151cb0ef41Sopenharmony_ci#define WR14  3
2161cb0ef41Sopenharmony_ci#define SR14 12
2171cb0ef41Sopenharmony_ci#define WR15 12
2181cb0ef41Sopenharmony_ci#define SR15  6
2191cb0ef41Sopenharmony_ci
2201cb0ef41Sopenharmony_ci#define WR16  6
2211cb0ef41Sopenharmony_ci#define SR16  9
2221cb0ef41Sopenharmony_ci#define WR17 11
2231cb0ef41Sopenharmony_ci#define SR17 13
2241cb0ef41Sopenharmony_ci#define WR18  3
2251cb0ef41Sopenharmony_ci#define SR18 15
2261cb0ef41Sopenharmony_ci#define WR19  7
2271cb0ef41Sopenharmony_ci#define SR19  7
2281cb0ef41Sopenharmony_ci#define WR20  0
2291cb0ef41Sopenharmony_ci#define SR20 12
2301cb0ef41Sopenharmony_ci#define WR21 13
2311cb0ef41Sopenharmony_ci#define SR21  8
2321cb0ef41Sopenharmony_ci#define WR22  5
2331cb0ef41Sopenharmony_ci#define SR22  9
2341cb0ef41Sopenharmony_ci#define WR23 10
2351cb0ef41Sopenharmony_ci#define SR23 11
2361cb0ef41Sopenharmony_ci#define WR24 14
2371cb0ef41Sopenharmony_ci#define SR24  7
2381cb0ef41Sopenharmony_ci#define WR25 15
2391cb0ef41Sopenharmony_ci#define SR25  7
2401cb0ef41Sopenharmony_ci#define WR26  8
2411cb0ef41Sopenharmony_ci#define SR26 12
2421cb0ef41Sopenharmony_ci#define WR27 12
2431cb0ef41Sopenharmony_ci#define SR27  7
2441cb0ef41Sopenharmony_ci#define WR28  4
2451cb0ef41Sopenharmony_ci#define SR28  6
2461cb0ef41Sopenharmony_ci#define WR29  9
2471cb0ef41Sopenharmony_ci#define SR29 15
2481cb0ef41Sopenharmony_ci#define WR30  1
2491cb0ef41Sopenharmony_ci#define SR30 13
2501cb0ef41Sopenharmony_ci#define WR31  2
2511cb0ef41Sopenharmony_ci#define SR31 11
2521cb0ef41Sopenharmony_ci
2531cb0ef41Sopenharmony_ci#define WR32 15
2541cb0ef41Sopenharmony_ci#define SR32  9
2551cb0ef41Sopenharmony_ci#define WR33  5
2561cb0ef41Sopenharmony_ci#define SR33  7
2571cb0ef41Sopenharmony_ci#define WR34  1
2581cb0ef41Sopenharmony_ci#define SR34 15
2591cb0ef41Sopenharmony_ci#define WR35  3
2601cb0ef41Sopenharmony_ci#define SR35 11
2611cb0ef41Sopenharmony_ci#define WR36  7
2621cb0ef41Sopenharmony_ci#define SR36  8
2631cb0ef41Sopenharmony_ci#define WR37 14
2641cb0ef41Sopenharmony_ci#define SR37  6
2651cb0ef41Sopenharmony_ci#define WR38  6
2661cb0ef41Sopenharmony_ci#define SR38  6
2671cb0ef41Sopenharmony_ci#define WR39  9
2681cb0ef41Sopenharmony_ci#define SR39 14
2691cb0ef41Sopenharmony_ci#define WR40 11
2701cb0ef41Sopenharmony_ci#define SR40 12
2711cb0ef41Sopenharmony_ci#define WR41  8
2721cb0ef41Sopenharmony_ci#define SR41 13
2731cb0ef41Sopenharmony_ci#define WR42 12
2741cb0ef41Sopenharmony_ci#define SR42  5
2751cb0ef41Sopenharmony_ci#define WR43  2
2761cb0ef41Sopenharmony_ci#define SR43 14
2771cb0ef41Sopenharmony_ci#define WR44 10
2781cb0ef41Sopenharmony_ci#define SR44 13
2791cb0ef41Sopenharmony_ci#define WR45  0
2801cb0ef41Sopenharmony_ci#define SR45 13
2811cb0ef41Sopenharmony_ci#define WR46  4
2821cb0ef41Sopenharmony_ci#define SR46  7
2831cb0ef41Sopenharmony_ci#define WR47 13
2841cb0ef41Sopenharmony_ci#define SR47  5
2851cb0ef41Sopenharmony_ci
2861cb0ef41Sopenharmony_ci#define WR48  8
2871cb0ef41Sopenharmony_ci#define SR48 15
2881cb0ef41Sopenharmony_ci#define WR49  6
2891cb0ef41Sopenharmony_ci#define SR49  5
2901cb0ef41Sopenharmony_ci#define WR50  4
2911cb0ef41Sopenharmony_ci#define SR50  8
2921cb0ef41Sopenharmony_ci#define WR51  1
2931cb0ef41Sopenharmony_ci#define SR51 11
2941cb0ef41Sopenharmony_ci#define WR52  3
2951cb0ef41Sopenharmony_ci#define SR52 14
2961cb0ef41Sopenharmony_ci#define WR53 11
2971cb0ef41Sopenharmony_ci#define SR53 14
2981cb0ef41Sopenharmony_ci#define WR54 15
2991cb0ef41Sopenharmony_ci#define SR54  6
3001cb0ef41Sopenharmony_ci#define WR55  0
3011cb0ef41Sopenharmony_ci#define SR55 14
3021cb0ef41Sopenharmony_ci#define WR56  5
3031cb0ef41Sopenharmony_ci#define SR56  6
3041cb0ef41Sopenharmony_ci#define WR57 12
3051cb0ef41Sopenharmony_ci#define SR57  9
3061cb0ef41Sopenharmony_ci#define WR58  2
3071cb0ef41Sopenharmony_ci#define SR58 12
3081cb0ef41Sopenharmony_ci#define WR59 13
3091cb0ef41Sopenharmony_ci#define SR59  9
3101cb0ef41Sopenharmony_ci#define WR60  9
3111cb0ef41Sopenharmony_ci#define SR60 12
3121cb0ef41Sopenharmony_ci#define WR61  7
3131cb0ef41Sopenharmony_ci#define SR61  5
3141cb0ef41Sopenharmony_ci#define WR62 10
3151cb0ef41Sopenharmony_ci#define SR62 15
3161cb0ef41Sopenharmony_ci#define WR63 14
3171cb0ef41Sopenharmony_ci#define SR63  8
3181cb0ef41Sopenharmony_ci
3191cb0ef41Sopenharmony_ci#define WR64 12
3201cb0ef41Sopenharmony_ci#define SR64  8
3211cb0ef41Sopenharmony_ci#define WR65 15
3221cb0ef41Sopenharmony_ci#define SR65  5
3231cb0ef41Sopenharmony_ci#define WR66 10
3241cb0ef41Sopenharmony_ci#define SR66 12
3251cb0ef41Sopenharmony_ci#define WR67  4
3261cb0ef41Sopenharmony_ci#define SR67  9
3271cb0ef41Sopenharmony_ci#define WR68  1
3281cb0ef41Sopenharmony_ci#define SR68 12
3291cb0ef41Sopenharmony_ci#define WR69  5
3301cb0ef41Sopenharmony_ci#define SR69  5
3311cb0ef41Sopenharmony_ci#define WR70  8
3321cb0ef41Sopenharmony_ci#define SR70 14
3331cb0ef41Sopenharmony_ci#define WR71  7
3341cb0ef41Sopenharmony_ci#define SR71  6
3351cb0ef41Sopenharmony_ci#define WR72  6
3361cb0ef41Sopenharmony_ci#define SR72  8
3371cb0ef41Sopenharmony_ci#define WR73  2
3381cb0ef41Sopenharmony_ci#define SR73 13
3391cb0ef41Sopenharmony_ci#define WR74 13
3401cb0ef41Sopenharmony_ci#define SR74  6
3411cb0ef41Sopenharmony_ci#define WR75 14
3421cb0ef41Sopenharmony_ci#define SR75  5
3431cb0ef41Sopenharmony_ci#define WR76  0
3441cb0ef41Sopenharmony_ci#define SR76 15
3451cb0ef41Sopenharmony_ci#define WR77  3
3461cb0ef41Sopenharmony_ci#define SR77 13
3471cb0ef41Sopenharmony_ci#define WR78  9
3481cb0ef41Sopenharmony_ci#define SR78 11
3491cb0ef41Sopenharmony_ci#define WR79 11
3501cb0ef41Sopenharmony_ci#define SR79 11
351