2 /* $KAME: sk.h,v 1.3 2000/03/27 04:36:34 sumikawa Exp $ */
5 /* Copyright (C) 1995-1996 Eric Young (eay@mincom.oz.au)
8 * This file is part of an SSL implementation written
9 * by Eric Young (eay@mincom.oz.au).
10 * The implementation was written so as to conform with Netscapes SSL
11 * specification. This library and applications are
12 * FREE FOR COMMERCIAL AND NON-COMMERCIAL USE
13 * as long as the following conditions are aheared to.
15 * Copyright remains Eric Young's, and as such any Copyright notices in
16 * the code are not to be removed. If this code is used in a product,
17 * Eric Young should be given attribution as the author of the parts used.
18 * This can be in the form of a textual message at program startup or
19 * in documentation (online or textual) provided with the package.
21 * Redistribution and use in source and binary forms, with or without
22 * modification, are permitted provided that the following conditions
24 * 1. Redistributions of source code must retain the copyright
25 * notice, this list of conditions and the following disclaimer.
26 * 2. Redistributions in binary form must reproduce the above copyright
27 * notice, this list of conditions and the following disclaimer in the
28 * documentation and/or other materials provided with the distribution.
29 * 3. All advertising materials mentioning features or use of this software
30 * must display the following acknowledgement:
31 * This product includes software developed by Eric Young (eay@mincom.oz.au)
33 * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND
34 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
35 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
36 * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
37 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
38 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
39 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
40 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
41 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
42 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
45 * The licence and distribution terms for any publically available version or
46 * derivative of this code cannot be changed. i.e. this code cannot simply be
47 * copied and put under another distribution licence
48 * [including the GNU Public Licence.]
51 static const DES_LONG des_skb
[8][64]={
53 /* for C bits (numbered as per FIPS 46) 1 2 3 4 5 6 */
54 0x00000000L
,0x00000010L
,0x20000000L
,0x20000010L
,
55 0x00010000L
,0x00010010L
,0x20010000L
,0x20010010L
,
56 0x00000800L
,0x00000810L
,0x20000800L
,0x20000810L
,
57 0x00010800L
,0x00010810L
,0x20010800L
,0x20010810L
,
58 0x00000020L
,0x00000030L
,0x20000020L
,0x20000030L
,
59 0x00010020L
,0x00010030L
,0x20010020L
,0x20010030L
,
60 0x00000820L
,0x00000830L
,0x20000820L
,0x20000830L
,
61 0x00010820L
,0x00010830L
,0x20010820L
,0x20010830L
,
62 0x00080000L
,0x00080010L
,0x20080000L
,0x20080010L
,
63 0x00090000L
,0x00090010L
,0x20090000L
,0x20090010L
,
64 0x00080800L
,0x00080810L
,0x20080800L
,0x20080810L
,
65 0x00090800L
,0x00090810L
,0x20090800L
,0x20090810L
,
66 0x00080020L
,0x00080030L
,0x20080020L
,0x20080030L
,
67 0x00090020L
,0x00090030L
,0x20090020L
,0x20090030L
,
68 0x00080820L
,0x00080830L
,0x20080820L
,0x20080830L
,
69 0x00090820L
,0x00090830L
,0x20090820L
,0x20090830L
,
71 /* for C bits (numbered as per FIPS 46) 7 8 10 11 12 13 */
72 0x00000000L
,0x02000000L
,0x00002000L
,0x02002000L
,
73 0x00200000L
,0x02200000L
,0x00202000L
,0x02202000L
,
74 0x00000004L
,0x02000004L
,0x00002004L
,0x02002004L
,
75 0x00200004L
,0x02200004L
,0x00202004L
,0x02202004L
,
76 0x00000400L
,0x02000400L
,0x00002400L
,0x02002400L
,
77 0x00200400L
,0x02200400L
,0x00202400L
,0x02202400L
,
78 0x00000404L
,0x02000404L
,0x00002404L
,0x02002404L
,
79 0x00200404L
,0x02200404L
,0x00202404L
,0x02202404L
,
80 0x10000000L
,0x12000000L
,0x10002000L
,0x12002000L
,
81 0x10200000L
,0x12200000L
,0x10202000L
,0x12202000L
,
82 0x10000004L
,0x12000004L
,0x10002004L
,0x12002004L
,
83 0x10200004L
,0x12200004L
,0x10202004L
,0x12202004L
,
84 0x10000400L
,0x12000400L
,0x10002400L
,0x12002400L
,
85 0x10200400L
,0x12200400L
,0x10202400L
,0x12202400L
,
86 0x10000404L
,0x12000404L
,0x10002404L
,0x12002404L
,
87 0x10200404L
,0x12200404L
,0x10202404L
,0x12202404L
,
89 /* for C bits (numbered as per FIPS 46) 14 15 16 17 19 20 */
90 0x00000000L
,0x00000001L
,0x00040000L
,0x00040001L
,
91 0x01000000L
,0x01000001L
,0x01040000L
,0x01040001L
,
92 0x00000002L
,0x00000003L
,0x00040002L
,0x00040003L
,
93 0x01000002L
,0x01000003L
,0x01040002L
,0x01040003L
,
94 0x00000200L
,0x00000201L
,0x00040200L
,0x00040201L
,
95 0x01000200L
,0x01000201L
,0x01040200L
,0x01040201L
,
96 0x00000202L
,0x00000203L
,0x00040202L
,0x00040203L
,
97 0x01000202L
,0x01000203L
,0x01040202L
,0x01040203L
,
98 0x08000000L
,0x08000001L
,0x08040000L
,0x08040001L
,
99 0x09000000L
,0x09000001L
,0x09040000L
,0x09040001L
,
100 0x08000002L
,0x08000003L
,0x08040002L
,0x08040003L
,
101 0x09000002L
,0x09000003L
,0x09040002L
,0x09040003L
,
102 0x08000200L
,0x08000201L
,0x08040200L
,0x08040201L
,
103 0x09000200L
,0x09000201L
,0x09040200L
,0x09040201L
,
104 0x08000202L
,0x08000203L
,0x08040202L
,0x08040203L
,
105 0x09000202L
,0x09000203L
,0x09040202L
,0x09040203L
,
107 /* for C bits (numbered as per FIPS 46) 21 23 24 26 27 28 */
108 0x00000000L
,0x00100000L
,0x00000100L
,0x00100100L
,
109 0x00000008L
,0x00100008L
,0x00000108L
,0x00100108L
,
110 0x00001000L
,0x00101000L
,0x00001100L
,0x00101100L
,
111 0x00001008L
,0x00101008L
,0x00001108L
,0x00101108L
,
112 0x04000000L
,0x04100000L
,0x04000100L
,0x04100100L
,
113 0x04000008L
,0x04100008L
,0x04000108L
,0x04100108L
,
114 0x04001000L
,0x04101000L
,0x04001100L
,0x04101100L
,
115 0x04001008L
,0x04101008L
,0x04001108L
,0x04101108L
,
116 0x00020000L
,0x00120000L
,0x00020100L
,0x00120100L
,
117 0x00020008L
,0x00120008L
,0x00020108L
,0x00120108L
,
118 0x00021000L
,0x00121000L
,0x00021100L
,0x00121100L
,
119 0x00021008L
,0x00121008L
,0x00021108L
,0x00121108L
,
120 0x04020000L
,0x04120000L
,0x04020100L
,0x04120100L
,
121 0x04020008L
,0x04120008L
,0x04020108L
,0x04120108L
,
122 0x04021000L
,0x04121000L
,0x04021100L
,0x04121100L
,
123 0x04021008L
,0x04121008L
,0x04021108L
,0x04121108L
,
125 /* for D bits (numbered as per FIPS 46) 1 2 3 4 5 6 */
126 0x00000000L
,0x10000000L
,0x00010000L
,0x10010000L
,
127 0x00000004L
,0x10000004L
,0x00010004L
,0x10010004L
,
128 0x20000000L
,0x30000000L
,0x20010000L
,0x30010000L
,
129 0x20000004L
,0x30000004L
,0x20010004L
,0x30010004L
,
130 0x00100000L
,0x10100000L
,0x00110000L
,0x10110000L
,
131 0x00100004L
,0x10100004L
,0x00110004L
,0x10110004L
,
132 0x20100000L
,0x30100000L
,0x20110000L
,0x30110000L
,
133 0x20100004L
,0x30100004L
,0x20110004L
,0x30110004L
,
134 0x00001000L
,0x10001000L
,0x00011000L
,0x10011000L
,
135 0x00001004L
,0x10001004L
,0x00011004L
,0x10011004L
,
136 0x20001000L
,0x30001000L
,0x20011000L
,0x30011000L
,
137 0x20001004L
,0x30001004L
,0x20011004L
,0x30011004L
,
138 0x00101000L
,0x10101000L
,0x00111000L
,0x10111000L
,
139 0x00101004L
,0x10101004L
,0x00111004L
,0x10111004L
,
140 0x20101000L
,0x30101000L
,0x20111000L
,0x30111000L
,
141 0x20101004L
,0x30101004L
,0x20111004L
,0x30111004L
,
143 /* for D bits (numbered as per FIPS 46) 8 9 11 12 13 14 */
144 0x00000000L
,0x08000000L
,0x00000008L
,0x08000008L
,
145 0x00000400L
,0x08000400L
,0x00000408L
,0x08000408L
,
146 0x00020000L
,0x08020000L
,0x00020008L
,0x08020008L
,
147 0x00020400L
,0x08020400L
,0x00020408L
,0x08020408L
,
148 0x00000001L
,0x08000001L
,0x00000009L
,0x08000009L
,
149 0x00000401L
,0x08000401L
,0x00000409L
,0x08000409L
,
150 0x00020001L
,0x08020001L
,0x00020009L
,0x08020009L
,
151 0x00020401L
,0x08020401L
,0x00020409L
,0x08020409L
,
152 0x02000000L
,0x0A000000L
,0x02000008L
,0x0A000008L
,
153 0x02000400L
,0x0A000400L
,0x02000408L
,0x0A000408L
,
154 0x02020000L
,0x0A020000L
,0x02020008L
,0x0A020008L
,
155 0x02020400L
,0x0A020400L
,0x02020408L
,0x0A020408L
,
156 0x02000001L
,0x0A000001L
,0x02000009L
,0x0A000009L
,
157 0x02000401L
,0x0A000401L
,0x02000409L
,0x0A000409L
,
158 0x02020001L
,0x0A020001L
,0x02020009L
,0x0A020009L
,
159 0x02020401L
,0x0A020401L
,0x02020409L
,0x0A020409L
,
161 /* for D bits (numbered as per FIPS 46) 16 17 18 19 20 21 */
162 0x00000000L
,0x00000100L
,0x00080000L
,0x00080100L
,
163 0x01000000L
,0x01000100L
,0x01080000L
,0x01080100L
,
164 0x00000010L
,0x00000110L
,0x00080010L
,0x00080110L
,
165 0x01000010L
,0x01000110L
,0x01080010L
,0x01080110L
,
166 0x00200000L
,0x00200100L
,0x00280000L
,0x00280100L
,
167 0x01200000L
,0x01200100L
,0x01280000L
,0x01280100L
,
168 0x00200010L
,0x00200110L
,0x00280010L
,0x00280110L
,
169 0x01200010L
,0x01200110L
,0x01280010L
,0x01280110L
,
170 0x00000200L
,0x00000300L
,0x00080200L
,0x00080300L
,
171 0x01000200L
,0x01000300L
,0x01080200L
,0x01080300L
,
172 0x00000210L
,0x00000310L
,0x00080210L
,0x00080310L
,
173 0x01000210L
,0x01000310L
,0x01080210L
,0x01080310L
,
174 0x00200200L
,0x00200300L
,0x00280200L
,0x00280300L
,
175 0x01200200L
,0x01200300L
,0x01280200L
,0x01280300L
,
176 0x00200210L
,0x00200310L
,0x00280210L
,0x00280310L
,
177 0x01200210L
,0x01200310L
,0x01280210L
,0x01280310L
,
179 /* for D bits (numbered as per FIPS 46) 22 23 24 25 27 28 */
180 0x00000000L
,0x04000000L
,0x00040000L
,0x04040000L
,
181 0x00000002L
,0x04000002L
,0x00040002L
,0x04040002L
,
182 0x00002000L
,0x04002000L
,0x00042000L
,0x04042000L
,
183 0x00002002L
,0x04002002L
,0x00042002L
,0x04042002L
,
184 0x00000020L
,0x04000020L
,0x00040020L
,0x04040020L
,
185 0x00000022L
,0x04000022L
,0x00040022L
,0x04040022L
,
186 0x00002020L
,0x04002020L
,0x00042020L
,0x04042020L
,
187 0x00002022L
,0x04002022L
,0x00042022L
,0x04042022L
,
188 0x00000800L
,0x04000800L
,0x00040800L
,0x04040800L
,
189 0x00000802L
,0x04000802L
,0x00040802L
,0x04040802L
,
190 0x00002800L
,0x04002800L
,0x00042800L
,0x04042800L
,
191 0x00002802L
,0x04002802L
,0x00042802L
,0x04042802L
,
192 0x00000820L
,0x04000820L
,0x00040820L
,0x04040820L
,
193 0x00000822L
,0x04000822L
,0x00040822L
,0x04040822L
,
194 0x00002820L
,0x04002820L
,0x00042820L
,0x04042820L
,
195 0x00002822L
,0x04002822L
,0x00042822L
,0x04042822L
,