Botan  2.8.0
Crypto and TLS for C++11
des_tab.cpp
Go to the documentation of this file.
1 /*
2 * Substitution/Permutation Tables for DES
3 * (C) 1999-2007 Jack Lloyd
4 *
5 * Botan is released under the Simplified BSD License (see license.txt)
6 */
7 
8 #include <botan/des.h>
9 
10 namespace Botan {
11 
12 const uint32_t DES_SPBOX1[256] = {
13  0x01010400, 0x00000000, 0x00010000, 0x01010404, 0x01010004, 0x00010404,
14  0x00000004, 0x00010000, 0x00000400, 0x01010400, 0x01010404, 0x00000400,
15  0x01000404, 0x01010004, 0x01000000, 0x00000004, 0x00000404, 0x01000400,
16  0x01000400, 0x00010400, 0x00010400, 0x01010000, 0x01010000, 0x01000404,
17  0x00010004, 0x01000004, 0x01000004, 0x00010004, 0x00000000, 0x00000404,
18  0x00010404, 0x01000000, 0x00010000, 0x01010404, 0x00000004, 0x01010000,
19  0x01010400, 0x01000000, 0x01000000, 0x00000400, 0x01010004, 0x00010000,
20  0x00010400, 0x01000004, 0x00000400, 0x00000004, 0x01000404, 0x00010404,
21  0x01010404, 0x00010004, 0x01010000, 0x01000404, 0x01000004, 0x00000404,
22  0x00010404, 0x01010400, 0x00000404, 0x01000400, 0x01000400, 0x00000000,
23  0x00010004, 0x00010400, 0x00000000, 0x01010004, 0x01010400, 0x00000000,
24  0x00010000, 0x01010404, 0x01010004, 0x00010404, 0x00000004, 0x00010000,
25  0x00000400, 0x01010400, 0x01010404, 0x00000400, 0x01000404, 0x01010004,
26  0x01000000, 0x00000004, 0x00000404, 0x01000400, 0x01000400, 0x00010400,
27  0x00010400, 0x01010000, 0x01010000, 0x01000404, 0x00010004, 0x01000004,
28  0x01000004, 0x00010004, 0x00000000, 0x00000404, 0x00010404, 0x01000000,
29  0x00010000, 0x01010404, 0x00000004, 0x01010000, 0x01010400, 0x01000000,
30  0x01000000, 0x00000400, 0x01010004, 0x00010000, 0x00010400, 0x01000004,
31  0x00000400, 0x00000004, 0x01000404, 0x00010404, 0x01010404, 0x00010004,
32  0x01010000, 0x01000404, 0x01000004, 0x00000404, 0x00010404, 0x01010400,
33  0x00000404, 0x01000400, 0x01000400, 0x00000000, 0x00010004, 0x00010400,
34  0x00000000, 0x01010004, 0x01010400, 0x00000000, 0x00010000, 0x01010404,
35  0x01010004, 0x00010404, 0x00000004, 0x00010000, 0x00000400, 0x01010400,
36  0x01010404, 0x00000400, 0x01000404, 0x01010004, 0x01000000, 0x00000004,
37  0x00000404, 0x01000400, 0x01000400, 0x00010400, 0x00010400, 0x01010000,
38  0x01010000, 0x01000404, 0x00010004, 0x01000004, 0x01000004, 0x00010004,
39  0x00000000, 0x00000404, 0x00010404, 0x01000000, 0x00010000, 0x01010404,
40  0x00000004, 0x01010000, 0x01010400, 0x01000000, 0x01000000, 0x00000400,
41  0x01010004, 0x00010000, 0x00010400, 0x01000004, 0x00000400, 0x00000004,
42  0x01000404, 0x00010404, 0x01010404, 0x00010004, 0x01010000, 0x01000404,
43  0x01000004, 0x00000404, 0x00010404, 0x01010400, 0x00000404, 0x01000400,
44  0x01000400, 0x00000000, 0x00010004, 0x00010400, 0x00000000, 0x01010004,
45  0x01010400, 0x00000000, 0x00010000, 0x01010404, 0x01010004, 0x00010404,
46  0x00000004, 0x00010000, 0x00000400, 0x01010400, 0x01010404, 0x00000400,
47  0x01000404, 0x01010004, 0x01000000, 0x00000004, 0x00000404, 0x01000400,
48  0x01000400, 0x00010400, 0x00010400, 0x01010000, 0x01010000, 0x01000404,
49  0x00010004, 0x01000004, 0x01000004, 0x00010004, 0x00000000, 0x00000404,
50  0x00010404, 0x01000000, 0x00010000, 0x01010404, 0x00000004, 0x01010000,
51  0x01010400, 0x01000000, 0x01000000, 0x00000400, 0x01010004, 0x00010000,
52  0x00010400, 0x01000004, 0x00000400, 0x00000004, 0x01000404, 0x00010404,
53  0x01010404, 0x00010004, 0x01010000, 0x01000404, 0x01000004, 0x00000404,
54  0x00010404, 0x01010400, 0x00000404, 0x01000400, 0x01000400, 0x00000000,
55  0x00010004, 0x00010400, 0x00000000, 0x01010004 };
56 
57 const uint32_t DES_SPBOX2[256] = {
58  0x80108020, 0x80008000, 0x00008000, 0x00108020, 0x00100000, 0x00000020,
59  0x80100020, 0x80008020, 0x80000020, 0x80108020, 0x80108000, 0x80000000,
60  0x80008000, 0x00100000, 0x00000020, 0x80100020, 0x00108000, 0x00100020,
61  0x80008020, 0x00000000, 0x80000000, 0x00008000, 0x00108020, 0x80100000,
62  0x00100020, 0x80000020, 0x00000000, 0x00108000, 0x00008020, 0x80108000,
63  0x80100000, 0x00008020, 0x00000000, 0x00108020, 0x80100020, 0x00100000,
64  0x80008020, 0x80100000, 0x80108000, 0x00008000, 0x80100000, 0x80008000,
65  0x00000020, 0x80108020, 0x00108020, 0x00000020, 0x00008000, 0x80000000,
66  0x00008020, 0x80108000, 0x00100000, 0x80000020, 0x00100020, 0x80008020,
67  0x80000020, 0x00100020, 0x00108000, 0x00000000, 0x80008000, 0x00008020,
68  0x80000000, 0x80100020, 0x80108020, 0x00108000, 0x80108020, 0x80008000,
69  0x00008000, 0x00108020, 0x00100000, 0x00000020, 0x80100020, 0x80008020,
70  0x80000020, 0x80108020, 0x80108000, 0x80000000, 0x80008000, 0x00100000,
71  0x00000020, 0x80100020, 0x00108000, 0x00100020, 0x80008020, 0x00000000,
72  0x80000000, 0x00008000, 0x00108020, 0x80100000, 0x00100020, 0x80000020,
73  0x00000000, 0x00108000, 0x00008020, 0x80108000, 0x80100000, 0x00008020,
74  0x00000000, 0x00108020, 0x80100020, 0x00100000, 0x80008020, 0x80100000,
75  0x80108000, 0x00008000, 0x80100000, 0x80008000, 0x00000020, 0x80108020,
76  0x00108020, 0x00000020, 0x00008000, 0x80000000, 0x00008020, 0x80108000,
77  0x00100000, 0x80000020, 0x00100020, 0x80008020, 0x80000020, 0x00100020,
78  0x00108000, 0x00000000, 0x80008000, 0x00008020, 0x80000000, 0x80100020,
79  0x80108020, 0x00108000, 0x80108020, 0x80008000, 0x00008000, 0x00108020,
80  0x00100000, 0x00000020, 0x80100020, 0x80008020, 0x80000020, 0x80108020,
81  0x80108000, 0x80000000, 0x80008000, 0x00100000, 0x00000020, 0x80100020,
82  0x00108000, 0x00100020, 0x80008020, 0x00000000, 0x80000000, 0x00008000,
83  0x00108020, 0x80100000, 0x00100020, 0x80000020, 0x00000000, 0x00108000,
84  0x00008020, 0x80108000, 0x80100000, 0x00008020, 0x00000000, 0x00108020,
85  0x80100020, 0x00100000, 0x80008020, 0x80100000, 0x80108000, 0x00008000,
86  0x80100000, 0x80008000, 0x00000020, 0x80108020, 0x00108020, 0x00000020,
87  0x00008000, 0x80000000, 0x00008020, 0x80108000, 0x00100000, 0x80000020,
88  0x00100020, 0x80008020, 0x80000020, 0x00100020, 0x00108000, 0x00000000,
89  0x80008000, 0x00008020, 0x80000000, 0x80100020, 0x80108020, 0x00108000,
90  0x80108020, 0x80008000, 0x00008000, 0x00108020, 0x00100000, 0x00000020,
91  0x80100020, 0x80008020, 0x80000020, 0x80108020, 0x80108000, 0x80000000,
92  0x80008000, 0x00100000, 0x00000020, 0x80100020, 0x00108000, 0x00100020,
93  0x80008020, 0x00000000, 0x80000000, 0x00008000, 0x00108020, 0x80100000,
94  0x00100020, 0x80000020, 0x00000000, 0x00108000, 0x00008020, 0x80108000,
95  0x80100000, 0x00008020, 0x00000000, 0x00108020, 0x80100020, 0x00100000,
96  0x80008020, 0x80100000, 0x80108000, 0x00008000, 0x80100000, 0x80008000,
97  0x00000020, 0x80108020, 0x00108020, 0x00000020, 0x00008000, 0x80000000,
98  0x00008020, 0x80108000, 0x00100000, 0x80000020, 0x00100020, 0x80008020,
99  0x80000020, 0x00100020, 0x00108000, 0x00000000, 0x80008000, 0x00008020,
100  0x80000000, 0x80100020, 0x80108020, 0x00108000 };
101 
102 const uint32_t DES_SPBOX3[256] = {
103  0x00000208, 0x08020200, 0x00000000, 0x08020008, 0x08000200, 0x00000000,
104  0x00020208, 0x08000200, 0x00020008, 0x08000008, 0x08000008, 0x00020000,
105  0x08020208, 0x00020008, 0x08020000, 0x00000208, 0x08000000, 0x00000008,
106  0x08020200, 0x00000200, 0x00020200, 0x08020000, 0x08020008, 0x00020208,
107  0x08000208, 0x00020200, 0x00020000, 0x08000208, 0x00000008, 0x08020208,
108  0x00000200, 0x08000000, 0x08020200, 0x08000000, 0x00020008, 0x00000208,
109  0x00020000, 0x08020200, 0x08000200, 0x00000000, 0x00000200, 0x00020008,
110  0x08020208, 0x08000200, 0x08000008, 0x00000200, 0x00000000, 0x08020008,
111  0x08000208, 0x00020000, 0x08000000, 0x08020208, 0x00000008, 0x00020208,
112  0x00020200, 0x08000008, 0x08020000, 0x08000208, 0x00000208, 0x08020000,
113  0x00020208, 0x00000008, 0x08020008, 0x00020200, 0x00000208, 0x08020200,
114  0x00000000, 0x08020008, 0x08000200, 0x00000000, 0x00020208, 0x08000200,
115  0x00020008, 0x08000008, 0x08000008, 0x00020000, 0x08020208, 0x00020008,
116  0x08020000, 0x00000208, 0x08000000, 0x00000008, 0x08020200, 0x00000200,
117  0x00020200, 0x08020000, 0x08020008, 0x00020208, 0x08000208, 0x00020200,
118  0x00020000, 0x08000208, 0x00000008, 0x08020208, 0x00000200, 0x08000000,
119  0x08020200, 0x08000000, 0x00020008, 0x00000208, 0x00020000, 0x08020200,
120  0x08000200, 0x00000000, 0x00000200, 0x00020008, 0x08020208, 0x08000200,
121  0x08000008, 0x00000200, 0x00000000, 0x08020008, 0x08000208, 0x00020000,
122  0x08000000, 0x08020208, 0x00000008, 0x00020208, 0x00020200, 0x08000008,
123  0x08020000, 0x08000208, 0x00000208, 0x08020000, 0x00020208, 0x00000008,
124  0x08020008, 0x00020200, 0x00000208, 0x08020200, 0x00000000, 0x08020008,
125  0x08000200, 0x00000000, 0x00020208, 0x08000200, 0x00020008, 0x08000008,
126  0x08000008, 0x00020000, 0x08020208, 0x00020008, 0x08020000, 0x00000208,
127  0x08000000, 0x00000008, 0x08020200, 0x00000200, 0x00020200, 0x08020000,
128  0x08020008, 0x00020208, 0x08000208, 0x00020200, 0x00020000, 0x08000208,
129  0x00000008, 0x08020208, 0x00000200, 0x08000000, 0x08020200, 0x08000000,
130  0x00020008, 0x00000208, 0x00020000, 0x08020200, 0x08000200, 0x00000000,
131  0x00000200, 0x00020008, 0x08020208, 0x08000200, 0x08000008, 0x00000200,
132  0x00000000, 0x08020008, 0x08000208, 0x00020000, 0x08000000, 0x08020208,
133  0x00000008, 0x00020208, 0x00020200, 0x08000008, 0x08020000, 0x08000208,
134  0x00000208, 0x08020000, 0x00020208, 0x00000008, 0x08020008, 0x00020200,
135  0x00000208, 0x08020200, 0x00000000, 0x08020008, 0x08000200, 0x00000000,
136  0x00020208, 0x08000200, 0x00020008, 0x08000008, 0x08000008, 0x00020000,
137  0x08020208, 0x00020008, 0x08020000, 0x00000208, 0x08000000, 0x00000008,
138  0x08020200, 0x00000200, 0x00020200, 0x08020000, 0x08020008, 0x00020208,
139  0x08000208, 0x00020200, 0x00020000, 0x08000208, 0x00000008, 0x08020208,
140  0x00000200, 0x08000000, 0x08020200, 0x08000000, 0x00020008, 0x00000208,
141  0x00020000, 0x08020200, 0x08000200, 0x00000000, 0x00000200, 0x00020008,
142  0x08020208, 0x08000200, 0x08000008, 0x00000200, 0x00000000, 0x08020008,
143  0x08000208, 0x00020000, 0x08000000, 0x08020208, 0x00000008, 0x00020208,
144  0x00020200, 0x08000008, 0x08020000, 0x08000208, 0x00000208, 0x08020000,
145  0x00020208, 0x00000008, 0x08020008, 0x00020200 };
146 
147 const uint32_t DES_SPBOX4[256] = {
148  0x00802001, 0x00002081, 0x00002081, 0x00000080, 0x00802080, 0x00800081,
149  0x00800001, 0x00002001, 0x00000000, 0x00802000, 0x00802000, 0x00802081,
150  0x00000081, 0x00000000, 0x00800080, 0x00800001, 0x00000001, 0x00002000,
151  0x00800000, 0x00802001, 0x00000080, 0x00800000, 0x00002001, 0x00002080,
152  0x00800081, 0x00000001, 0x00002080, 0x00800080, 0x00002000, 0x00802080,
153  0x00802081, 0x00000081, 0x00800080, 0x00800001, 0x00802000, 0x00802081,
154  0x00000081, 0x00000000, 0x00000000, 0x00802000, 0x00002080, 0x00800080,
155  0x00800081, 0x00000001, 0x00802001, 0x00002081, 0x00002081, 0x00000080,
156  0x00802081, 0x00000081, 0x00000001, 0x00002000, 0x00800001, 0x00002001,
157  0x00802080, 0x00800081, 0x00002001, 0x00002080, 0x00800000, 0x00802001,
158  0x00000080, 0x00800000, 0x00002000, 0x00802080, 0x00802001, 0x00002081,
159  0x00002081, 0x00000080, 0x00802080, 0x00800081, 0x00800001, 0x00002001,
160  0x00000000, 0x00802000, 0x00802000, 0x00802081, 0x00000081, 0x00000000,
161  0x00800080, 0x00800001, 0x00000001, 0x00002000, 0x00800000, 0x00802001,
162  0x00000080, 0x00800000, 0x00002001, 0x00002080, 0x00800081, 0x00000001,
163  0x00002080, 0x00800080, 0x00002000, 0x00802080, 0x00802081, 0x00000081,
164  0x00800080, 0x00800001, 0x00802000, 0x00802081, 0x00000081, 0x00000000,
165  0x00000000, 0x00802000, 0x00002080, 0x00800080, 0x00800081, 0x00000001,
166  0x00802001, 0x00002081, 0x00002081, 0x00000080, 0x00802081, 0x00000081,
167  0x00000001, 0x00002000, 0x00800001, 0x00002001, 0x00802080, 0x00800081,
168  0x00002001, 0x00002080, 0x00800000, 0x00802001, 0x00000080, 0x00800000,
169  0x00002000, 0x00802080, 0x00802001, 0x00002081, 0x00002081, 0x00000080,
170  0x00802080, 0x00800081, 0x00800001, 0x00002001, 0x00000000, 0x00802000,
171  0x00802000, 0x00802081, 0x00000081, 0x00000000, 0x00800080, 0x00800001,
172  0x00000001, 0x00002000, 0x00800000, 0x00802001, 0x00000080, 0x00800000,
173  0x00002001, 0x00002080, 0x00800081, 0x00000001, 0x00002080, 0x00800080,
174  0x00002000, 0x00802080, 0x00802081, 0x00000081, 0x00800080, 0x00800001,
175  0x00802000, 0x00802081, 0x00000081, 0x00000000, 0x00000000, 0x00802000,
176  0x00002080, 0x00800080, 0x00800081, 0x00000001, 0x00802001, 0x00002081,
177  0x00002081, 0x00000080, 0x00802081, 0x00000081, 0x00000001, 0x00002000,
178  0x00800001, 0x00002001, 0x00802080, 0x00800081, 0x00002001, 0x00002080,
179  0x00800000, 0x00802001, 0x00000080, 0x00800000, 0x00002000, 0x00802080,
180  0x00802001, 0x00002081, 0x00002081, 0x00000080, 0x00802080, 0x00800081,
181  0x00800001, 0x00002001, 0x00000000, 0x00802000, 0x00802000, 0x00802081,
182  0x00000081, 0x00000000, 0x00800080, 0x00800001, 0x00000001, 0x00002000,
183  0x00800000, 0x00802001, 0x00000080, 0x00800000, 0x00002001, 0x00002080,
184  0x00800081, 0x00000001, 0x00002080, 0x00800080, 0x00002000, 0x00802080,
185  0x00802081, 0x00000081, 0x00800080, 0x00800001, 0x00802000, 0x00802081,
186  0x00000081, 0x00000000, 0x00000000, 0x00802000, 0x00002080, 0x00800080,
187  0x00800081, 0x00000001, 0x00802001, 0x00002081, 0x00002081, 0x00000080,
188  0x00802081, 0x00000081, 0x00000001, 0x00002000, 0x00800001, 0x00002001,
189  0x00802080, 0x00800081, 0x00002001, 0x00002080, 0x00800000, 0x00802001,
190  0x00000080, 0x00800000, 0x00002000, 0x00802080 };
191 
192 const uint32_t DES_SPBOX5[256] = {
193  0x00000100, 0x02080100, 0x02080000, 0x42000100, 0x00080000, 0x00000100,
194  0x40000000, 0x02080000, 0x40080100, 0x00080000, 0x02000100, 0x40080100,
195  0x42000100, 0x42080000, 0x00080100, 0x40000000, 0x02000000, 0x40080000,
196  0x40080000, 0x00000000, 0x40000100, 0x42080100, 0x42080100, 0x02000100,
197  0x42080000, 0x40000100, 0x00000000, 0x42000000, 0x02080100, 0x02000000,
198  0x42000000, 0x00080100, 0x00080000, 0x42000100, 0x00000100, 0x02000000,
199  0x40000000, 0x02080000, 0x42000100, 0x40080100, 0x02000100, 0x40000000,
200  0x42080000, 0x02080100, 0x40080100, 0x00000100, 0x02000000, 0x42080000,
201  0x42080100, 0x00080100, 0x42000000, 0x42080100, 0x02080000, 0x00000000,
202  0x40080000, 0x42000000, 0x00080100, 0x02000100, 0x40000100, 0x00080000,
203  0x00000000, 0x40080000, 0x02080100, 0x40000100, 0x00000100, 0x02080100,
204  0x02080000, 0x42000100, 0x00080000, 0x00000100, 0x40000000, 0x02080000,
205  0x40080100, 0x00080000, 0x02000100, 0x40080100, 0x42000100, 0x42080000,
206  0x00080100, 0x40000000, 0x02000000, 0x40080000, 0x40080000, 0x00000000,
207  0x40000100, 0x42080100, 0x42080100, 0x02000100, 0x42080000, 0x40000100,
208  0x00000000, 0x42000000, 0x02080100, 0x02000000, 0x42000000, 0x00080100,
209  0x00080000, 0x42000100, 0x00000100, 0x02000000, 0x40000000, 0x02080000,
210  0x42000100, 0x40080100, 0x02000100, 0x40000000, 0x42080000, 0x02080100,
211  0x40080100, 0x00000100, 0x02000000, 0x42080000, 0x42080100, 0x00080100,
212  0x42000000, 0x42080100, 0x02080000, 0x00000000, 0x40080000, 0x42000000,
213  0x00080100, 0x02000100, 0x40000100, 0x00080000, 0x00000000, 0x40080000,
214  0x02080100, 0x40000100, 0x00000100, 0x02080100, 0x02080000, 0x42000100,
215  0x00080000, 0x00000100, 0x40000000, 0x02080000, 0x40080100, 0x00080000,
216  0x02000100, 0x40080100, 0x42000100, 0x42080000, 0x00080100, 0x40000000,
217  0x02000000, 0x40080000, 0x40080000, 0x00000000, 0x40000100, 0x42080100,
218  0x42080100, 0x02000100, 0x42080000, 0x40000100, 0x00000000, 0x42000000,
219  0x02080100, 0x02000000, 0x42000000, 0x00080100, 0x00080000, 0x42000100,
220  0x00000100, 0x02000000, 0x40000000, 0x02080000, 0x42000100, 0x40080100,
221  0x02000100, 0x40000000, 0x42080000, 0x02080100, 0x40080100, 0x00000100,
222  0x02000000, 0x42080000, 0x42080100, 0x00080100, 0x42000000, 0x42080100,
223  0x02080000, 0x00000000, 0x40080000, 0x42000000, 0x00080100, 0x02000100,
224  0x40000100, 0x00080000, 0x00000000, 0x40080000, 0x02080100, 0x40000100,
225  0x00000100, 0x02080100, 0x02080000, 0x42000100, 0x00080000, 0x00000100,
226  0x40000000, 0x02080000, 0x40080100, 0x00080000, 0x02000100, 0x40080100,
227  0x42000100, 0x42080000, 0x00080100, 0x40000000, 0x02000000, 0x40080000,
228  0x40080000, 0x00000000, 0x40000100, 0x42080100, 0x42080100, 0x02000100,
229  0x42080000, 0x40000100, 0x00000000, 0x42000000, 0x02080100, 0x02000000,
230  0x42000000, 0x00080100, 0x00080000, 0x42000100, 0x00000100, 0x02000000,
231  0x40000000, 0x02080000, 0x42000100, 0x40080100, 0x02000100, 0x40000000,
232  0x42080000, 0x02080100, 0x40080100, 0x00000100, 0x02000000, 0x42080000,
233  0x42080100, 0x00080100, 0x42000000, 0x42080100, 0x02080000, 0x00000000,
234  0x40080000, 0x42000000, 0x00080100, 0x02000100, 0x40000100, 0x00080000,
235  0x00000000, 0x40080000, 0x02080100, 0x40000100 };
236 
237 const uint32_t DES_SPBOX6[256] = {
238  0x20000010, 0x20400000, 0x00004000, 0x20404010, 0x20400000, 0x00000010,
239  0x20404010, 0x00400000, 0x20004000, 0x00404010, 0x00400000, 0x20000010,
240  0x00400010, 0x20004000, 0x20000000, 0x00004010, 0x00000000, 0x00400010,
241  0x20004010, 0x00004000, 0x00404000, 0x20004010, 0x00000010, 0x20400010,
242  0x20400010, 0x00000000, 0x00404010, 0x20404000, 0x00004010, 0x00404000,
243  0x20404000, 0x20000000, 0x20004000, 0x00000010, 0x20400010, 0x00404000,
244  0x20404010, 0x00400000, 0x00004010, 0x20000010, 0x00400000, 0x20004000,
245  0x20000000, 0x00004010, 0x20000010, 0x20404010, 0x00404000, 0x20400000,
246  0x00404010, 0x20404000, 0x00000000, 0x20400010, 0x00000010, 0x00004000,
247  0x20400000, 0x00404010, 0x00004000, 0x00400010, 0x20004010, 0x00000000,
248  0x20404000, 0x20000000, 0x00400010, 0x20004010, 0x20000010, 0x20400000,
249  0x00004000, 0x20404010, 0x20400000, 0x00000010, 0x20404010, 0x00400000,
250  0x20004000, 0x00404010, 0x00400000, 0x20000010, 0x00400010, 0x20004000,
251  0x20000000, 0x00004010, 0x00000000, 0x00400010, 0x20004010, 0x00004000,
252  0x00404000, 0x20004010, 0x00000010, 0x20400010, 0x20400010, 0x00000000,
253  0x00404010, 0x20404000, 0x00004010, 0x00404000, 0x20404000, 0x20000000,
254  0x20004000, 0x00000010, 0x20400010, 0x00404000, 0x20404010, 0x00400000,
255  0x00004010, 0x20000010, 0x00400000, 0x20004000, 0x20000000, 0x00004010,
256  0x20000010, 0x20404010, 0x00404000, 0x20400000, 0x00404010, 0x20404000,
257  0x00000000, 0x20400010, 0x00000010, 0x00004000, 0x20400000, 0x00404010,
258  0x00004000, 0x00400010, 0x20004010, 0x00000000, 0x20404000, 0x20000000,
259  0x00400010, 0x20004010, 0x20000010, 0x20400000, 0x00004000, 0x20404010,
260  0x20400000, 0x00000010, 0x20404010, 0x00400000, 0x20004000, 0x00404010,
261  0x00400000, 0x20000010, 0x00400010, 0x20004000, 0x20000000, 0x00004010,
262  0x00000000, 0x00400010, 0x20004010, 0x00004000, 0x00404000, 0x20004010,
263  0x00000010, 0x20400010, 0x20400010, 0x00000000, 0x00404010, 0x20404000,
264  0x00004010, 0x00404000, 0x20404000, 0x20000000, 0x20004000, 0x00000010,
265  0x20400010, 0x00404000, 0x20404010, 0x00400000, 0x00004010, 0x20000010,
266  0x00400000, 0x20004000, 0x20000000, 0x00004010, 0x20000010, 0x20404010,
267  0x00404000, 0x20400000, 0x00404010, 0x20404000, 0x00000000, 0x20400010,
268  0x00000010, 0x00004000, 0x20400000, 0x00404010, 0x00004000, 0x00400010,
269  0x20004010, 0x00000000, 0x20404000, 0x20000000, 0x00400010, 0x20004010,
270  0x20000010, 0x20400000, 0x00004000, 0x20404010, 0x20400000, 0x00000010,
271  0x20404010, 0x00400000, 0x20004000, 0x00404010, 0x00400000, 0x20000010,
272  0x00400010, 0x20004000, 0x20000000, 0x00004010, 0x00000000, 0x00400010,
273  0x20004010, 0x00004000, 0x00404000, 0x20004010, 0x00000010, 0x20400010,
274  0x20400010, 0x00000000, 0x00404010, 0x20404000, 0x00004010, 0x00404000,
275  0x20404000, 0x20000000, 0x20004000, 0x00000010, 0x20400010, 0x00404000,
276  0x20404010, 0x00400000, 0x00004010, 0x20000010, 0x00400000, 0x20004000,
277  0x20000000, 0x00004010, 0x20000010, 0x20404010, 0x00404000, 0x20400000,
278  0x00404010, 0x20404000, 0x00000000, 0x20400010, 0x00000010, 0x00004000,
279  0x20400000, 0x00404010, 0x00004000, 0x00400010, 0x20004010, 0x00000000,
280  0x20404000, 0x20000000, 0x00400010, 0x20004010 };
281 
282 const uint32_t DES_SPBOX7[256] = {
283  0x00200000, 0x04200002, 0x04000802, 0x00000000, 0x00000800, 0x04000802,
284  0x00200802, 0x04200800, 0x04200802, 0x00200000, 0x00000000, 0x04000002,
285  0x00000002, 0x04000000, 0x04200002, 0x00000802, 0x04000800, 0x00200802,
286  0x00200002, 0x04000800, 0x04000002, 0x04200000, 0x04200800, 0x00200002,
287  0x04200000, 0x00000800, 0x00000802, 0x04200802, 0x00200800, 0x00000002,
288  0x04000000, 0x00200800, 0x04000000, 0x00200800, 0x00200000, 0x04000802,
289  0x04000802, 0x04200002, 0x04200002, 0x00000002, 0x00200002, 0x04000000,
290  0x04000800, 0x00200000, 0x04200800, 0x00000802, 0x00200802, 0x04200800,
291  0x00000802, 0x04000002, 0x04200802, 0x04200000, 0x00200800, 0x00000000,
292  0x00000002, 0x04200802, 0x00000000, 0x00200802, 0x04200000, 0x00000800,
293  0x04000002, 0x04000800, 0x00000800, 0x00200002, 0x00200000, 0x04200002,
294  0x04000802, 0x00000000, 0x00000800, 0x04000802, 0x00200802, 0x04200800,
295  0x04200802, 0x00200000, 0x00000000, 0x04000002, 0x00000002, 0x04000000,
296  0x04200002, 0x00000802, 0x04000800, 0x00200802, 0x00200002, 0x04000800,
297  0x04000002, 0x04200000, 0x04200800, 0x00200002, 0x04200000, 0x00000800,
298  0x00000802, 0x04200802, 0x00200800, 0x00000002, 0x04000000, 0x00200800,
299  0x04000000, 0x00200800, 0x00200000, 0x04000802, 0x04000802, 0x04200002,
300  0x04200002, 0x00000002, 0x00200002, 0x04000000, 0x04000800, 0x00200000,
301  0x04200800, 0x00000802, 0x00200802, 0x04200800, 0x00000802, 0x04000002,
302  0x04200802, 0x04200000, 0x00200800, 0x00000000, 0x00000002, 0x04200802,
303  0x00000000, 0x00200802, 0x04200000, 0x00000800, 0x04000002, 0x04000800,
304  0x00000800, 0x00200002, 0x00200000, 0x04200002, 0x04000802, 0x00000000,
305  0x00000800, 0x04000802, 0x00200802, 0x04200800, 0x04200802, 0x00200000,
306  0x00000000, 0x04000002, 0x00000002, 0x04000000, 0x04200002, 0x00000802,
307  0x04000800, 0x00200802, 0x00200002, 0x04000800, 0x04000002, 0x04200000,
308  0x04200800, 0x00200002, 0x04200000, 0x00000800, 0x00000802, 0x04200802,
309  0x00200800, 0x00000002, 0x04000000, 0x00200800, 0x04000000, 0x00200800,
310  0x00200000, 0x04000802, 0x04000802, 0x04200002, 0x04200002, 0x00000002,
311  0x00200002, 0x04000000, 0x04000800, 0x00200000, 0x04200800, 0x00000802,
312  0x00200802, 0x04200800, 0x00000802, 0x04000002, 0x04200802, 0x04200000,
313  0x00200800, 0x00000000, 0x00000002, 0x04200802, 0x00000000, 0x00200802,
314  0x04200000, 0x00000800, 0x04000002, 0x04000800, 0x00000800, 0x00200002,
315  0x00200000, 0x04200002, 0x04000802, 0x00000000, 0x00000800, 0x04000802,
316  0x00200802, 0x04200800, 0x04200802, 0x00200000, 0x00000000, 0x04000002,
317  0x00000002, 0x04000000, 0x04200002, 0x00000802, 0x04000800, 0x00200802,
318  0x00200002, 0x04000800, 0x04000002, 0x04200000, 0x04200800, 0x00200002,
319  0x04200000, 0x00000800, 0x00000802, 0x04200802, 0x00200800, 0x00000002,
320  0x04000000, 0x00200800, 0x04000000, 0x00200800, 0x00200000, 0x04000802,
321  0x04000802, 0x04200002, 0x04200002, 0x00000002, 0x00200002, 0x04000000,
322  0x04000800, 0x00200000, 0x04200800, 0x00000802, 0x00200802, 0x04200800,
323  0x00000802, 0x04000002, 0x04200802, 0x04200000, 0x00200800, 0x00000000,
324  0x00000002, 0x04200802, 0x00000000, 0x00200802, 0x04200000, 0x00000800,
325  0x04000002, 0x04000800, 0x00000800, 0x00200002 };
326 
327 const uint32_t DES_SPBOX8[256] = {
328  0x10001040, 0x00001000, 0x00040000, 0x10041040, 0x10000000, 0x10001040,
329  0x00000040, 0x10000000, 0x00040040, 0x10040000, 0x10041040, 0x00041000,
330  0x10041000, 0x00041040, 0x00001000, 0x00000040, 0x10040000, 0x10000040,
331  0x10001000, 0x00001040, 0x00041000, 0x00040040, 0x10040040, 0x10041000,
332  0x00001040, 0x00000000, 0x00000000, 0x10040040, 0x10000040, 0x10001000,
333  0x00041040, 0x00040000, 0x00041040, 0x00040000, 0x10041000, 0x00001000,
334  0x00000040, 0x10040040, 0x00001000, 0x00041040, 0x10001000, 0x00000040,
335  0x10000040, 0x10040000, 0x10040040, 0x10000000, 0x00040000, 0x10001040,
336  0x00000000, 0x10041040, 0x00040040, 0x10000040, 0x10040000, 0x10001000,
337  0x10001040, 0x00000000, 0x10041040, 0x00041000, 0x00041000, 0x00001040,
338  0x00001040, 0x00040040, 0x10000000, 0x10041000, 0x10001040, 0x00001000,
339  0x00040000, 0x10041040, 0x10000000, 0x10001040, 0x00000040, 0x10000000,
340  0x00040040, 0x10040000, 0x10041040, 0x00041000, 0x10041000, 0x00041040,
341  0x00001000, 0x00000040, 0x10040000, 0x10000040, 0x10001000, 0x00001040,
342  0x00041000, 0x00040040, 0x10040040, 0x10041000, 0x00001040, 0x00000000,
343  0x00000000, 0x10040040, 0x10000040, 0x10001000, 0x00041040, 0x00040000,
344  0x00041040, 0x00040000, 0x10041000, 0x00001000, 0x00000040, 0x10040040,
345  0x00001000, 0x00041040, 0x10001000, 0x00000040, 0x10000040, 0x10040000,
346  0x10040040, 0x10000000, 0x00040000, 0x10001040, 0x00000000, 0x10041040,
347  0x00040040, 0x10000040, 0x10040000, 0x10001000, 0x10001040, 0x00000000,
348  0x10041040, 0x00041000, 0x00041000, 0x00001040, 0x00001040, 0x00040040,
349  0x10000000, 0x10041000, 0x10001040, 0x00001000, 0x00040000, 0x10041040,
350  0x10000000, 0x10001040, 0x00000040, 0x10000000, 0x00040040, 0x10040000,
351  0x10041040, 0x00041000, 0x10041000, 0x00041040, 0x00001000, 0x00000040,
352  0x10040000, 0x10000040, 0x10001000, 0x00001040, 0x00041000, 0x00040040,
353  0x10040040, 0x10041000, 0x00001040, 0x00000000, 0x00000000, 0x10040040,
354  0x10000040, 0x10001000, 0x00041040, 0x00040000, 0x00041040, 0x00040000,
355  0x10041000, 0x00001000, 0x00000040, 0x10040040, 0x00001000, 0x00041040,
356  0x10001000, 0x00000040, 0x10000040, 0x10040000, 0x10040040, 0x10000000,
357  0x00040000, 0x10001040, 0x00000000, 0x10041040, 0x00040040, 0x10000040,
358  0x10040000, 0x10001000, 0x10001040, 0x00000000, 0x10041040, 0x00041000,
359  0x00041000, 0x00001040, 0x00001040, 0x00040040, 0x10000000, 0x10041000,
360  0x10001040, 0x00001000, 0x00040000, 0x10041040, 0x10000000, 0x10001040,
361  0x00000040, 0x10000000, 0x00040040, 0x10040000, 0x10041040, 0x00041000,
362  0x10041000, 0x00041040, 0x00001000, 0x00000040, 0x10040000, 0x10000040,
363  0x10001000, 0x00001040, 0x00041000, 0x00040040, 0x10040040, 0x10041000,
364  0x00001040, 0x00000000, 0x00000000, 0x10040040, 0x10000040, 0x10001000,
365  0x00041040, 0x00040000, 0x00041040, 0x00040000, 0x10041000, 0x00001000,
366  0x00000040, 0x10040040, 0x00001000, 0x00041040, 0x10001000, 0x00000040,
367  0x10000040, 0x10040000, 0x10040040, 0x10000000, 0x00040000, 0x10001040,
368  0x00000000, 0x10041040, 0x00040040, 0x10000040, 0x10040000, 0x10001000,
369  0x10001040, 0x00000000, 0x10041040, 0x00041000, 0x00041000, 0x00001040,
370  0x00001040, 0x00040040, 0x10000000, 0x10041000 };
371 
372 const uint64_t DES_IPTAB1[256] = {
373 0x0000000000000000, 0x0000000200000000, 0x0000000000000002, 0x0000000200000002,
374 0x0000020000000000, 0x0000020200000000, 0x0000020000000002, 0x0000020200000002,
375 0x0000000000000200, 0x0000000200000200, 0x0000000000000202, 0x0000000200000202,
376 0x0000020000000200, 0x0000020200000200, 0x0000020000000202, 0x0000020200000202,
377 0x0002000000000000, 0x0002000200000000, 0x0002000000000002, 0x0002000200000002,
378 0x0002020000000000, 0x0002020200000000, 0x0002020000000002, 0x0002020200000002,
379 0x0002000000000200, 0x0002000200000200, 0x0002000000000202, 0x0002000200000202,
380 0x0002020000000200, 0x0002020200000200, 0x0002020000000202, 0x0002020200000202,
381 0x0000000000020000, 0x0000000200020000, 0x0000000000020002, 0x0000000200020002,
382 0x0000020000020000, 0x0000020200020000, 0x0000020000020002, 0x0000020200020002,
383 0x0000000000020200, 0x0000000200020200, 0x0000000000020202, 0x0000000200020202,
384 0x0000020000020200, 0x0000020200020200, 0x0000020000020202, 0x0000020200020202,
385 0x0002000000020000, 0x0002000200020000, 0x0002000000020002, 0x0002000200020002,
386 0x0002020000020000, 0x0002020200020000, 0x0002020000020002, 0x0002020200020002,
387 0x0002000000020200, 0x0002000200020200, 0x0002000000020202, 0x0002000200020202,
388 0x0002020000020200, 0x0002020200020200, 0x0002020000020202, 0x0002020200020202,
389 0x0200000000000000, 0x0200000200000000, 0x0200000000000002, 0x0200000200000002,
390 0x0200020000000000, 0x0200020200000000, 0x0200020000000002, 0x0200020200000002,
391 0x0200000000000200, 0x0200000200000200, 0x0200000000000202, 0x0200000200000202,
392 0x0200020000000200, 0x0200020200000200, 0x0200020000000202, 0x0200020200000202,
393 0x0202000000000000, 0x0202000200000000, 0x0202000000000002, 0x0202000200000002,
394 0x0202020000000000, 0x0202020200000000, 0x0202020000000002, 0x0202020200000002,
395 0x0202000000000200, 0x0202000200000200, 0x0202000000000202, 0x0202000200000202,
396 0x0202020000000200, 0x0202020200000200, 0x0202020000000202, 0x0202020200000202,
397 0x0200000000020000, 0x0200000200020000, 0x0200000000020002, 0x0200000200020002,
398 0x0200020000020000, 0x0200020200020000, 0x0200020000020002, 0x0200020200020002,
399 0x0200000000020200, 0x0200000200020200, 0x0200000000020202, 0x0200000200020202,
400 0x0200020000020200, 0x0200020200020200, 0x0200020000020202, 0x0200020200020202,
401 0x0202000000020000, 0x0202000200020000, 0x0202000000020002, 0x0202000200020002,
402 0x0202020000020000, 0x0202020200020000, 0x0202020000020002, 0x0202020200020002,
403 0x0202000000020200, 0x0202000200020200, 0x0202000000020202, 0x0202000200020202,
404 0x0202020000020200, 0x0202020200020200, 0x0202020000020202, 0x0202020200020202,
405 0x0000000002000000, 0x0000000202000000, 0x0000000002000002, 0x0000000202000002,
406 0x0000020002000000, 0x0000020202000000, 0x0000020002000002, 0x0000020202000002,
407 0x0000000002000200, 0x0000000202000200, 0x0000000002000202, 0x0000000202000202,
408 0x0000020002000200, 0x0000020202000200, 0x0000020002000202, 0x0000020202000202,
409 0x0002000002000000, 0x0002000202000000, 0x0002000002000002, 0x0002000202000002,
410 0x0002020002000000, 0x0002020202000000, 0x0002020002000002, 0x0002020202000002,
411 0x0002000002000200, 0x0002000202000200, 0x0002000002000202, 0x0002000202000202,
412 0x0002020002000200, 0x0002020202000200, 0x0002020002000202, 0x0002020202000202,
413 0x0000000002020000, 0x0000000202020000, 0x0000000002020002, 0x0000000202020002,
414 0x0000020002020000, 0x0000020202020000, 0x0000020002020002, 0x0000020202020002,
415 0x0000000002020200, 0x0000000202020200, 0x0000000002020202, 0x0000000202020202,
416 0x0000020002020200, 0x0000020202020200, 0x0000020002020202, 0x0000020202020202,
417 0x0002000002020000, 0x0002000202020000, 0x0002000002020002, 0x0002000202020002,
418 0x0002020002020000, 0x0002020202020000, 0x0002020002020002, 0x0002020202020002,
419 0x0002000002020200, 0x0002000202020200, 0x0002000002020202, 0x0002000202020202,
420 0x0002020002020200, 0x0002020202020200, 0x0002020002020202, 0x0002020202020202,
421 0x0200000002000000, 0x0200000202000000, 0x0200000002000002, 0x0200000202000002,
422 0x0200020002000000, 0x0200020202000000, 0x0200020002000002, 0x0200020202000002,
423 0x0200000002000200, 0x0200000202000200, 0x0200000002000202, 0x0200000202000202,
424 0x0200020002000200, 0x0200020202000200, 0x0200020002000202, 0x0200020202000202,
425 0x0202000002000000, 0x0202000202000000, 0x0202000002000002, 0x0202000202000002,
426 0x0202020002000000, 0x0202020202000000, 0x0202020002000002, 0x0202020202000002,
427 0x0202000002000200, 0x0202000202000200, 0x0202000002000202, 0x0202000202000202,
428 0x0202020002000200, 0x0202020202000200, 0x0202020002000202, 0x0202020202000202,
429 0x0200000002020000, 0x0200000202020000, 0x0200000002020002, 0x0200000202020002,
430 0x0200020002020000, 0x0200020202020000, 0x0200020002020002, 0x0200020202020002,
431 0x0200000002020200, 0x0200000202020200, 0x0200000002020202, 0x0200000202020202,
432 0x0200020002020200, 0x0200020202020200, 0x0200020002020202, 0x0200020202020202,
433 0x0202000002020000, 0x0202000202020000, 0x0202000002020002, 0x0202000202020002,
434 0x0202020002020000, 0x0202020202020000, 0x0202020002020002, 0x0202020202020002,
435 0x0202000002020200, 0x0202000202020200, 0x0202000002020202, 0x0202000202020202,
436 0x0202020002020200, 0x0202020202020200, 0x0202020002020202, 0x0202020202020202 };
437 
438 const uint64_t DES_IPTAB2[256] = {
439 0x0000000000000000, 0x0000010000000000, 0x0000000000000100, 0x0000010000000100,
440 0x0001000000000000, 0x0001010000000000, 0x0001000000000100, 0x0001010000000100,
441 0x0000000000010000, 0x0000010000010000, 0x0000000000010100, 0x0000010000010100,
442 0x0001000000010000, 0x0001010000010000, 0x0001000000010100, 0x0001010000010100,
443 0x0100000000000000, 0x0100010000000000, 0x0100000000000100, 0x0100010000000100,
444 0x0101000000000000, 0x0101010000000000, 0x0101000000000100, 0x0101010000000100,
445 0x0100000000010000, 0x0100010000010000, 0x0100000000010100, 0x0100010000010100,
446 0x0101000000010000, 0x0101010000010000, 0x0101000000010100, 0x0101010000010100,
447 0x0000000001000000, 0x0000010001000000, 0x0000000001000100, 0x0000010001000100,
448 0x0001000001000000, 0x0001010001000000, 0x0001000001000100, 0x0001010001000100,
449 0x0000000001010000, 0x0000010001010000, 0x0000000001010100, 0x0000010001010100,
450 0x0001000001010000, 0x0001010001010000, 0x0001000001010100, 0x0001010001010100,
451 0x0100000001000000, 0x0100010001000000, 0x0100000001000100, 0x0100010001000100,
452 0x0101000001000000, 0x0101010001000000, 0x0101000001000100, 0x0101010001000100,
453 0x0100000001010000, 0x0100010001010000, 0x0100000001010100, 0x0100010001010100,
454 0x0101000001010000, 0x0101010001010000, 0x0101000001010100, 0x0101010001010100,
455 0x0000000100000000, 0x0000010100000000, 0x0000000100000100, 0x0000010100000100,
456 0x0001000100000000, 0x0001010100000000, 0x0001000100000100, 0x0001010100000100,
457 0x0000000100010000, 0x0000010100010000, 0x0000000100010100, 0x0000010100010100,
458 0x0001000100010000, 0x0001010100010000, 0x0001000100010100, 0x0001010100010100,
459 0x0100000100000000, 0x0100010100000000, 0x0100000100000100, 0x0100010100000100,
460 0x0101000100000000, 0x0101010100000000, 0x0101000100000100, 0x0101010100000100,
461 0x0100000100010000, 0x0100010100010000, 0x0100000100010100, 0x0100010100010100,
462 0x0101000100010000, 0x0101010100010000, 0x0101000100010100, 0x0101010100010100,
463 0x0000000101000000, 0x0000010101000000, 0x0000000101000100, 0x0000010101000100,
464 0x0001000101000000, 0x0001010101000000, 0x0001000101000100, 0x0001010101000100,
465 0x0000000101010000, 0x0000010101010000, 0x0000000101010100, 0x0000010101010100,
466 0x0001000101010000, 0x0001010101010000, 0x0001000101010100, 0x0001010101010100,
467 0x0100000101000000, 0x0100010101000000, 0x0100000101000100, 0x0100010101000100,
468 0x0101000101000000, 0x0101010101000000, 0x0101000101000100, 0x0101010101000100,
469 0x0100000101010000, 0x0100010101010000, 0x0100000101010100, 0x0100010101010100,
470 0x0101000101010000, 0x0101010101010000, 0x0101000101010100, 0x0101010101010100,
471 0x0000000000000001, 0x0000010000000001, 0x0000000000000101, 0x0000010000000101,
472 0x0001000000000001, 0x0001010000000001, 0x0001000000000101, 0x0001010000000101,
473 0x0000000000010001, 0x0000010000010001, 0x0000000000010101, 0x0000010000010101,
474 0x0001000000010001, 0x0001010000010001, 0x0001000000010101, 0x0001010000010101,
475 0x0100000000000001, 0x0100010000000001, 0x0100000000000101, 0x0100010000000101,
476 0x0101000000000001, 0x0101010000000001, 0x0101000000000101, 0x0101010000000101,
477 0x0100000000010001, 0x0100010000010001, 0x0100000000010101, 0x0100010000010101,
478 0x0101000000010001, 0x0101010000010001, 0x0101000000010101, 0x0101010000010101,
479 0x0000000001000001, 0x0000010001000001, 0x0000000001000101, 0x0000010001000101,
480 0x0001000001000001, 0x0001010001000001, 0x0001000001000101, 0x0001010001000101,
481 0x0000000001010001, 0x0000010001010001, 0x0000000001010101, 0x0000010001010101,
482 0x0001000001010001, 0x0001010001010001, 0x0001000001010101, 0x0001010001010101,
483 0x0100000001000001, 0x0100010001000001, 0x0100000001000101, 0x0100010001000101,
484 0x0101000001000001, 0x0101010001000001, 0x0101000001000101, 0x0101010001000101,
485 0x0100000001010001, 0x0100010001010001, 0x0100000001010101, 0x0100010001010101,
486 0x0101000001010001, 0x0101010001010001, 0x0101000001010101, 0x0101010001010101,
487 0x0000000100000001, 0x0000010100000001, 0x0000000100000101, 0x0000010100000101,
488 0x0001000100000001, 0x0001010100000001, 0x0001000100000101, 0x0001010100000101,
489 0x0000000100010001, 0x0000010100010001, 0x0000000100010101, 0x0000010100010101,
490 0x0001000100010001, 0x0001010100010001, 0x0001000100010101, 0x0001010100010101,
491 0x0100000100000001, 0x0100010100000001, 0x0100000100000101, 0x0100010100000101,
492 0x0101000100000001, 0x0101010100000001, 0x0101000100000101, 0x0101010100000101,
493 0x0100000100010001, 0x0100010100010001, 0x0100000100010101, 0x0100010100010101,
494 0x0101000100010001, 0x0101010100010001, 0x0101000100010101, 0x0101010100010101,
495 0x0000000101000001, 0x0000010101000001, 0x0000000101000101, 0x0000010101000101,
496 0x0001000101000001, 0x0001010101000001, 0x0001000101000101, 0x0001010101000101,
497 0x0000000101010001, 0x0000010101010001, 0x0000000101010101, 0x0000010101010101,
498 0x0001000101010001, 0x0001010101010001, 0x0001000101010101, 0x0001010101010101,
499 0x0100000101000001, 0x0100010101000001, 0x0100000101000101, 0x0100010101000101,
500 0x0101000101000001, 0x0101010101000001, 0x0101000101000101, 0x0101010101000101,
501 0x0100000101010001, 0x0100010101010001, 0x0100000101010101, 0x0100010101010101,
502 0x0101000101010001, 0x0101010101010001, 0x0101000101010101, 0x0101010101010101 };
503 
504 const uint64_t DES_FPTAB1[256] = {
505 0x0000000000000000, 0x0000000100000000, 0x0000000004000000, 0x0000000104000000,
506 0x0000000000040000, 0x0000000100040000, 0x0000000004040000, 0x0000000104040000,
507 0x0000000000000400, 0x0000000100000400, 0x0000000004000400, 0x0000000104000400,
508 0x0000000000040400, 0x0000000100040400, 0x0000000004040400, 0x0000000104040400,
509 0x0000000000000004, 0x0000000100000004, 0x0000000004000004, 0x0000000104000004,
510 0x0000000000040004, 0x0000000100040004, 0x0000000004040004, 0x0000000104040004,
511 0x0000000000000404, 0x0000000100000404, 0x0000000004000404, 0x0000000104000404,
512 0x0000000000040404, 0x0000000100040404, 0x0000000004040404, 0x0000000104040404,
513 0x0400000000000000, 0x0400000100000000, 0x0400000004000000, 0x0400000104000000,
514 0x0400000000040000, 0x0400000100040000, 0x0400000004040000, 0x0400000104040000,
515 0x0400000000000400, 0x0400000100000400, 0x0400000004000400, 0x0400000104000400,
516 0x0400000000040400, 0x0400000100040400, 0x0400000004040400, 0x0400000104040400,
517 0x0400000000000004, 0x0400000100000004, 0x0400000004000004, 0x0400000104000004,
518 0x0400000000040004, 0x0400000100040004, 0x0400000004040004, 0x0400000104040004,
519 0x0400000000000404, 0x0400000100000404, 0x0400000004000404, 0x0400000104000404,
520 0x0400000000040404, 0x0400000100040404, 0x0400000004040404, 0x0400000104040404,
521 0x0004000000000000, 0x0004000100000000, 0x0004000004000000, 0x0004000104000000,
522 0x0004000000040000, 0x0004000100040000, 0x0004000004040000, 0x0004000104040000,
523 0x0004000000000400, 0x0004000100000400, 0x0004000004000400, 0x0004000104000400,
524 0x0004000000040400, 0x0004000100040400, 0x0004000004040400, 0x0004000104040400,
525 0x0004000000000004, 0x0004000100000004, 0x0004000004000004, 0x0004000104000004,
526 0x0004000000040004, 0x0004000100040004, 0x0004000004040004, 0x0004000104040004,
527 0x0004000000000404, 0x0004000100000404, 0x0004000004000404, 0x0004000104000404,
528 0x0004000000040404, 0x0004000100040404, 0x0004000004040404, 0x0004000104040404,
529 0x0404000000000000, 0x0404000100000000, 0x0404000004000000, 0x0404000104000000,
530 0x0404000000040000, 0x0404000100040000, 0x0404000004040000, 0x0404000104040000,
531 0x0404000000000400, 0x0404000100000400, 0x0404000004000400, 0x0404000104000400,
532 0x0404000000040400, 0x0404000100040400, 0x0404000004040400, 0x0404000104040400,
533 0x0404000000000004, 0x0404000100000004, 0x0404000004000004, 0x0404000104000004,
534 0x0404000000040004, 0x0404000100040004, 0x0404000004040004, 0x0404000104040004,
535 0x0404000000000404, 0x0404000100000404, 0x0404000004000404, 0x0404000104000404,
536 0x0404000000040404, 0x0404000100040404, 0x0404000004040404, 0x0404000104040404,
537 0x0000040000000000, 0x0000040100000000, 0x0000040004000000, 0x0000040104000000,
538 0x0000040000040000, 0x0000040100040000, 0x0000040004040000, 0x0000040104040000,
539 0x0000040000000400, 0x0000040100000400, 0x0000040004000400, 0x0000040104000400,
540 0x0000040000040400, 0x0000040100040400, 0x0000040004040400, 0x0000040104040400,
541 0x0000040000000004, 0x0000040100000004, 0x0000040004000004, 0x0000040104000004,
542 0x0000040000040004, 0x0000040100040004, 0x0000040004040004, 0x0000040104040004,
543 0x0000040000000404, 0x0000040100000404, 0x0000040004000404, 0x0000040104000404,
544 0x0000040000040404, 0x0000040100040404, 0x0000040004040404, 0x0000040104040404,
545 0x0400040000000000, 0x0400040100000000, 0x0400040004000000, 0x0400040104000000,
546 0x0400040000040000, 0x0400040100040000, 0x0400040004040000, 0x0400040104040000,
547 0x0400040000000400, 0x0400040100000400, 0x0400040004000400, 0x0400040104000400,
548 0x0400040000040400, 0x0400040100040400, 0x0400040004040400, 0x0400040104040400,
549 0x0400040000000004, 0x0400040100000004, 0x0400040004000004, 0x0400040104000004,
550 0x0400040000040004, 0x0400040100040004, 0x0400040004040004, 0x0400040104040004,
551 0x0400040000000404, 0x0400040100000404, 0x0400040004000404, 0x0400040104000404,
552 0x0400040000040404, 0x0400040100040404, 0x0400040004040404, 0x0400040104040404,
553 0x0004040000000000, 0x0004040100000000, 0x0004040004000000, 0x0004040104000000,
554 0x0004040000040000, 0x0004040100040000, 0x0004040004040000, 0x0004040104040000,
555 0x0004040000000400, 0x0004040100000400, 0x0004040004000400, 0x0004040104000400,
556 0x0004040000040400, 0x0004040100040400, 0x0004040004040400, 0x0004040104040400,
557 0x0004040000000004, 0x0004040100000004, 0x0004040004000004, 0x0004040104000004,
558 0x0004040000040004, 0x0004040100040004, 0x0004040004040004, 0x0004040104040004,
559 0x0004040000000404, 0x0004040100000404, 0x0004040004000404, 0x0004040104000404,
560 0x0004040000040404, 0x0004040100040404, 0x0004040004040404, 0x0004040104040404,
561 0x0404040000000000, 0x0404040100000000, 0x0404040004000000, 0x0404040104000000,
562 0x0404040000040000, 0x0404040100040000, 0x0404040004040000, 0x0404040104040000,
563 0x0404040000000400, 0x0404040100000400, 0x0404040004000400, 0x0404040104000400,
564 0x0404040000040400, 0x0404040100040400, 0x0404040004040400, 0x0404040104040400,
565 0x0404040000000004, 0x0404040100000004, 0x0404040004000004, 0x0404040104000004,
566 0x0404040000040004, 0x0404040100040004, 0x0404040004040004, 0x0404040104040004,
567 0x0404040000000404, 0x0404040100000404, 0x0404040004000404, 0x0404040104000404,
568 0x0404040000040404, 0x0404040100040404, 0x0404040004040404, 0x0404040104040404 };
569 
570 const uint64_t DES_FPTAB2[256] = {
571 0x0000000000000000, 0x0000004000000000, 0x0000000001000000, 0x0000004001000000,
572 0x0000000000010000, 0x0000004000010000, 0x0000000001010000, 0x0000004001010000,
573 0x0000000000000100, 0x0000004000000100, 0x0000000001000100, 0x0000004001000100,
574 0x0000000000010100, 0x0000004000010100, 0x0000000001010100, 0x0000004001010100,
575 0x0000000000000001, 0x0000004000000001, 0x0000000001000001, 0x0000004001000001,
576 0x0000000000010001, 0x0000004000010001, 0x0000000001010001, 0x0000004001010001,
577 0x0000000000000101, 0x0000004000000101, 0x0000000001000101, 0x0000004001000101,
578 0x0000000000010101, 0x0000004000010101, 0x0000000001010101, 0x0000004001010101,
579 0x0100000000000000, 0x0100004000000000, 0x0100000001000000, 0x0100004001000000,
580 0x0100000000010000, 0x0100004000010000, 0x0100000001010000, 0x0100004001010000,
581 0x0100000000000100, 0x0100004000000100, 0x0100000001000100, 0x0100004001000100,
582 0x0100000000010100, 0x0100004000010100, 0x0100000001010100, 0x0100004001010100,
583 0x0100000000000001, 0x0100004000000001, 0x0100000001000001, 0x0100004001000001,
584 0x0100000000010001, 0x0100004000010001, 0x0100000001010001, 0x0100004001010001,
585 0x0100000000000101, 0x0100004000000101, 0x0100000001000101, 0x0100004001000101,
586 0x0100000000010101, 0x0100004000010101, 0x0100000001010101, 0x0100004001010101,
587 0x0001000000000000, 0x0001004000000000, 0x0001000001000000, 0x0001004001000000,
588 0x0001000000010000, 0x0001004000010000, 0x0001000001010000, 0x0001004001010000,
589 0x0001000000000100, 0x0001004000000100, 0x0001000001000100, 0x0001004001000100,
590 0x0001000000010100, 0x0001004000010100, 0x0001000001010100, 0x0001004001010100,
591 0x0001000000000001, 0x0001004000000001, 0x0001000001000001, 0x0001004001000001,
592 0x0001000000010001, 0x0001004000010001, 0x0001000001010001, 0x0001004001010001,
593 0x0001000000000101, 0x0001004000000101, 0x0001000001000101, 0x0001004001000101,
594 0x0001000000010101, 0x0001004000010101, 0x0001000001010101, 0x0001004001010101,
595 0x0101000000000000, 0x0101004000000000, 0x0101000001000000, 0x0101004001000000,
596 0x0101000000010000, 0x0101004000010000, 0x0101000001010000, 0x0101004001010000,
597 0x0101000000000100, 0x0101004000000100, 0x0101000001000100, 0x0101004001000100,
598 0x0101000000010100, 0x0101004000010100, 0x0101000001010100, 0x0101004001010100,
599 0x0101000000000001, 0x0101004000000001, 0x0101000001000001, 0x0101004001000001,
600 0x0101000000010001, 0x0101004000010001, 0x0101000001010001, 0x0101004001010001,
601 0x0101000000000101, 0x0101004000000101, 0x0101000001000101, 0x0101004001000101,
602 0x0101000000010101, 0x0101004000010101, 0x0101000001010101, 0x0101004001010101,
603 0x0000010000000000, 0x0000014000000000, 0x0000010001000000, 0x0000014001000000,
604 0x0000010000010000, 0x0000014000010000, 0x0000010001010000, 0x0000014001010000,
605 0x0000010000000100, 0x0000014000000100, 0x0000010001000100, 0x0000014001000100,
606 0x0000010000010100, 0x0000014000010100, 0x0000010001010100, 0x0000014001010100,
607 0x0000010000000001, 0x0000014000000001, 0x0000010001000001, 0x0000014001000001,
608 0x0000010000010001, 0x0000014000010001, 0x0000010001010001, 0x0000014001010001,
609 0x0000010000000101, 0x0000014000000101, 0x0000010001000101, 0x0000014001000101,
610 0x0000010000010101, 0x0000014000010101, 0x0000010001010101, 0x0000014001010101,
611 0x0100010000000000, 0x0100014000000000, 0x0100010001000000, 0x0100014001000000,
612 0x0100010000010000, 0x0100014000010000, 0x0100010001010000, 0x0100014001010000,
613 0x0100010000000100, 0x0100014000000100, 0x0100010001000100, 0x0100014001000100,
614 0x0100010000010100, 0x0100014000010100, 0x0100010001010100, 0x0100014001010100,
615 0x0100010000000001, 0x0100014000000001, 0x0100010001000001, 0x0100014001000001,
616 0x0100010000010001, 0x0100014000010001, 0x0100010001010001, 0x0100014001010001,
617 0x0100010000000101, 0x0100014000000101, 0x0100010001000101, 0x0100014001000101,
618 0x0100010000010101, 0x0100014000010101, 0x0100010001010101, 0x0100014001010101,
619 0x0001010000000000, 0x0001014000000000, 0x0001010001000000, 0x0001014001000000,
620 0x0001010000010000, 0x0001014000010000, 0x0001010001010000, 0x0001014001010000,
621 0x0001010000000100, 0x0001014000000100, 0x0001010001000100, 0x0001014001000100,
622 0x0001010000010100, 0x0001014000010100, 0x0001010001010100, 0x0001014001010100,
623 0x0001010000000001, 0x0001014000000001, 0x0001010001000001, 0x0001014001000001,
624 0x0001010000010001, 0x0001014000010001, 0x0001010001010001, 0x0001014001010001,
625 0x0001010000000101, 0x0001014000000101, 0x0001010001000101, 0x0001014001000101,
626 0x0001010000010101, 0x0001014000010101, 0x0001010001010101, 0x0001014001010101,
627 0x0101010000000000, 0x0101014000000000, 0x0101010001000000, 0x0101014001000000,
628 0x0101010000010000, 0x0101014000010000, 0x0101010001010000, 0x0101014001010000,
629 0x0101010000000100, 0x0101014000000100, 0x0101010001000100, 0x0101014001000100,
630 0x0101010000010100, 0x0101014000010100, 0x0101010001010100, 0x0101014001010100,
631 0x0101010000000001, 0x0101014000000001, 0x0101010001000001, 0x0101014001000001,
632 0x0101010000010001, 0x0101014000010001, 0x0101010001010001, 0x0101014001010001,
633 0x0101010000000101, 0x0101014000000101, 0x0101010001000101, 0x0101014001000101,
634 0x0101010000010101, 0x0101014000010101, 0x0101010001010101, 0x0101014001010101 };
635 
636 }
const uint64_t DES_IPTAB2[256]
Definition: des_tab.cpp:438
const uint32_t DES_SPBOX6[256]
Definition: des_tab.cpp:237
const uint32_t DES_SPBOX7[256]
Definition: des_tab.cpp:282
const uint64_t DES_IPTAB1[256]
Definition: des_tab.cpp:372
const uint32_t DES_SPBOX4[256]
Definition: des_tab.cpp:147
const uint32_t DES_SPBOX3[256]
Definition: des_tab.cpp:102
const uint32_t DES_SPBOX8[256]
Definition: des_tab.cpp:327
const uint32_t DES_SPBOX1[256]
Definition: des_tab.cpp:12
Definition: alg_id.cpp:13
const uint32_t DES_SPBOX5[256]
Definition: des_tab.cpp:192
const uint32_t DES_SPBOX2[256]
Definition: des_tab.cpp:57
const uint64_t DES_FPTAB1[256]
Definition: des_tab.cpp:504
const uint64_t DES_FPTAB2[256]
Definition: des_tab.cpp:570