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