1/*	$NetBSD: des-tables.h,v 1.2 2017/01/28 21:31:47 christos Exp $	*/
2
3/* GENERATE FILE from gen-des.pl, do not edit */
4
5/* pc1_c_3 bit pattern 5 13 21 */
6static int pc1_c_3[8] = {
7    0x00000000, 0x00000010, 0x00001000, 0x00001010,
8    0x00100000, 0x00100010, 0x00101000, 0x00101010
9};
10/* pc1_c_4 bit pattern 1 9 17 25 */
11static int pc1_c_4[16] = {
12    0x00000000, 0x00000001, 0x00000100, 0x00000101,
13    0x00010000, 0x00010001, 0x00010100, 0x00010101,
14    0x01000000, 0x01000001, 0x01000100, 0x01000101,
15    0x01010000, 0x01010001, 0x01010100, 0x01010101
16};
17/* pc1_d_3 bit pattern 49 41 33 */
18static int pc1_d_3[8] = {
19    0x00000000, 0x01000000, 0x00010000, 0x01010000,
20    0x00000100, 0x01000100, 0x00010100, 0x01010100
21};
22/* pc1_d_4 bit pattern 57 53 45 37 */
23static int pc1_d_4[16] = {
24    0x00000000, 0x00100000, 0x00001000, 0x00101000,
25    0x00000010, 0x00100010, 0x00001010, 0x00101010,
26    0x00000001, 0x00100001, 0x00001001, 0x00101001,
27    0x00000011, 0x00100011, 0x00001011, 0x00101011
28};
29/* pc2_c_1 bit pattern 5 24 7 16 6 10 */
30static int pc2_c_1[64] = {
31    0x00000000, 0x00004000, 0x00040000, 0x00044000,
32    0x00000100, 0x00004100, 0x00040100, 0x00044100,
33    0x00020000, 0x00024000, 0x00060000, 0x00064000,
34    0x00020100, 0x00024100, 0x00060100, 0x00064100,
35    0x00000001, 0x00004001, 0x00040001, 0x00044001,
36    0x00000101, 0x00004101, 0x00040101, 0x00044101,
37    0x00020001, 0x00024001, 0x00060001, 0x00064001,
38    0x00020101, 0x00024101, 0x00060101, 0x00064101,
39    0x00080000, 0x00084000, 0x000c0000, 0x000c4000,
40    0x00080100, 0x00084100, 0x000c0100, 0x000c4100,
41    0x000a0000, 0x000a4000, 0x000e0000, 0x000e4000,
42    0x000a0100, 0x000a4100, 0x000e0100, 0x000e4100,
43    0x00080001, 0x00084001, 0x000c0001, 0x000c4001,
44    0x00080101, 0x00084101, 0x000c0101, 0x000c4101,
45    0x000a0001, 0x000a4001, 0x000e0001, 0x000e4001,
46    0x000a0101, 0x000a4101, 0x000e0101, 0x000e4101
47};
48/* pc2_c_2 bit pattern 20 18 12 3 15 23 */
49static int pc2_c_2[64] = {
50    0x00000000, 0x00000002, 0x00000200, 0x00000202,
51    0x00200000, 0x00200002, 0x00200200, 0x00200202,
52    0x00001000, 0x00001002, 0x00001200, 0x00001202,
53    0x00201000, 0x00201002, 0x00201200, 0x00201202,
54    0x00000040, 0x00000042, 0x00000240, 0x00000242,
55    0x00200040, 0x00200042, 0x00200240, 0x00200242,
56    0x00001040, 0x00001042, 0x00001240, 0x00001242,
57    0x00201040, 0x00201042, 0x00201240, 0x00201242,
58    0x00000010, 0x00000012, 0x00000210, 0x00000212,
59    0x00200010, 0x00200012, 0x00200210, 0x00200212,
60    0x00001010, 0x00001012, 0x00001210, 0x00001212,
61    0x00201010, 0x00201012, 0x00201210, 0x00201212,
62    0x00000050, 0x00000052, 0x00000250, 0x00000252,
63    0x00200050, 0x00200052, 0x00200250, 0x00200252,
64    0x00001050, 0x00001052, 0x00001250, 0x00001252,
65    0x00201050, 0x00201052, 0x00201250, 0x00201252
66};
67/* pc2_c_3 bit pattern 1 9 19 2 14 22 */
68static int pc2_c_3[64] = {
69    0x00000000, 0x00000004, 0x00000400, 0x00000404,
70    0x00400000, 0x00400004, 0x00400400, 0x00400404,
71    0x00000020, 0x00000024, 0x00000420, 0x00000424,
72    0x00400020, 0x00400024, 0x00400420, 0x00400424,
73    0x00008000, 0x00008004, 0x00008400, 0x00008404,
74    0x00408000, 0x00408004, 0x00408400, 0x00408404,
75    0x00008020, 0x00008024, 0x00008420, 0x00008424,
76    0x00408020, 0x00408024, 0x00408420, 0x00408424,
77    0x00800000, 0x00800004, 0x00800400, 0x00800404,
78    0x00c00000, 0x00c00004, 0x00c00400, 0x00c00404,
79    0x00800020, 0x00800024, 0x00800420, 0x00800424,
80    0x00c00020, 0x00c00024, 0x00c00420, 0x00c00424,
81    0x00808000, 0x00808004, 0x00808400, 0x00808404,
82    0x00c08000, 0x00c08004, 0x00c08400, 0x00c08404,
83    0x00808020, 0x00808024, 0x00808420, 0x00808424,
84    0x00c08020, 0x00c08024, 0x00c08420, 0x00c08424
85};
86/* pc2_c_4 bit pattern 11 13 4 17 21 8 */
87static int pc2_c_4[64] = {
88    0x00000000, 0x00010000, 0x00000008, 0x00010008,
89    0x00000080, 0x00010080, 0x00000088, 0x00010088,
90    0x00100000, 0x00110000, 0x00100008, 0x00110008,
91    0x00100080, 0x00110080, 0x00100088, 0x00110088,
92    0x00000800, 0x00010800, 0x00000808, 0x00010808,
93    0x00000880, 0x00010880, 0x00000888, 0x00010888,
94    0x00100800, 0x00110800, 0x00100808, 0x00110808,
95    0x00100880, 0x00110880, 0x00100888, 0x00110888,
96    0x00002000, 0x00012000, 0x00002008, 0x00012008,
97    0x00002080, 0x00012080, 0x00002088, 0x00012088,
98    0x00102000, 0x00112000, 0x00102008, 0x00112008,
99    0x00102080, 0x00112080, 0x00102088, 0x00112088,
100    0x00002800, 0x00012800, 0x00002808, 0x00012808,
101    0x00002880, 0x00012880, 0x00002888, 0x00012888,
102    0x00102800, 0x00112800, 0x00102808, 0x00112808,
103    0x00102880, 0x00112880, 0x00102888, 0x00112888
104};
105/* pc2_d_1 bit pattern 51 35 31 52 39 45 */
106static int pc2_d_1[64] = {
107    0x00000000, 0x00000080, 0x00002000, 0x00002080,
108    0x00000001, 0x00000081, 0x00002001, 0x00002081,
109    0x00200000, 0x00200080, 0x00202000, 0x00202080,
110    0x00200001, 0x00200081, 0x00202001, 0x00202081,
111    0x00020000, 0x00020080, 0x00022000, 0x00022080,
112    0x00020001, 0x00020081, 0x00022001, 0x00022081,
113    0x00220000, 0x00220080, 0x00222000, 0x00222080,
114    0x00220001, 0x00220081, 0x00222001, 0x00222081,
115    0x00000002, 0x00000082, 0x00002002, 0x00002082,
116    0x00000003, 0x00000083, 0x00002003, 0x00002083,
117    0x00200002, 0x00200082, 0x00202002, 0x00202082,
118    0x00200003, 0x00200083, 0x00202003, 0x00202083,
119    0x00020002, 0x00020082, 0x00022002, 0x00022082,
120    0x00020003, 0x00020083, 0x00022003, 0x00022083,
121    0x00220002, 0x00220082, 0x00222002, 0x00222082,
122    0x00220003, 0x00220083, 0x00222003, 0x00222083
123};
124/* pc2_d_2 bit pattern 50 32 43 36 29 48 */
125static int pc2_d_2[64] = {
126    0x00000000, 0x00000010, 0x00800000, 0x00800010,
127    0x00010000, 0x00010010, 0x00810000, 0x00810010,
128    0x00000200, 0x00000210, 0x00800200, 0x00800210,
129    0x00010200, 0x00010210, 0x00810200, 0x00810210,
130    0x00100000, 0x00100010, 0x00900000, 0x00900010,
131    0x00110000, 0x00110010, 0x00910000, 0x00910010,
132    0x00100200, 0x00100210, 0x00900200, 0x00900210,
133    0x00110200, 0x00110210, 0x00910200, 0x00910210,
134    0x00000004, 0x00000014, 0x00800004, 0x00800014,
135    0x00010004, 0x00010014, 0x00810004, 0x00810014,
136    0x00000204, 0x00000214, 0x00800204, 0x00800214,
137    0x00010204, 0x00010214, 0x00810204, 0x00810214,
138    0x00100004, 0x00100014, 0x00900004, 0x00900014,
139    0x00110004, 0x00110014, 0x00910004, 0x00910014,
140    0x00100204, 0x00100214, 0x00900204, 0x00900214,
141    0x00110204, 0x00110214, 0x00910204, 0x00910214
142};
143/* pc2_d_3 bit pattern 41 38 47 33 40 42 */
144static int pc2_d_3[64] = {
145    0x00000000, 0x00000400, 0x00001000, 0x00001400,
146    0x00080000, 0x00080400, 0x00081000, 0x00081400,
147    0x00000020, 0x00000420, 0x00001020, 0x00001420,
148    0x00080020, 0x00080420, 0x00081020, 0x00081420,
149    0x00004000, 0x00004400, 0x00005000, 0x00005400,
150    0x00084000, 0x00084400, 0x00085000, 0x00085400,
151    0x00004020, 0x00004420, 0x00005020, 0x00005420,
152    0x00084020, 0x00084420, 0x00085020, 0x00085420,
153    0x00000800, 0x00000c00, 0x00001800, 0x00001c00,
154    0x00080800, 0x00080c00, 0x00081800, 0x00081c00,
155    0x00000820, 0x00000c20, 0x00001820, 0x00001c20,
156    0x00080820, 0x00080c20, 0x00081820, 0x00081c20,
157    0x00004800, 0x00004c00, 0x00005800, 0x00005c00,
158    0x00084800, 0x00084c00, 0x00085800, 0x00085c00,
159    0x00004820, 0x00004c20, 0x00005820, 0x00005c20,
160    0x00084820, 0x00084c20, 0x00085820, 0x00085c20
161};
162/* pc2_d_4 bit pattern 49 37 30 46 34 44 */
163static int pc2_d_4[64] = {
164    0x00000000, 0x00000100, 0x00040000, 0x00040100,
165    0x00000040, 0x00000140, 0x00040040, 0x00040140,
166    0x00400000, 0x00400100, 0x00440000, 0x00440100,
167    0x00400040, 0x00400140, 0x00440040, 0x00440140,
168    0x00008000, 0x00008100, 0x00048000, 0x00048100,
169    0x00008040, 0x00008140, 0x00048040, 0x00048140,
170    0x00408000, 0x00408100, 0x00448000, 0x00448100,
171    0x00408040, 0x00408140, 0x00448040, 0x00448140,
172    0x00000008, 0x00000108, 0x00040008, 0x00040108,
173    0x00000048, 0x00000148, 0x00040048, 0x00040148,
174    0x00400008, 0x00400108, 0x00440008, 0x00440108,
175    0x00400048, 0x00400148, 0x00440048, 0x00440148,
176    0x00008008, 0x00008108, 0x00048008, 0x00048108,
177    0x00008048, 0x00008148, 0x00048048, 0x00048148,
178    0x00408008, 0x00408108, 0x00448008, 0x00448108,
179    0x00408048, 0x00408148, 0x00448048, 0x00448148
180};
181static unsigned char odd_parity[256] = {
182  1,  1,  2,  2,  4,  4,  7,  7,  8,  8, 11, 11, 13, 13, 14, 14,
183 16, 16, 19, 19, 21, 21, 22, 22, 25, 25, 26, 26, 28, 28, 31, 31,
184 32, 32, 35, 35, 37, 37, 38, 38, 41, 41, 42, 42, 44, 44, 47, 47,
185 49, 49, 50, 50, 52, 52, 55, 55, 56, 56, 59, 59, 61, 61, 62, 62,
186 64, 64, 67, 67, 69, 69, 70, 70, 73, 73, 74, 74, 76, 76, 79, 79,
187 81, 81, 82, 82, 84, 84, 87, 87, 88, 88, 91, 91, 93, 93, 94, 94,
188 97, 97, 98, 98,100,100,103,103,104,104,107,107,109,109,110,110,
189112,112,115,115,117,117,118,118,121,121,122,122,124,124,127,127,
190128,128,131,131,133,133,134,134,137,137,138,138,140,140,143,143,
191145,145,146,146,148,148,151,151,152,152,155,155,157,157,158,158,
192161,161,162,162,164,164,167,167,168,168,171,171,173,173,174,174,
193176,176,179,179,181,181,182,182,185,185,186,186,188,188,191,191,
194193,193,194,194,196,196,199,199,200,200,203,203,205,205,206,206,
195208,208,211,211,213,213,214,214,217,217,218,218,220,220,223,223,
196224,224,227,227,229,229,230,230,233,233,234,234,236,236,239,239,
197241,241,242,242,244,244,247,247,248,248,251,251,253,253,254,254,
198 };
199