Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenHarmony
Third Party Openssl
提交
48b83a25
T
Third Party Openssl
项目概览
OpenHarmony
/
Third Party Openssl
大约 1 年 前同步成功
通知
9
Star
18
Fork
1
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
T
Third Party Openssl
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
48b83a25
编写于
3月 19, 2000
作者:
U
Ulf Möller
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Integrate podd.h sk.h into set_key.c
上级
e55818b9
变更
5
显示空白变更内容
内联
并排
Showing
5 changed file
with
169 addition
and
301 deletion
+169
-301
crypto/des/Makefile.ssl
crypto/des/Makefile.ssl
+1
-1
crypto/des/des.c
crypto/des/des.c
+2
-5
crypto/des/podd.h
crypto/des/podd.h
+0
-75
crypto/des/set_key.c
crypto/des/set_key.c
+166
-16
crypto/des/sk.h
crypto/des/sk.h
+0
-204
未找到文件。
crypto/des/Makefile.ssl
浏览文件 @
48b83a25
...
...
@@ -46,7 +46,7 @@ LIBOBJ= set_key.o ecb_enc.o cbc_enc.o \
SRC
=
$(LIBSRC)
EXHEADER
=
des.h
HEADER
=
des_locl.h rpc_des.h
podd.h sk.h
spr.h des_ver.h
$(EXHEADER)
HEADER
=
des_locl.h rpc_des.h spr.h des_ver.h
$(EXHEADER)
ALL
=
$(GENERAL)
$(SRC)
$(HEADER)
...
...
crypto/des/des.c
浏览文件 @
48b83a25
...
...
@@ -58,6 +58,7 @@
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#ifndef MSDOS
#ifndef VMS
#include <openssl/opensslconf.h>
...
...
@@ -69,7 +70,7 @@
#include <math.h>
#endif
/* __DECC */
#endif
/* VMS */
#else
#else
/* MSDOS */
#include <io.h>
#endif
...
...
@@ -88,10 +89,6 @@
#include <openssl/des.h>
#include <openssl/rand.h>
#if defined(__STDC__) || defined(VMS) || defined(M_XENIX) || defined(MSDOS)
#include <string.h>
#endif
void
usage
(
void
);
void
doencryption
(
void
);
int
uufwrite
(
unsigned
char
*
data
,
int
size
,
unsigned
int
num
,
FILE
*
fp
);
...
...
crypto/des/podd.h
已删除
100644 → 0
浏览文件 @
e55818b9
/* crypto/des/podd.h */
/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
* All rights reserved.
*
* This package is an SSL implementation written
* by Eric Young (eay@cryptsoft.com).
* The implementation was written so as to conform with Netscapes SSL.
*
* This library is free for commercial and non-commercial use as long as
* the following conditions are aheared to. The following conditions
* apply to all code found in this distribution, be it the RC4, RSA,
* lhash, DES, etc., code; not just the SSL code. The SSL documentation
* included with this distribution is covered by the same copyright terms
* except that the holder is Tim Hudson (tjh@cryptsoft.com).
*
* Copyright remains Eric Young's, and as such any Copyright notices in
* the code are not to be removed.
* If this package is used in a product, Eric Young should be given attribution
* as the author of the parts of the library used.
* This can be in the form of a textual message at program startup or
* in documentation (online or textual) provided with the package.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* 3. All advertising materials mentioning features or use of this software
* must display the following acknowledgement:
* "This product includes cryptographic software written by
* Eric Young (eay@cryptsoft.com)"
* The word 'cryptographic' can be left out if the rouines from the library
* being used are not cryptographic related :-).
* 4. If you include any Windows specific code (or a derivative thereof) from
* the apps directory (application code) you must include an acknowledgement:
* "This product includes software written by Tim Hudson (tjh@cryptsoft.com)"
*
* THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
* The licence and distribution terms for any publically available version or
* derivative of this code cannot be changed. i.e. this code cannot simply be
* copied and put under another distribution licence
* [including the GNU Public Licence.]
*/
static
const
unsigned
char
odd_parity
[
256
]
=
{
1
,
1
,
2
,
2
,
4
,
4
,
7
,
7
,
8
,
8
,
11
,
11
,
13
,
13
,
14
,
14
,
16
,
16
,
19
,
19
,
21
,
21
,
22
,
22
,
25
,
25
,
26
,
26
,
28
,
28
,
31
,
31
,
32
,
32
,
35
,
35
,
37
,
37
,
38
,
38
,
41
,
41
,
42
,
42
,
44
,
44
,
47
,
47
,
49
,
49
,
50
,
50
,
52
,
52
,
55
,
55
,
56
,
56
,
59
,
59
,
61
,
61
,
62
,
62
,
64
,
64
,
67
,
67
,
69
,
69
,
70
,
70
,
73
,
73
,
74
,
74
,
76
,
76
,
79
,
79
,
81
,
81
,
82
,
82
,
84
,
84
,
87
,
87
,
88
,
88
,
91
,
91
,
93
,
93
,
94
,
94
,
97
,
97
,
98
,
98
,
100
,
100
,
103
,
103
,
104
,
104
,
107
,
107
,
109
,
109
,
110
,
110
,
112
,
112
,
115
,
115
,
117
,
117
,
118
,
118
,
121
,
121
,
122
,
122
,
124
,
124
,
127
,
127
,
128
,
128
,
131
,
131
,
133
,
133
,
134
,
134
,
137
,
137
,
138
,
138
,
140
,
140
,
143
,
143
,
145
,
145
,
146
,
146
,
148
,
148
,
151
,
151
,
152
,
152
,
155
,
155
,
157
,
157
,
158
,
158
,
161
,
161
,
162
,
162
,
164
,
164
,
167
,
167
,
168
,
168
,
171
,
171
,
173
,
173
,
174
,
174
,
176
,
176
,
179
,
179
,
181
,
181
,
182
,
182
,
185
,
185
,
186
,
186
,
188
,
188
,
191
,
191
,
193
,
193
,
194
,
194
,
196
,
196
,
199
,
199
,
200
,
200
,
203
,
203
,
205
,
205
,
206
,
206
,
208
,
208
,
211
,
211
,
213
,
213
,
214
,
214
,
217
,
217
,
218
,
218
,
220
,
220
,
223
,
223
,
224
,
224
,
227
,
227
,
229
,
229
,
230
,
230
,
233
,
233
,
234
,
234
,
236
,
236
,
239
,
239
,
241
,
241
,
242
,
242
,
244
,
244
,
247
,
247
,
248
,
248
,
251
,
251
,
253
,
253
,
254
,
254
};
crypto/des/set_key.c
浏览文件 @
48b83a25
...
...
@@ -64,11 +64,27 @@
* 1.0 First working version
*/
#include "des_locl.h"
#include "podd.h"
#include "sk.h"
OPENSSL_GLOBAL
int
des_check_key
=
0
;
static
const
unsigned
char
odd_parity
[
256
]
=
{
1
,
1
,
2
,
2
,
4
,
4
,
7
,
7
,
8
,
8
,
11
,
11
,
13
,
13
,
14
,
14
,
16
,
16
,
19
,
19
,
21
,
21
,
22
,
22
,
25
,
25
,
26
,
26
,
28
,
28
,
31
,
31
,
32
,
32
,
35
,
35
,
37
,
37
,
38
,
38
,
41
,
41
,
42
,
42
,
44
,
44
,
47
,
47
,
49
,
49
,
50
,
50
,
52
,
52
,
55
,
55
,
56
,
56
,
59
,
59
,
61
,
61
,
62
,
62
,
64
,
64
,
67
,
67
,
69
,
69
,
70
,
70
,
73
,
73
,
74
,
74
,
76
,
76
,
79
,
79
,
81
,
81
,
82
,
82
,
84
,
84
,
87
,
87
,
88
,
88
,
91
,
91
,
93
,
93
,
94
,
94
,
97
,
97
,
98
,
98
,
100
,
100
,
103
,
103
,
104
,
104
,
107
,
107
,
109
,
109
,
110
,
110
,
112
,
112
,
115
,
115
,
117
,
117
,
118
,
118
,
121
,
121
,
122
,
122
,
124
,
124
,
127
,
127
,
128
,
128
,
131
,
131
,
133
,
133
,
134
,
134
,
137
,
137
,
138
,
138
,
140
,
140
,
143
,
143
,
145
,
145
,
146
,
146
,
148
,
148
,
151
,
151
,
152
,
152
,
155
,
155
,
157
,
157
,
158
,
158
,
161
,
161
,
162
,
162
,
164
,
164
,
167
,
167
,
168
,
168
,
171
,
171
,
173
,
173
,
174
,
174
,
176
,
176
,
179
,
179
,
181
,
181
,
182
,
182
,
185
,
185
,
186
,
186
,
188
,
188
,
191
,
191
,
193
,
193
,
194
,
194
,
196
,
196
,
199
,
199
,
200
,
200
,
203
,
203
,
205
,
205
,
206
,
206
,
208
,
208
,
211
,
211
,
213
,
213
,
214
,
214
,
217
,
217
,
218
,
218
,
220
,
220
,
223
,
223
,
224
,
224
,
227
,
227
,
229
,
229
,
230
,
230
,
233
,
233
,
234
,
234
,
236
,
236
,
239
,
239
,
241
,
241
,
242
,
242
,
244
,
244
,
247
,
247
,
248
,
248
,
251
,
251
,
253
,
253
,
254
,
254
};
void
des_set_odd_parity
(
des_cblock
*
key
)
{
int
i
;
...
...
@@ -144,6 +160,153 @@ int des_is_weak_key(const_des_cblock *key)
#define HPERM_OP(a,t,n,m) ((t)=((((a)<<(16-(n)))^(a))&(m)),\
(a)=(a)^(t)^(t>>(16-(n))))
static
const
DES_LONG
des_skb
[
8
][
64
]
=
{
{
/* for C bits (numbered as per FIPS 46) 1 2 3 4 5 6 */
0x00000000L
,
0x00000010L
,
0x20000000L
,
0x20000010L
,
0x00010000L
,
0x00010010L
,
0x20010000L
,
0x20010010L
,
0x00000800L
,
0x00000810L
,
0x20000800L
,
0x20000810L
,
0x00010800L
,
0x00010810L
,
0x20010800L
,
0x20010810L
,
0x00000020L
,
0x00000030L
,
0x20000020L
,
0x20000030L
,
0x00010020L
,
0x00010030L
,
0x20010020L
,
0x20010030L
,
0x00000820L
,
0x00000830L
,
0x20000820L
,
0x20000830L
,
0x00010820L
,
0x00010830L
,
0x20010820L
,
0x20010830L
,
0x00080000L
,
0x00080010L
,
0x20080000L
,
0x20080010L
,
0x00090000L
,
0x00090010L
,
0x20090000L
,
0x20090010L
,
0x00080800L
,
0x00080810L
,
0x20080800L
,
0x20080810L
,
0x00090800L
,
0x00090810L
,
0x20090800L
,
0x20090810L
,
0x00080020L
,
0x00080030L
,
0x20080020L
,
0x20080030L
,
0x00090020L
,
0x00090030L
,
0x20090020L
,
0x20090030L
,
0x00080820L
,
0x00080830L
,
0x20080820L
,
0x20080830L
,
0x00090820L
,
0x00090830L
,
0x20090820L
,
0x20090830L
,
},{
/* for C bits (numbered as per FIPS 46) 7 8 10 11 12 13 */
0x00000000L
,
0x02000000L
,
0x00002000L
,
0x02002000L
,
0x00200000L
,
0x02200000L
,
0x00202000L
,
0x02202000L
,
0x00000004L
,
0x02000004L
,
0x00002004L
,
0x02002004L
,
0x00200004L
,
0x02200004L
,
0x00202004L
,
0x02202004L
,
0x00000400L
,
0x02000400L
,
0x00002400L
,
0x02002400L
,
0x00200400L
,
0x02200400L
,
0x00202400L
,
0x02202400L
,
0x00000404L
,
0x02000404L
,
0x00002404L
,
0x02002404L
,
0x00200404L
,
0x02200404L
,
0x00202404L
,
0x02202404L
,
0x10000000L
,
0x12000000L
,
0x10002000L
,
0x12002000L
,
0x10200000L
,
0x12200000L
,
0x10202000L
,
0x12202000L
,
0x10000004L
,
0x12000004L
,
0x10002004L
,
0x12002004L
,
0x10200004L
,
0x12200004L
,
0x10202004L
,
0x12202004L
,
0x10000400L
,
0x12000400L
,
0x10002400L
,
0x12002400L
,
0x10200400L
,
0x12200400L
,
0x10202400L
,
0x12202400L
,
0x10000404L
,
0x12000404L
,
0x10002404L
,
0x12002404L
,
0x10200404L
,
0x12200404L
,
0x10202404L
,
0x12202404L
,
},{
/* for C bits (numbered as per FIPS 46) 14 15 16 17 19 20 */
0x00000000L
,
0x00000001L
,
0x00040000L
,
0x00040001L
,
0x01000000L
,
0x01000001L
,
0x01040000L
,
0x01040001L
,
0x00000002L
,
0x00000003L
,
0x00040002L
,
0x00040003L
,
0x01000002L
,
0x01000003L
,
0x01040002L
,
0x01040003L
,
0x00000200L
,
0x00000201L
,
0x00040200L
,
0x00040201L
,
0x01000200L
,
0x01000201L
,
0x01040200L
,
0x01040201L
,
0x00000202L
,
0x00000203L
,
0x00040202L
,
0x00040203L
,
0x01000202L
,
0x01000203L
,
0x01040202L
,
0x01040203L
,
0x08000000L
,
0x08000001L
,
0x08040000L
,
0x08040001L
,
0x09000000L
,
0x09000001L
,
0x09040000L
,
0x09040001L
,
0x08000002L
,
0x08000003L
,
0x08040002L
,
0x08040003L
,
0x09000002L
,
0x09000003L
,
0x09040002L
,
0x09040003L
,
0x08000200L
,
0x08000201L
,
0x08040200L
,
0x08040201L
,
0x09000200L
,
0x09000201L
,
0x09040200L
,
0x09040201L
,
0x08000202L
,
0x08000203L
,
0x08040202L
,
0x08040203L
,
0x09000202L
,
0x09000203L
,
0x09040202L
,
0x09040203L
,
},{
/* for C bits (numbered as per FIPS 46) 21 23 24 26 27 28 */
0x00000000L
,
0x00100000L
,
0x00000100L
,
0x00100100L
,
0x00000008L
,
0x00100008L
,
0x00000108L
,
0x00100108L
,
0x00001000L
,
0x00101000L
,
0x00001100L
,
0x00101100L
,
0x00001008L
,
0x00101008L
,
0x00001108L
,
0x00101108L
,
0x04000000L
,
0x04100000L
,
0x04000100L
,
0x04100100L
,
0x04000008L
,
0x04100008L
,
0x04000108L
,
0x04100108L
,
0x04001000L
,
0x04101000L
,
0x04001100L
,
0x04101100L
,
0x04001008L
,
0x04101008L
,
0x04001108L
,
0x04101108L
,
0x00020000L
,
0x00120000L
,
0x00020100L
,
0x00120100L
,
0x00020008L
,
0x00120008L
,
0x00020108L
,
0x00120108L
,
0x00021000L
,
0x00121000L
,
0x00021100L
,
0x00121100L
,
0x00021008L
,
0x00121008L
,
0x00021108L
,
0x00121108L
,
0x04020000L
,
0x04120000L
,
0x04020100L
,
0x04120100L
,
0x04020008L
,
0x04120008L
,
0x04020108L
,
0x04120108L
,
0x04021000L
,
0x04121000L
,
0x04021100L
,
0x04121100L
,
0x04021008L
,
0x04121008L
,
0x04021108L
,
0x04121108L
,
},{
/* for D bits (numbered as per FIPS 46) 1 2 3 4 5 6 */
0x00000000L
,
0x10000000L
,
0x00010000L
,
0x10010000L
,
0x00000004L
,
0x10000004L
,
0x00010004L
,
0x10010004L
,
0x20000000L
,
0x30000000L
,
0x20010000L
,
0x30010000L
,
0x20000004L
,
0x30000004L
,
0x20010004L
,
0x30010004L
,
0x00100000L
,
0x10100000L
,
0x00110000L
,
0x10110000L
,
0x00100004L
,
0x10100004L
,
0x00110004L
,
0x10110004L
,
0x20100000L
,
0x30100000L
,
0x20110000L
,
0x30110000L
,
0x20100004L
,
0x30100004L
,
0x20110004L
,
0x30110004L
,
0x00001000L
,
0x10001000L
,
0x00011000L
,
0x10011000L
,
0x00001004L
,
0x10001004L
,
0x00011004L
,
0x10011004L
,
0x20001000L
,
0x30001000L
,
0x20011000L
,
0x30011000L
,
0x20001004L
,
0x30001004L
,
0x20011004L
,
0x30011004L
,
0x00101000L
,
0x10101000L
,
0x00111000L
,
0x10111000L
,
0x00101004L
,
0x10101004L
,
0x00111004L
,
0x10111004L
,
0x20101000L
,
0x30101000L
,
0x20111000L
,
0x30111000L
,
0x20101004L
,
0x30101004L
,
0x20111004L
,
0x30111004L
,
},{
/* for D bits (numbered as per FIPS 46) 8 9 11 12 13 14 */
0x00000000L
,
0x08000000L
,
0x00000008L
,
0x08000008L
,
0x00000400L
,
0x08000400L
,
0x00000408L
,
0x08000408L
,
0x00020000L
,
0x08020000L
,
0x00020008L
,
0x08020008L
,
0x00020400L
,
0x08020400L
,
0x00020408L
,
0x08020408L
,
0x00000001L
,
0x08000001L
,
0x00000009L
,
0x08000009L
,
0x00000401L
,
0x08000401L
,
0x00000409L
,
0x08000409L
,
0x00020001L
,
0x08020001L
,
0x00020009L
,
0x08020009L
,
0x00020401L
,
0x08020401L
,
0x00020409L
,
0x08020409L
,
0x02000000L
,
0x0A000000L
,
0x02000008L
,
0x0A000008L
,
0x02000400L
,
0x0A000400L
,
0x02000408L
,
0x0A000408L
,
0x02020000L
,
0x0A020000L
,
0x02020008L
,
0x0A020008L
,
0x02020400L
,
0x0A020400L
,
0x02020408L
,
0x0A020408L
,
0x02000001L
,
0x0A000001L
,
0x02000009L
,
0x0A000009L
,
0x02000401L
,
0x0A000401L
,
0x02000409L
,
0x0A000409L
,
0x02020001L
,
0x0A020001L
,
0x02020009L
,
0x0A020009L
,
0x02020401L
,
0x0A020401L
,
0x02020409L
,
0x0A020409L
,
},{
/* for D bits (numbered as per FIPS 46) 16 17 18 19 20 21 */
0x00000000L
,
0x00000100L
,
0x00080000L
,
0x00080100L
,
0x01000000L
,
0x01000100L
,
0x01080000L
,
0x01080100L
,
0x00000010L
,
0x00000110L
,
0x00080010L
,
0x00080110L
,
0x01000010L
,
0x01000110L
,
0x01080010L
,
0x01080110L
,
0x00200000L
,
0x00200100L
,
0x00280000L
,
0x00280100L
,
0x01200000L
,
0x01200100L
,
0x01280000L
,
0x01280100L
,
0x00200010L
,
0x00200110L
,
0x00280010L
,
0x00280110L
,
0x01200010L
,
0x01200110L
,
0x01280010L
,
0x01280110L
,
0x00000200L
,
0x00000300L
,
0x00080200L
,
0x00080300L
,
0x01000200L
,
0x01000300L
,
0x01080200L
,
0x01080300L
,
0x00000210L
,
0x00000310L
,
0x00080210L
,
0x00080310L
,
0x01000210L
,
0x01000310L
,
0x01080210L
,
0x01080310L
,
0x00200200L
,
0x00200300L
,
0x00280200L
,
0x00280300L
,
0x01200200L
,
0x01200300L
,
0x01280200L
,
0x01280300L
,
0x00200210L
,
0x00200310L
,
0x00280210L
,
0x00280310L
,
0x01200210L
,
0x01200310L
,
0x01280210L
,
0x01280310L
,
},{
/* for D bits (numbered as per FIPS 46) 22 23 24 25 27 28 */
0x00000000L
,
0x04000000L
,
0x00040000L
,
0x04040000L
,
0x00000002L
,
0x04000002L
,
0x00040002L
,
0x04040002L
,
0x00002000L
,
0x04002000L
,
0x00042000L
,
0x04042000L
,
0x00002002L
,
0x04002002L
,
0x00042002L
,
0x04042002L
,
0x00000020L
,
0x04000020L
,
0x00040020L
,
0x04040020L
,
0x00000022L
,
0x04000022L
,
0x00040022L
,
0x04040022L
,
0x00002020L
,
0x04002020L
,
0x00042020L
,
0x04042020L
,
0x00002022L
,
0x04002022L
,
0x00042022L
,
0x04042022L
,
0x00000800L
,
0x04000800L
,
0x00040800L
,
0x04040800L
,
0x00000802L
,
0x04000802L
,
0x00040802L
,
0x04040802L
,
0x00002800L
,
0x04002800L
,
0x00042800L
,
0x04042800L
,
0x00002802L
,
0x04002802L
,
0x00042802L
,
0x04042802L
,
0x00000820L
,
0x04000820L
,
0x00040820L
,
0x04040820L
,
0x00000822L
,
0x04000822L
,
0x00040822L
,
0x04040822L
,
0x00002820L
,
0x04002820L
,
0x00042820L
,
0x04042820L
,
0x00002822L
,
0x04002822L
,
0x00042822L
,
0x04042822L
,
}};
int
des_set_key
(
const_des_cblock
*
key
,
des_key_schedule
schedule
)
{
if
(
des_check_key
)
...
...
@@ -185,20 +348,7 @@ void des_set_key_unchecked(const_des_cblock *key, des_key_schedule schedule)
c2l
(
in
,
c
);
c2l
(
in
,
d
);
/* do PC1 in 60 simple operations */
/* PERM_OP(d,c,t,4,0x0f0f0f0fL);
HPERM_OP(c,t,-2, 0xcccc0000L);
HPERM_OP(c,t,-1, 0xaaaa0000L);
HPERM_OP(c,t, 8, 0x00ff0000L);
HPERM_OP(c,t,-1, 0xaaaa0000L);
HPERM_OP(d,t,-8, 0xff000000L);
HPERM_OP(d,t, 8, 0x00ff0000L);
HPERM_OP(d,t, 2, 0x33330000L);
d=((d&0x00aa00aaL)<<7L)|((d&0x55005500L)>>7L)|(d&0xaa55aa55L);
d=(d>>8)|((c&0xf0000000L)>>4);
c&=0x0fffffffL; */
/* I now do it in 47 simple operations :-)
/* do PC1 in 47 simple operations :-)
* Thanks to John Fletcher (john_fletcher@lccmail.ocf.llnl.gov)
* for the inspiration. :-) */
PERM_OP
(
d
,
c
,
t
,
4
,
0x0f0f0f0fL
);
...
...
crypto/des/sk.h
已删除
100644 → 0
浏览文件 @
e55818b9
/* crypto/des/sk.h */
/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
* All rights reserved.
*
* This package is an SSL implementation written
* by Eric Young (eay@cryptsoft.com).
* The implementation was written so as to conform with Netscapes SSL.
*
* This library is free for commercial and non-commercial use as long as
* the following conditions are aheared to. The following conditions
* apply to all code found in this distribution, be it the RC4, RSA,
* lhash, DES, etc., code; not just the SSL code. The SSL documentation
* included with this distribution is covered by the same copyright terms
* except that the holder is Tim Hudson (tjh@cryptsoft.com).
*
* Copyright remains Eric Young's, and as such any Copyright notices in
* the code are not to be removed.
* If this package is used in a product, Eric Young should be given attribution
* as the author of the parts of the library used.
* This can be in the form of a textual message at program startup or
* in documentation (online or textual) provided with the package.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* 3. All advertising materials mentioning features or use of this software
* must display the following acknowledgement:
* "This product includes cryptographic software written by
* Eric Young (eay@cryptsoft.com)"
* The word 'cryptographic' can be left out if the rouines from the library
* being used are not cryptographic related :-).
* 4. If you include any Windows specific code (or a derivative thereof) from
* the apps directory (application code) you must include an acknowledgement:
* "This product includes software written by Tim Hudson (tjh@cryptsoft.com)"
*
* THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
* The licence and distribution terms for any publically available version or
* derivative of this code cannot be changed. i.e. this code cannot simply be
* copied and put under another distribution licence
* [including the GNU Public Licence.]
*/
static
const
DES_LONG
des_skb
[
8
][
64
]
=
{
{
/* for C bits (numbered as per FIPS 46) 1 2 3 4 5 6 */
0x00000000L
,
0x00000010L
,
0x20000000L
,
0x20000010L
,
0x00010000L
,
0x00010010L
,
0x20010000L
,
0x20010010L
,
0x00000800L
,
0x00000810L
,
0x20000800L
,
0x20000810L
,
0x00010800L
,
0x00010810L
,
0x20010800L
,
0x20010810L
,
0x00000020L
,
0x00000030L
,
0x20000020L
,
0x20000030L
,
0x00010020L
,
0x00010030L
,
0x20010020L
,
0x20010030L
,
0x00000820L
,
0x00000830L
,
0x20000820L
,
0x20000830L
,
0x00010820L
,
0x00010830L
,
0x20010820L
,
0x20010830L
,
0x00080000L
,
0x00080010L
,
0x20080000L
,
0x20080010L
,
0x00090000L
,
0x00090010L
,
0x20090000L
,
0x20090010L
,
0x00080800L
,
0x00080810L
,
0x20080800L
,
0x20080810L
,
0x00090800L
,
0x00090810L
,
0x20090800L
,
0x20090810L
,
0x00080020L
,
0x00080030L
,
0x20080020L
,
0x20080030L
,
0x00090020L
,
0x00090030L
,
0x20090020L
,
0x20090030L
,
0x00080820L
,
0x00080830L
,
0x20080820L
,
0x20080830L
,
0x00090820L
,
0x00090830L
,
0x20090820L
,
0x20090830L
,
},{
/* for C bits (numbered as per FIPS 46) 7 8 10 11 12 13 */
0x00000000L
,
0x02000000L
,
0x00002000L
,
0x02002000L
,
0x00200000L
,
0x02200000L
,
0x00202000L
,
0x02202000L
,
0x00000004L
,
0x02000004L
,
0x00002004L
,
0x02002004L
,
0x00200004L
,
0x02200004L
,
0x00202004L
,
0x02202004L
,
0x00000400L
,
0x02000400L
,
0x00002400L
,
0x02002400L
,
0x00200400L
,
0x02200400L
,
0x00202400L
,
0x02202400L
,
0x00000404L
,
0x02000404L
,
0x00002404L
,
0x02002404L
,
0x00200404L
,
0x02200404L
,
0x00202404L
,
0x02202404L
,
0x10000000L
,
0x12000000L
,
0x10002000L
,
0x12002000L
,
0x10200000L
,
0x12200000L
,
0x10202000L
,
0x12202000L
,
0x10000004L
,
0x12000004L
,
0x10002004L
,
0x12002004L
,
0x10200004L
,
0x12200004L
,
0x10202004L
,
0x12202004L
,
0x10000400L
,
0x12000400L
,
0x10002400L
,
0x12002400L
,
0x10200400L
,
0x12200400L
,
0x10202400L
,
0x12202400L
,
0x10000404L
,
0x12000404L
,
0x10002404L
,
0x12002404L
,
0x10200404L
,
0x12200404L
,
0x10202404L
,
0x12202404L
,
},{
/* for C bits (numbered as per FIPS 46) 14 15 16 17 19 20 */
0x00000000L
,
0x00000001L
,
0x00040000L
,
0x00040001L
,
0x01000000L
,
0x01000001L
,
0x01040000L
,
0x01040001L
,
0x00000002L
,
0x00000003L
,
0x00040002L
,
0x00040003L
,
0x01000002L
,
0x01000003L
,
0x01040002L
,
0x01040003L
,
0x00000200L
,
0x00000201L
,
0x00040200L
,
0x00040201L
,
0x01000200L
,
0x01000201L
,
0x01040200L
,
0x01040201L
,
0x00000202L
,
0x00000203L
,
0x00040202L
,
0x00040203L
,
0x01000202L
,
0x01000203L
,
0x01040202L
,
0x01040203L
,
0x08000000L
,
0x08000001L
,
0x08040000L
,
0x08040001L
,
0x09000000L
,
0x09000001L
,
0x09040000L
,
0x09040001L
,
0x08000002L
,
0x08000003L
,
0x08040002L
,
0x08040003L
,
0x09000002L
,
0x09000003L
,
0x09040002L
,
0x09040003L
,
0x08000200L
,
0x08000201L
,
0x08040200L
,
0x08040201L
,
0x09000200L
,
0x09000201L
,
0x09040200L
,
0x09040201L
,
0x08000202L
,
0x08000203L
,
0x08040202L
,
0x08040203L
,
0x09000202L
,
0x09000203L
,
0x09040202L
,
0x09040203L
,
},{
/* for C bits (numbered as per FIPS 46) 21 23 24 26 27 28 */
0x00000000L
,
0x00100000L
,
0x00000100L
,
0x00100100L
,
0x00000008L
,
0x00100008L
,
0x00000108L
,
0x00100108L
,
0x00001000L
,
0x00101000L
,
0x00001100L
,
0x00101100L
,
0x00001008L
,
0x00101008L
,
0x00001108L
,
0x00101108L
,
0x04000000L
,
0x04100000L
,
0x04000100L
,
0x04100100L
,
0x04000008L
,
0x04100008L
,
0x04000108L
,
0x04100108L
,
0x04001000L
,
0x04101000L
,
0x04001100L
,
0x04101100L
,
0x04001008L
,
0x04101008L
,
0x04001108L
,
0x04101108L
,
0x00020000L
,
0x00120000L
,
0x00020100L
,
0x00120100L
,
0x00020008L
,
0x00120008L
,
0x00020108L
,
0x00120108L
,
0x00021000L
,
0x00121000L
,
0x00021100L
,
0x00121100L
,
0x00021008L
,
0x00121008L
,
0x00021108L
,
0x00121108L
,
0x04020000L
,
0x04120000L
,
0x04020100L
,
0x04120100L
,
0x04020008L
,
0x04120008L
,
0x04020108L
,
0x04120108L
,
0x04021000L
,
0x04121000L
,
0x04021100L
,
0x04121100L
,
0x04021008L
,
0x04121008L
,
0x04021108L
,
0x04121108L
,
},{
/* for D bits (numbered as per FIPS 46) 1 2 3 4 5 6 */
0x00000000L
,
0x10000000L
,
0x00010000L
,
0x10010000L
,
0x00000004L
,
0x10000004L
,
0x00010004L
,
0x10010004L
,
0x20000000L
,
0x30000000L
,
0x20010000L
,
0x30010000L
,
0x20000004L
,
0x30000004L
,
0x20010004L
,
0x30010004L
,
0x00100000L
,
0x10100000L
,
0x00110000L
,
0x10110000L
,
0x00100004L
,
0x10100004L
,
0x00110004L
,
0x10110004L
,
0x20100000L
,
0x30100000L
,
0x20110000L
,
0x30110000L
,
0x20100004L
,
0x30100004L
,
0x20110004L
,
0x30110004L
,
0x00001000L
,
0x10001000L
,
0x00011000L
,
0x10011000L
,
0x00001004L
,
0x10001004L
,
0x00011004L
,
0x10011004L
,
0x20001000L
,
0x30001000L
,
0x20011000L
,
0x30011000L
,
0x20001004L
,
0x30001004L
,
0x20011004L
,
0x30011004L
,
0x00101000L
,
0x10101000L
,
0x00111000L
,
0x10111000L
,
0x00101004L
,
0x10101004L
,
0x00111004L
,
0x10111004L
,
0x20101000L
,
0x30101000L
,
0x20111000L
,
0x30111000L
,
0x20101004L
,
0x30101004L
,
0x20111004L
,
0x30111004L
,
},{
/* for D bits (numbered as per FIPS 46) 8 9 11 12 13 14 */
0x00000000L
,
0x08000000L
,
0x00000008L
,
0x08000008L
,
0x00000400L
,
0x08000400L
,
0x00000408L
,
0x08000408L
,
0x00020000L
,
0x08020000L
,
0x00020008L
,
0x08020008L
,
0x00020400L
,
0x08020400L
,
0x00020408L
,
0x08020408L
,
0x00000001L
,
0x08000001L
,
0x00000009L
,
0x08000009L
,
0x00000401L
,
0x08000401L
,
0x00000409L
,
0x08000409L
,
0x00020001L
,
0x08020001L
,
0x00020009L
,
0x08020009L
,
0x00020401L
,
0x08020401L
,
0x00020409L
,
0x08020409L
,
0x02000000L
,
0x0A000000L
,
0x02000008L
,
0x0A000008L
,
0x02000400L
,
0x0A000400L
,
0x02000408L
,
0x0A000408L
,
0x02020000L
,
0x0A020000L
,
0x02020008L
,
0x0A020008L
,
0x02020400L
,
0x0A020400L
,
0x02020408L
,
0x0A020408L
,
0x02000001L
,
0x0A000001L
,
0x02000009L
,
0x0A000009L
,
0x02000401L
,
0x0A000401L
,
0x02000409L
,
0x0A000409L
,
0x02020001L
,
0x0A020001L
,
0x02020009L
,
0x0A020009L
,
0x02020401L
,
0x0A020401L
,
0x02020409L
,
0x0A020409L
,
},{
/* for D bits (numbered as per FIPS 46) 16 17 18 19 20 21 */
0x00000000L
,
0x00000100L
,
0x00080000L
,
0x00080100L
,
0x01000000L
,
0x01000100L
,
0x01080000L
,
0x01080100L
,
0x00000010L
,
0x00000110L
,
0x00080010L
,
0x00080110L
,
0x01000010L
,
0x01000110L
,
0x01080010L
,
0x01080110L
,
0x00200000L
,
0x00200100L
,
0x00280000L
,
0x00280100L
,
0x01200000L
,
0x01200100L
,
0x01280000L
,
0x01280100L
,
0x00200010L
,
0x00200110L
,
0x00280010L
,
0x00280110L
,
0x01200010L
,
0x01200110L
,
0x01280010L
,
0x01280110L
,
0x00000200L
,
0x00000300L
,
0x00080200L
,
0x00080300L
,
0x01000200L
,
0x01000300L
,
0x01080200L
,
0x01080300L
,
0x00000210L
,
0x00000310L
,
0x00080210L
,
0x00080310L
,
0x01000210L
,
0x01000310L
,
0x01080210L
,
0x01080310L
,
0x00200200L
,
0x00200300L
,
0x00280200L
,
0x00280300L
,
0x01200200L
,
0x01200300L
,
0x01280200L
,
0x01280300L
,
0x00200210L
,
0x00200310L
,
0x00280210L
,
0x00280310L
,
0x01200210L
,
0x01200310L
,
0x01280210L
,
0x01280310L
,
},{
/* for D bits (numbered as per FIPS 46) 22 23 24 25 27 28 */
0x00000000L
,
0x04000000L
,
0x00040000L
,
0x04040000L
,
0x00000002L
,
0x04000002L
,
0x00040002L
,
0x04040002L
,
0x00002000L
,
0x04002000L
,
0x00042000L
,
0x04042000L
,
0x00002002L
,
0x04002002L
,
0x00042002L
,
0x04042002L
,
0x00000020L
,
0x04000020L
,
0x00040020L
,
0x04040020L
,
0x00000022L
,
0x04000022L
,
0x00040022L
,
0x04040022L
,
0x00002020L
,
0x04002020L
,
0x00042020L
,
0x04042020L
,
0x00002022L
,
0x04002022L
,
0x00042022L
,
0x04042022L
,
0x00000800L
,
0x04000800L
,
0x00040800L
,
0x04040800L
,
0x00000802L
,
0x04000802L
,
0x00040802L
,
0x04040802L
,
0x00002800L
,
0x04002800L
,
0x00042800L
,
0x04042800L
,
0x00002802L
,
0x04002802L
,
0x00042802L
,
0x04042802L
,
0x00000820L
,
0x04000820L
,
0x00040820L
,
0x04040820L
,
0x00000822L
,
0x04000822L
,
0x00040822L
,
0x04040822L
,
0x00002820L
,
0x04002820L
,
0x00042820L
,
0x04042820L
,
0x00002822L
,
0x04002822L
,
0x00042822L
,
0x04042822L
,
}};
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录