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