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_ciconst DES_LONG DES_SPtrans[8][64] = {
11e1051a39Sopenharmony_ci    {
12e1051a39Sopenharmony_ci        /* nibble 0 */
13e1051a39Sopenharmony_ci        0x02080800L, 0x00080000L, 0x02000002L, 0x02080802L,
14e1051a39Sopenharmony_ci        0x02000000L, 0x00080802L, 0x00080002L, 0x02000002L,
15e1051a39Sopenharmony_ci        0x00080802L, 0x02080800L, 0x02080000L, 0x00000802L,
16e1051a39Sopenharmony_ci        0x02000802L, 0x02000000L, 0x00000000L, 0x00080002L,
17e1051a39Sopenharmony_ci        0x00080000L, 0x00000002L, 0x02000800L, 0x00080800L,
18e1051a39Sopenharmony_ci        0x02080802L, 0x02080000L, 0x00000802L, 0x02000800L,
19e1051a39Sopenharmony_ci        0x00000002L, 0x00000800L, 0x00080800L, 0x02080002L,
20e1051a39Sopenharmony_ci        0x00000800L, 0x02000802L, 0x02080002L, 0x00000000L,
21e1051a39Sopenharmony_ci        0x00000000L, 0x02080802L, 0x02000800L, 0x00080002L,
22e1051a39Sopenharmony_ci        0x02080800L, 0x00080000L, 0x00000802L, 0x02000800L,
23e1051a39Sopenharmony_ci        0x02080002L, 0x00000800L, 0x00080800L, 0x02000002L,
24e1051a39Sopenharmony_ci        0x00080802L, 0x00000002L, 0x02000002L, 0x02080000L,
25e1051a39Sopenharmony_ci        0x02080802L, 0x00080800L, 0x02080000L, 0x02000802L,
26e1051a39Sopenharmony_ci        0x02000000L, 0x00000802L, 0x00080002L, 0x00000000L,
27e1051a39Sopenharmony_ci        0x00080000L, 0x02000000L, 0x02000802L, 0x02080800L,
28e1051a39Sopenharmony_ci        0x00000002L, 0x02080002L, 0x00000800L, 0x00080802L,
29e1051a39Sopenharmony_ci    },
30e1051a39Sopenharmony_ci    {
31e1051a39Sopenharmony_ci        /* nibble 1 */
32e1051a39Sopenharmony_ci        0x40108010L, 0x00000000L, 0x00108000L, 0x40100000L,
33e1051a39Sopenharmony_ci        0x40000010L, 0x00008010L, 0x40008000L, 0x00108000L,
34e1051a39Sopenharmony_ci        0x00008000L, 0x40100010L, 0x00000010L, 0x40008000L,
35e1051a39Sopenharmony_ci        0x00100010L, 0x40108000L, 0x40100000L, 0x00000010L,
36e1051a39Sopenharmony_ci        0x00100000L, 0x40008010L, 0x40100010L, 0x00008000L,
37e1051a39Sopenharmony_ci        0x00108010L, 0x40000000L, 0x00000000L, 0x00100010L,
38e1051a39Sopenharmony_ci        0x40008010L, 0x00108010L, 0x40108000L, 0x40000010L,
39e1051a39Sopenharmony_ci        0x40000000L, 0x00100000L, 0x00008010L, 0x40108010L,
40e1051a39Sopenharmony_ci        0x00100010L, 0x40108000L, 0x40008000L, 0x00108010L,
41e1051a39Sopenharmony_ci        0x40108010L, 0x00100010L, 0x40000010L, 0x00000000L,
42e1051a39Sopenharmony_ci        0x40000000L, 0x00008010L, 0x00100000L, 0x40100010L,
43e1051a39Sopenharmony_ci        0x00008000L, 0x40000000L, 0x00108010L, 0x40008010L,
44e1051a39Sopenharmony_ci        0x40108000L, 0x00008000L, 0x00000000L, 0x40000010L,
45e1051a39Sopenharmony_ci        0x00000010L, 0x40108010L, 0x00108000L, 0x40100000L,
46e1051a39Sopenharmony_ci        0x40100010L, 0x00100000L, 0x00008010L, 0x40008000L,
47e1051a39Sopenharmony_ci        0x40008010L, 0x00000010L, 0x40100000L, 0x00108000L,
48e1051a39Sopenharmony_ci    },
49e1051a39Sopenharmony_ci    {
50e1051a39Sopenharmony_ci        /* nibble 2 */
51e1051a39Sopenharmony_ci        0x04000001L, 0x04040100L, 0x00000100L, 0x04000101L,
52e1051a39Sopenharmony_ci        0x00040001L, 0x04000000L, 0x04000101L, 0x00040100L,
53e1051a39Sopenharmony_ci        0x04000100L, 0x00040000L, 0x04040000L, 0x00000001L,
54e1051a39Sopenharmony_ci        0x04040101L, 0x00000101L, 0x00000001L, 0x04040001L,
55e1051a39Sopenharmony_ci        0x00000000L, 0x00040001L, 0x04040100L, 0x00000100L,
56e1051a39Sopenharmony_ci        0x00000101L, 0x04040101L, 0x00040000L, 0x04000001L,
57e1051a39Sopenharmony_ci        0x04040001L, 0x04000100L, 0x00040101L, 0x04040000L,
58e1051a39Sopenharmony_ci        0x00040100L, 0x00000000L, 0x04000000L, 0x00040101L,
59e1051a39Sopenharmony_ci        0x04040100L, 0x00000100L, 0x00000001L, 0x00040000L,
60e1051a39Sopenharmony_ci        0x00000101L, 0x00040001L, 0x04040000L, 0x04000101L,
61e1051a39Sopenharmony_ci        0x00000000L, 0x04040100L, 0x00040100L, 0x04040001L,
62e1051a39Sopenharmony_ci        0x00040001L, 0x04000000L, 0x04040101L, 0x00000001L,
63e1051a39Sopenharmony_ci        0x00040101L, 0x04000001L, 0x04000000L, 0x04040101L,
64e1051a39Sopenharmony_ci        0x00040000L, 0x04000100L, 0x04000101L, 0x00040100L,
65e1051a39Sopenharmony_ci        0x04000100L, 0x00000000L, 0x04040001L, 0x00000101L,
66e1051a39Sopenharmony_ci        0x04000001L, 0x00040101L, 0x00000100L, 0x04040000L,
67e1051a39Sopenharmony_ci    },
68e1051a39Sopenharmony_ci    {
69e1051a39Sopenharmony_ci        /* nibble 3 */
70e1051a39Sopenharmony_ci        0x00401008L, 0x10001000L, 0x00000008L, 0x10401008L,
71e1051a39Sopenharmony_ci        0x00000000L, 0x10400000L, 0x10001008L, 0x00400008L,
72e1051a39Sopenharmony_ci        0x10401000L, 0x10000008L, 0x10000000L, 0x00001008L,
73e1051a39Sopenharmony_ci        0x10000008L, 0x00401008L, 0x00400000L, 0x10000000L,
74e1051a39Sopenharmony_ci        0x10400008L, 0x00401000L, 0x00001000L, 0x00000008L,
75e1051a39Sopenharmony_ci        0x00401000L, 0x10001008L, 0x10400000L, 0x00001000L,
76e1051a39Sopenharmony_ci        0x00001008L, 0x00000000L, 0x00400008L, 0x10401000L,
77e1051a39Sopenharmony_ci        0x10001000L, 0x10400008L, 0x10401008L, 0x00400000L,
78e1051a39Sopenharmony_ci        0x10400008L, 0x00001008L, 0x00400000L, 0x10000008L,
79e1051a39Sopenharmony_ci        0x00401000L, 0x10001000L, 0x00000008L, 0x10400000L,
80e1051a39Sopenharmony_ci        0x10001008L, 0x00000000L, 0x00001000L, 0x00400008L,
81e1051a39Sopenharmony_ci        0x00000000L, 0x10400008L, 0x10401000L, 0x00001000L,
82e1051a39Sopenharmony_ci        0x10000000L, 0x10401008L, 0x00401008L, 0x00400000L,
83e1051a39Sopenharmony_ci        0x10401008L, 0x00000008L, 0x10001000L, 0x00401008L,
84e1051a39Sopenharmony_ci        0x00400008L, 0x00401000L, 0x10400000L, 0x10001008L,
85e1051a39Sopenharmony_ci        0x00001008L, 0x10000000L, 0x10000008L, 0x10401000L,
86e1051a39Sopenharmony_ci    },
87e1051a39Sopenharmony_ci    {
88e1051a39Sopenharmony_ci        /* nibble 4 */
89e1051a39Sopenharmony_ci        0x08000000L, 0x00010000L, 0x00000400L, 0x08010420L,
90e1051a39Sopenharmony_ci        0x08010020L, 0x08000400L, 0x00010420L, 0x08010000L,
91e1051a39Sopenharmony_ci        0x00010000L, 0x00000020L, 0x08000020L, 0x00010400L,
92e1051a39Sopenharmony_ci        0x08000420L, 0x08010020L, 0x08010400L, 0x00000000L,
93e1051a39Sopenharmony_ci        0x00010400L, 0x08000000L, 0x00010020L, 0x00000420L,
94e1051a39Sopenharmony_ci        0x08000400L, 0x00010420L, 0x00000000L, 0x08000020L,
95e1051a39Sopenharmony_ci        0x00000020L, 0x08000420L, 0x08010420L, 0x00010020L,
96e1051a39Sopenharmony_ci        0x08010000L, 0x00000400L, 0x00000420L, 0x08010400L,
97e1051a39Sopenharmony_ci        0x08010400L, 0x08000420L, 0x00010020L, 0x08010000L,
98e1051a39Sopenharmony_ci        0x00010000L, 0x00000020L, 0x08000020L, 0x08000400L,
99e1051a39Sopenharmony_ci        0x08000000L, 0x00010400L, 0x08010420L, 0x00000000L,
100e1051a39Sopenharmony_ci        0x00010420L, 0x08000000L, 0x00000400L, 0x00010020L,
101e1051a39Sopenharmony_ci        0x08000420L, 0x00000400L, 0x00000000L, 0x08010420L,
102e1051a39Sopenharmony_ci        0x08010020L, 0x08010400L, 0x00000420L, 0x00010000L,
103e1051a39Sopenharmony_ci        0x00010400L, 0x08010020L, 0x08000400L, 0x00000420L,
104e1051a39Sopenharmony_ci        0x00000020L, 0x00010420L, 0x08010000L, 0x08000020L,
105e1051a39Sopenharmony_ci    },
106e1051a39Sopenharmony_ci    {
107e1051a39Sopenharmony_ci        /* nibble 5 */
108e1051a39Sopenharmony_ci        0x80000040L, 0x00200040L, 0x00000000L, 0x80202000L,
109e1051a39Sopenharmony_ci        0x00200040L, 0x00002000L, 0x80002040L, 0x00200000L,
110e1051a39Sopenharmony_ci        0x00002040L, 0x80202040L, 0x00202000L, 0x80000000L,
111e1051a39Sopenharmony_ci        0x80002000L, 0x80000040L, 0x80200000L, 0x00202040L,
112e1051a39Sopenharmony_ci        0x00200000L, 0x80002040L, 0x80200040L, 0x00000000L,
113e1051a39Sopenharmony_ci        0x00002000L, 0x00000040L, 0x80202000L, 0x80200040L,
114e1051a39Sopenharmony_ci        0x80202040L, 0x80200000L, 0x80000000L, 0x00002040L,
115e1051a39Sopenharmony_ci        0x00000040L, 0x00202000L, 0x00202040L, 0x80002000L,
116e1051a39Sopenharmony_ci        0x00002040L, 0x80000000L, 0x80002000L, 0x00202040L,
117e1051a39Sopenharmony_ci        0x80202000L, 0x00200040L, 0x00000000L, 0x80002000L,
118e1051a39Sopenharmony_ci        0x80000000L, 0x00002000L, 0x80200040L, 0x00200000L,
119e1051a39Sopenharmony_ci        0x00200040L, 0x80202040L, 0x00202000L, 0x00000040L,
120e1051a39Sopenharmony_ci        0x80202040L, 0x00202000L, 0x00200000L, 0x80002040L,
121e1051a39Sopenharmony_ci        0x80000040L, 0x80200000L, 0x00202040L, 0x00000000L,
122e1051a39Sopenharmony_ci        0x00002000L, 0x80000040L, 0x80002040L, 0x80202000L,
123e1051a39Sopenharmony_ci        0x80200000L, 0x00002040L, 0x00000040L, 0x80200040L,
124e1051a39Sopenharmony_ci    },
125e1051a39Sopenharmony_ci    {
126e1051a39Sopenharmony_ci        /* nibble 6 */
127e1051a39Sopenharmony_ci        0x00004000L, 0x00000200L, 0x01000200L, 0x01000004L,
128e1051a39Sopenharmony_ci        0x01004204L, 0x00004004L, 0x00004200L, 0x00000000L,
129e1051a39Sopenharmony_ci        0x01000000L, 0x01000204L, 0x00000204L, 0x01004000L,
130e1051a39Sopenharmony_ci        0x00000004L, 0x01004200L, 0x01004000L, 0x00000204L,
131e1051a39Sopenharmony_ci        0x01000204L, 0x00004000L, 0x00004004L, 0x01004204L,
132e1051a39Sopenharmony_ci        0x00000000L, 0x01000200L, 0x01000004L, 0x00004200L,
133e1051a39Sopenharmony_ci        0x01004004L, 0x00004204L, 0x01004200L, 0x00000004L,
134e1051a39Sopenharmony_ci        0x00004204L, 0x01004004L, 0x00000200L, 0x01000000L,
135e1051a39Sopenharmony_ci        0x00004204L, 0x01004000L, 0x01004004L, 0x00000204L,
136e1051a39Sopenharmony_ci        0x00004000L, 0x00000200L, 0x01000000L, 0x01004004L,
137e1051a39Sopenharmony_ci        0x01000204L, 0x00004204L, 0x00004200L, 0x00000000L,
138e1051a39Sopenharmony_ci        0x00000200L, 0x01000004L, 0x00000004L, 0x01000200L,
139e1051a39Sopenharmony_ci        0x00000000L, 0x01000204L, 0x01000200L, 0x00004200L,
140e1051a39Sopenharmony_ci        0x00000204L, 0x00004000L, 0x01004204L, 0x01000000L,
141e1051a39Sopenharmony_ci        0x01004200L, 0x00000004L, 0x00004004L, 0x01004204L,
142e1051a39Sopenharmony_ci        0x01000004L, 0x01004200L, 0x01004000L, 0x00004004L,
143e1051a39Sopenharmony_ci    },
144e1051a39Sopenharmony_ci    {
145e1051a39Sopenharmony_ci        /* nibble 7 */
146e1051a39Sopenharmony_ci        0x20800080L, 0x20820000L, 0x00020080L, 0x00000000L,
147e1051a39Sopenharmony_ci        0x20020000L, 0x00800080L, 0x20800000L, 0x20820080L,
148e1051a39Sopenharmony_ci        0x00000080L, 0x20000000L, 0x00820000L, 0x00020080L,
149e1051a39Sopenharmony_ci        0x00820080L, 0x20020080L, 0x20000080L, 0x20800000L,
150e1051a39Sopenharmony_ci        0x00020000L, 0x00820080L, 0x00800080L, 0x20020000L,
151e1051a39Sopenharmony_ci        0x20820080L, 0x20000080L, 0x00000000L, 0x00820000L,
152e1051a39Sopenharmony_ci        0x20000000L, 0x00800000L, 0x20020080L, 0x20800080L,
153e1051a39Sopenharmony_ci        0x00800000L, 0x00020000L, 0x20820000L, 0x00000080L,
154e1051a39Sopenharmony_ci        0x00800000L, 0x00020000L, 0x20000080L, 0x20820080L,
155e1051a39Sopenharmony_ci        0x00020080L, 0x20000000L, 0x00000000L, 0x00820000L,
156e1051a39Sopenharmony_ci        0x20800080L, 0x20020080L, 0x20020000L, 0x00800080L,
157e1051a39Sopenharmony_ci        0x20820000L, 0x00000080L, 0x00800080L, 0x20020000L,
158e1051a39Sopenharmony_ci        0x20820080L, 0x00800000L, 0x20800000L, 0x20000080L,
159e1051a39Sopenharmony_ci        0x00820000L, 0x00020080L, 0x20020080L, 0x20800000L,
160e1051a39Sopenharmony_ci        0x00000080L, 0x20820000L, 0x00820080L, 0x00000000L,
161e1051a39Sopenharmony_ci        0x20000000L, 0x20800080L, 0x00020000L, 0x00820080L,
162e1051a39Sopenharmony_ci    }
163e1051a39Sopenharmony_ci};
164