Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
btwise
openssl
提交
2e63f3b7
O
openssl
项目概览
btwise
/
openssl
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
O
openssl
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
2e63f3b7
编写于
3月 22, 2002
作者:
R
Richard Levitte
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Merge in DES changed from 0.9.7-stable.
上级
125cc35b
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
79 addition
and
64 deletion
+79
-64
crypto/des/des_old.c
crypto/des/des_old.c
+1
-0
crypto/des/des_old.h
crypto/des/des_old.h
+30
-13
crypto/des/destest.c
crypto/des/destest.c
+48
-51
未找到文件。
crypto/des/des_old.c
浏览文件 @
2e63f3b7
...
...
@@ -72,6 +72,7 @@
*
*/
#define OPENSSL_DES_LIBDES_COMPATIBILITY
#include <openssl/des_old.h>
#include <openssl/des.h>
#include <openssl/rand.h>
...
...
crypto/des/des_old.h
浏览文件 @
2e63f3b7
...
...
@@ -3,13 +3,29 @@
/* WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING
*
* The function names in here are deprecated and are only present to
* provide an interface compatible with libdes. OpenSSL now provides
* functions where "des_" has been replaced with "DES_" in the names,
* to make it possible to make incompatible changes that are needed
* for C type security and other stuff.
* provide an interface compatible with openssl 0.9.6 and older as
* well as libdes. OpenSSL now provides functions where "des_" has
* been replaced with "DES_" in the names, to make it possible to
* make incompatible changes that are needed for C type security and
* other stuff.
*
* This include files has two compatibility modes:
*
* - If OPENSSL_DES_LIBDES_COMPATIBILITY is defined, you get an API
* that is compatible with libdes and SSLeay.
* - If OPENSSL_DES_LIBDES_COMPATIBILITY isn't defined, you get an
* API that is compatible with OpenSSL 0.9.5x to 0.9.6x.
*
* Note that these modes break earlier snapshots of OpenSSL, where
* libdes compatibility was the only available mode or (later on) the
* prefered compatibility mode. However, after much consideration
* (and more or less violent discussions with external parties), it
* was concluded that OpenSSL should be compatible with earlier versions
* of itself before anything else. Also, in all honesty, libdes is
* an old beast that shouldn't really be used any more.
*
* Please consider starting to use the DES_ functions rather than the
* des_ ones. The des_ functions will dis
sa
pear completely before
* des_ ones. The des_ functions will dis
ap
pear completely before
* OpenSSL 1.0!
*
* WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING
...
...
@@ -19,7 +35,7 @@
* project 2001.
*/
/* ====================================================================
* Copyright (c) 1998-200
1
The OpenSSL Project. All rights reserved.
* Copyright (c) 1998-200
2
The OpenSSL Project. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
...
...
@@ -107,15 +123,16 @@ typedef struct _ossl_old_des_ks_struct
}
ks
;
}
_ossl_old_des_key_schedule
[
16
];
#if
def OPENSSL_DES_PRE_0_9_7
_COMPATIBILITY
#if
ndef OPENSSL_DES_LIBDES
_COMPATIBILITY
#define des_cblock DES_cblock
#define const_des_cblock const_DES_cblock
#define des_key_schedule DES_key_schedule
#define des_ecb3_encrypt(i,o,k1,k2,k3,e)\
DES_ecb3_encrypt((i),(o),(k1),(k2),(k3),(e))
#define des_ede3_cbc_encrypt(i,o,l,k1,k2,k3,iv,e)\
DES_ede3_cbc_encrypt((i),(o),(l),(k1),(k2),(k3),(iv),(e))
#define des_ede3_cfb64_encrypt(i,o,l,k1,k2,k3,iv,n,e)\
DES_ede3_cfb64_encrypt((i),(o),(l),(k1),(k2),(k3),(iv),(e))
DES_ede3_cfb64_encrypt((i),(o),(l),(k1),(k2),(k3),(iv),(
n),(
e))
#define des_ede3_ofb64_encrypt(i,o,l,k1,k2,k3,iv,n)\
DES_ede3_ofb64_encrypt((i),(o),(l),(k1),(k2),(k3),(iv),(n))
#define des_options()\
...
...
@@ -128,8 +145,8 @@ typedef struct _ossl_old_des_ks_struct
DES_ncbc_encrypt((i),(o),(l),(k),(iv),(e))
#define des_xcbc_encrypt(i,o,l,k,iv,inw,outw,e)\
DES_xcbc_encrypt((i),(o),(l),(k),(iv),(inw),(outw),(e))
#define des_cfb_encrypt(i,o,l,k,iv,e)\
DES_cfb_encrypt((i),(o),(l),(k),(iv),(e))
#define des_cfb_encrypt(i,o,
n,
l,k,iv,e)\
DES_cfb_encrypt((i),(o),(
n),(
l),(k),(iv),(e))
#define des_ecb_encrypt(i,o,k,e)\
DES_ecb_encrypt((i),(o),(k),(e))
#define des_encrypt(d,k,e)\
...
...
@@ -206,7 +223,7 @@ typedef struct _ossl_old_des_ks_struct
#define des_ede3_cbc_encrypt(i,o,l,k1,k2,k3,iv,e)\
_ossl_old_des_ede3_cbc_encrypt((i),(o),(l),(k1),(k2),(k3),(iv),(e))
#define des_ede3_cfb64_encrypt(i,o,l,k1,k2,k3,iv,n,e)\
_ossl_old_des_ede3_cfb64_encrypt((i),(o),(l),(k1),(k2),(k3),(iv),(e))
_ossl_old_des_ede3_cfb64_encrypt((i),(o),(l),(k1),(k2),(k3),(iv),(
n),(
e))
#define des_ede3_ofb64_encrypt(i,o,l,k1,k2,k3,iv,n)\
_ossl_old_des_ede3_ofb64_encrypt((i),(o),(l),(k1),(k2),(k3),(iv),(n))
#define des_options()\
...
...
@@ -219,8 +236,8 @@ typedef struct _ossl_old_des_ks_struct
_ossl_old_des_ncbc_encrypt((i),(o),(l),(k),(iv),(e))
#define des_xcbc_encrypt(i,o,l,k,iv,inw,outw,e)\
_ossl_old_des_xcbc_encrypt((i),(o),(l),(k),(iv),(inw),(outw),(e))
#define des_cfb_encrypt(i,o,l,k,iv,e)\
_ossl_old_des_cfb_encrypt((i),(o),(l),(k),(iv),(e))
#define des_cfb_encrypt(i,o,
n,
l,k,iv,e)\
_ossl_old_des_cfb_encrypt((i),(o),(
n),(
l),(k),(iv),(e))
#define des_ecb_encrypt(i,o,k,e)\
_ossl_old_des_ecb_encrypt((i),(o),(k),(e))
#define des_encrypt(d,k,e)\
...
...
crypto/des/destest.c
浏览文件 @
2e63f3b7
...
...
@@ -83,11 +83,8 @@ int main(int argc, char *argv[])
}
#else
#include <openssl/des.h>
#include <openssl/des_old.h>
#if defined(PERL5) || defined(__FreeBSD__)
#define crypt(c,s) (DES_crypt((c),(s)))
#endif
#define crypt(c,s) (des_crypt((c),(s)))
/* tisk tisk - the test keys don't all have odd parity :-( */
/* test data */
...
...
@@ -333,8 +330,8 @@ static int ede_cfb64_test(unsigned char *cfb_cipher);
int
main
(
int
argc
,
char
*
argv
[])
{
int
i
,
j
,
err
=
0
;
DES
_cblock
in
,
out
,
outin
,
iv3
,
iv2
;
DES
_key_schedule
ks
,
ks2
,
ks3
;
des
_cblock
in
,
out
,
outin
,
iv3
,
iv2
;
des
_key_schedule
ks
,
ks2
,
ks3
;
unsigned
char
cbc_in
[
40
];
unsigned
char
cbc_out
[
40
];
DES_LONG
cs
;
...
...
@@ -381,7 +378,7 @@ int main(int argc, char *argv[])
/* if (memcmp(cbc_out,cbc3_ok,
(unsigned int)(strlen((char *)cbc_data)+1+7)/8*8) != 0)
{
printf("
DES
_ede3_cbc_encrypt encrypt error\n");
printf("
des
_ede3_cbc_encrypt encrypt error\n");
err=1;
}
*/
...
...
@@ -392,7 +389,7 @@ int main(int argc, char *argv[])
{
int
n
;
printf
(
"
DES
_ede3_cbcm_encrypt decrypt error
\n
"
);
printf
(
"
des
_ede3_cbcm_encrypt decrypt error
\n
"
);
for
(
n
=
0
;
n
<
i
;
++
n
)
printf
(
" %02x"
,
cbc_data
[
n
]);
printf
(
"
\n
"
);
...
...
@@ -410,8 +407,8 @@ int main(int argc, char *argv[])
memcpy
(
in
,
plain_data
[
i
],
8
);
memset
(
out
,
0
,
8
);
memset
(
outin
,
0
,
8
);
DES
_ecb_encrypt
(
&
in
,
&
out
,
&
ks
,
DES_ENCRYPT
);
DES
_ecb_encrypt
(
&
out
,
&
outin
,
&
ks
,
DES_DECRYPT
);
des
_ecb_encrypt
(
&
in
,
&
out
,
&
ks
,
DES_ENCRYPT
);
des
_ecb_encrypt
(
&
out
,
&
outin
,
&
ks
,
DES_DECRYPT
);
if
(
memcmp
(
out
,
cipher_data
[
i
],
8
)
!=
0
)
{
...
...
@@ -438,8 +435,8 @@ int main(int argc, char *argv[])
memcpy
(
in
,
plain_data
[
i
],
8
);
memset
(
out
,
0
,
8
);
memset
(
outin
,
0
,
8
);
DES
_ecb2_encrypt
(
&
in
,
&
out
,
&
ks
,
&
ks2
,
DES_ENCRYPT
);
DES
_ecb2_encrypt
(
&
out
,
&
outin
,
&
ks
,
&
ks2
,
DES_DECRYPT
);
des
_ecb2_encrypt
(
&
in
,
&
out
,
&
ks
,
&
ks2
,
DES_ENCRYPT
);
des
_ecb2_encrypt
(
&
out
,
&
outin
,
&
ks
,
&
ks2
,
DES_DECRYPT
);
if
(
memcmp
(
out
,
cipher_ecb2
[
i
],
8
)
!=
0
)
{
...
...
@@ -466,7 +463,7 @@ int main(int argc, char *argv[])
memset
(
cbc_out
,
0
,
40
);
memset
(
cbc_in
,
0
,
40
);
memcpy
(
iv3
,
cbc_iv
,
sizeof
(
cbc_iv
));
DES
_ncbc_encrypt
(
cbc_data
,
cbc_out
,
strlen
((
char
*
)
cbc_data
)
+
1
,
&
ks
,
des
_ncbc_encrypt
(
cbc_data
,
cbc_out
,
strlen
((
char
*
)
cbc_data
)
+
1
,
&
ks
,
&
iv3
,
DES_ENCRYPT
);
if
(
memcmp
(
cbc_out
,
cbc_ok
,
32
)
!=
0
)
{
...
...
@@ -475,7 +472,7 @@ int main(int argc, char *argv[])
}
memcpy
(
iv3
,
cbc_iv
,
sizeof
(
cbc_iv
));
DES
_ncbc_encrypt
(
cbc_out
,
cbc_in
,
strlen
((
char
*
)
cbc_data
)
+
1
,
&
ks
,
des
_ncbc_encrypt
(
cbc_out
,
cbc_in
,
strlen
((
char
*
)
cbc_data
)
+
1
,
&
ks
,
&
iv3
,
DES_DECRYPT
);
if
(
memcmp
(
cbc_in
,
cbc_data
,
strlen
((
char
*
)
cbc_data
))
!=
0
)
{
...
...
@@ -493,19 +490,19 @@ int main(int argc, char *argv[])
memset
(
cbc_out
,
0
,
40
);
memset
(
cbc_in
,
0
,
40
);
memcpy
(
iv3
,
cbc_iv
,
sizeof
(
cbc_iv
));
DES
_xcbc_encrypt
(
cbc_data
,
cbc_out
,
strlen
((
char
*
)
cbc_data
)
+
1
,
&
ks
,
des
_xcbc_encrypt
(
cbc_data
,
cbc_out
,
strlen
((
char
*
)
cbc_data
)
+
1
,
&
ks
,
&
iv3
,
&
cbc2_key
,
&
cbc3_key
,
DES_ENCRYPT
);
if
(
memcmp
(
cbc_out
,
xcbc_ok
,
32
)
!=
0
)
{
printf
(
"
DES
_xcbc_encrypt encrypt error
\n
"
);
printf
(
"
des
_xcbc_encrypt encrypt error
\n
"
);
err
=
1
;
}
memcpy
(
iv3
,
cbc_iv
,
sizeof
(
cbc_iv
));
DES
_xcbc_encrypt
(
cbc_out
,
cbc_in
,
strlen
((
char
*
)
cbc_data
)
+
1
,
&
ks
,
des
_xcbc_encrypt
(
cbc_out
,
cbc_in
,
strlen
((
char
*
)
cbc_data
)
+
1
,
&
ks
,
&
iv3
,
&
cbc2_key
,
&
cbc3_key
,
DES_DECRYPT
);
if
(
memcmp
(
cbc_in
,
cbc_data
,
strlen
((
char
*
)
cbc_data
)
+
1
)
!=
0
)
{
printf
(
"
DES
_xcbc_encrypt decrypt error
\n
"
);
printf
(
"
des
_xcbc_encrypt decrypt error
\n
"
);
err
=
1
;
}
#endif
...
...
@@ -532,16 +529,16 @@ int main(int argc, char *argv[])
/* i=((i+7)/8)*8; */
memcpy
(
iv3
,
cbc_iv
,
sizeof
(
cbc_iv
));
DES
_ede3_cbc_encrypt
(
cbc_data
,
cbc_out
,
16L
,
&
ks
,
&
ks2
,
&
ks3
,
&
iv3
,
des
_ede3_cbc_encrypt
(
cbc_data
,
cbc_out
,
16L
,
&
ks
,
&
ks2
,
&
ks3
,
&
iv3
,
DES_ENCRYPT
);
DES
_ede3_cbc_encrypt
(
&
(
cbc_data
[
16
]),
&
(
cbc_out
[
16
]),
i
-
16
,
&
ks
,
&
ks2
,
&
ks3
,
des
_ede3_cbc_encrypt
(
&
(
cbc_data
[
16
]),
&
(
cbc_out
[
16
]),
i
-
16
,
&
ks
,
&
ks2
,
&
ks3
,
&
iv3
,
DES_ENCRYPT
);
if
(
memcmp
(
cbc_out
,
cbc3_ok
,
(
unsigned
int
)(
strlen
((
char
*
)
cbc_data
)
+
1
+
7
)
/
8
*
8
)
!=
0
)
{
int
n
;
printf
(
"
DES
_ede3_cbc_encrypt encrypt error
\n
"
);
printf
(
"
des
_ede3_cbc_encrypt encrypt error
\n
"
);
for
(
n
=
0
;
n
<
i
;
++
n
)
printf
(
" %02x"
,
cbc_out
[
n
]);
printf
(
"
\n
"
);
...
...
@@ -552,12 +549,12 @@ int main(int argc, char *argv[])
}
memcpy
(
iv3
,
cbc_iv
,
sizeof
(
cbc_iv
));
DES
_ede3_cbc_encrypt
(
cbc_out
,
cbc_in
,
i
,
&
ks
,
&
ks2
,
&
ks3
,
&
iv3
,
DES_DECRYPT
);
des
_ede3_cbc_encrypt
(
cbc_out
,
cbc_in
,
i
,
&
ks
,
&
ks2
,
&
ks3
,
&
iv3
,
DES_DECRYPT
);
if
(
memcmp
(
cbc_in
,
cbc_data
,
strlen
((
char
*
)
cbc_data
)
+
1
)
!=
0
)
{
int
n
;
printf
(
"
DES
_ede3_cbc_encrypt decrypt error
\n
"
);
printf
(
"
des
_ede3_cbc_encrypt decrypt error
\n
"
);
for
(
n
=
0
;
n
<
i
;
++
n
)
printf
(
" %02x"
,
cbc_data
[
n
]);
printf
(
"
\n
"
);
...
...
@@ -576,14 +573,14 @@ int main(int argc, char *argv[])
}
memset
(
cbc_out
,
0
,
40
);
memset
(
cbc_in
,
0
,
40
);
DES
_pcbc_encrypt
(
cbc_data
,
cbc_out
,
strlen
((
char
*
)
cbc_data
)
+
1
,
&
ks
,
des
_pcbc_encrypt
(
cbc_data
,
cbc_out
,
strlen
((
char
*
)
cbc_data
)
+
1
,
&
ks
,
&
cbc_iv
,
DES_ENCRYPT
);
if
(
memcmp
(
cbc_out
,
pcbc_ok
,
32
)
!=
0
)
{
printf
(
"pcbc_encrypt encrypt error
\n
"
);
err
=
1
;
}
DES
_pcbc_encrypt
(
cbc_out
,
cbc_in
,
strlen
((
char
*
)
cbc_data
)
+
1
,
&
ks
,
&
cbc_iv
,
des
_pcbc_encrypt
(
cbc_out
,
cbc_in
,
strlen
((
char
*
)
cbc_data
)
+
1
,
&
ks
,
&
cbc_iv
,
DES_DECRYPT
);
if
(
memcmp
(
cbc_in
,
cbc_data
,
strlen
((
char
*
)
cbc_data
)
+
1
)
!=
0
)
{
...
...
@@ -608,7 +605,7 @@ int main(int argc, char *argv[])
memcpy
(
cfb_tmp
,
cfb_iv
,
sizeof
(
cfb_iv
));
for
(
i
=
0
;
i
<
sizeof
(
plain
);
i
++
)
DES
_cfb_encrypt
(
&
(
plain
[
i
]),
&
(
cfb_buf1
[
i
]),
des
_cfb_encrypt
(
&
(
plain
[
i
]),
&
(
cfb_buf1
[
i
]),
8
,
1
,
&
ks
,
&
cfb_tmp
,
DES_ENCRYPT
);
if
(
memcmp
(
cfb_cipher8
,
cfb_buf1
,
sizeof
(
plain
))
!=
0
)
{
...
...
@@ -618,7 +615,7 @@ int main(int argc, char *argv[])
memcpy
(
cfb_tmp
,
cfb_iv
,
sizeof
(
cfb_iv
));
for
(
i
=
0
;
i
<
sizeof
(
plain
);
i
++
)
DES
_cfb_encrypt
(
&
(
cfb_buf1
[
i
]),
&
(
cfb_buf2
[
i
]),
des
_cfb_encrypt
(
&
(
cfb_buf1
[
i
]),
&
(
cfb_buf2
[
i
]),
8
,
1
,
&
ks
,
&
cfb_tmp
,
DES_DECRYPT
);
if
(
memcmp
(
plain
,
cfb_buf2
,
sizeof
(
plain
))
!=
0
)
{
...
...
@@ -634,7 +631,7 @@ int main(int argc, char *argv[])
printf
(
"Doing ofb
\n
"
);
DES_set_key_checked
(
&
ofb_key
,
&
ks
);
memcpy
(
ofb_tmp
,
ofb_iv
,
sizeof
(
ofb_iv
));
DES
_ofb_encrypt
(
plain
,
ofb_buf1
,
64
,
sizeof
(
plain
)
/
8
,
&
ks
,
&
ofb_tmp
);
des
_ofb_encrypt
(
plain
,
ofb_buf1
,
64
,
sizeof
(
plain
)
/
8
,
&
ks
,
&
ofb_tmp
);
if
(
memcmp
(
ofb_cipher
,
ofb_buf1
,
sizeof
(
ofb_buf1
))
!=
0
)
{
printf
(
"ofb_encrypt encrypt error
\n
"
);
...
...
@@ -647,7 +644,7 @@ ofb_buf1[8+4], ofb_cipher[8+5], ofb_cipher[8+6], ofb_cipher[8+7]);
err
=
1
;
}
memcpy
(
ofb_tmp
,
ofb_iv
,
sizeof
(
ofb_iv
));
DES
_ofb_encrypt
(
ofb_buf1
,
ofb_buf2
,
64
,
sizeof
(
ofb_buf1
)
/
8
,
&
ks
,
&
ofb_tmp
);
des
_ofb_encrypt
(
ofb_buf1
,
ofb_buf2
,
64
,
sizeof
(
ofb_buf1
)
/
8
,
&
ks
,
&
ofb_tmp
);
if
(
memcmp
(
plain
,
ofb_buf2
,
sizeof
(
ofb_buf2
))
!=
0
)
{
printf
(
"ofb_encrypt decrypt error
\n
"
);
...
...
@@ -668,7 +665,7 @@ plain[8+4], plain[8+5], plain[8+6], plain[8+7]);
num
=
0
;
for
(
i
=
0
;
i
<
sizeof
(
plain
);
i
++
)
{
DES
_ofb64_encrypt
(
&
(
plain
[
i
]),
&
(
ofb_buf1
[
i
]),
1
,
&
ks
,
&
ofb_tmp
,
des
_ofb64_encrypt
(
&
(
plain
[
i
]),
&
(
ofb_buf1
[
i
]),
1
,
&
ks
,
&
ofb_tmp
,
&
num
);
}
if
(
memcmp
(
ofb_cipher
,
ofb_buf1
,
sizeof
(
ofb_buf1
))
!=
0
)
...
...
@@ -678,7 +675,7 @@ plain[8+4], plain[8+5], plain[8+6], plain[8+7]);
}
memcpy
(
ofb_tmp
,
ofb_iv
,
sizeof
(
ofb_iv
));
num
=
0
;
DES
_ofb64_encrypt
(
ofb_buf1
,
ofb_buf2
,
sizeof
(
ofb_buf1
),
&
ks
,
&
ofb_tmp
,
des
_ofb64_encrypt
(
ofb_buf1
,
ofb_buf2
,
sizeof
(
ofb_buf1
),
&
ks
,
&
ofb_tmp
,
&
num
);
if
(
memcmp
(
plain
,
ofb_buf2
,
sizeof
(
ofb_buf2
))
!=
0
)
{
...
...
@@ -694,7 +691,7 @@ plain[8+4], plain[8+5], plain[8+6], plain[8+7]);
num
=
0
;
for
(
i
=
0
;
i
<
sizeof
(
plain
);
i
++
)
{
DES
_ede3_ofb64_encrypt
(
&
(
plain
[
i
]),
&
(
ofb_buf1
[
i
]),
1
,
&
ks
,
&
ks
,
des
_ede3_ofb64_encrypt
(
&
(
plain
[
i
]),
&
(
ofb_buf1
[
i
]),
1
,
&
ks
,
&
ks
,
&
ks
,
&
ofb_tmp
,
&
num
);
}
if
(
memcmp
(
ofb_cipher
,
ofb_buf1
,
sizeof
(
ofb_buf1
))
!=
0
)
...
...
@@ -704,7 +701,7 @@ plain[8+4], plain[8+5], plain[8+6], plain[8+7]);
}
memcpy
(
ofb_tmp
,
ofb_iv
,
sizeof
(
ofb_iv
));
num
=
0
;
DES
_ede3_ofb64_encrypt
(
ofb_buf1
,
ofb_buf2
,
sizeof
(
ofb_buf1
),
&
ks
,
&
ks
,
&
ks
,
des
_ede3_ofb64_encrypt
(
ofb_buf1
,
ofb_buf2
,
sizeof
(
ofb_buf1
),
&
ks
,
&
ks
,
&
ks
,
&
ofb_tmp
,
&
num
);
if
(
memcmp
(
plain
,
ofb_buf2
,
sizeof
(
ofb_buf2
))
!=
0
)
{
...
...
@@ -714,7 +711,7 @@ plain[8+4], plain[8+5], plain[8+6], plain[8+7]);
printf
(
"Doing cbc_cksum
\n
"
);
DES_set_key_checked
(
&
cbc_key
,
&
ks
);
cs
=
DES
_cbc_cksum
(
cbc_data
,
&
cret
,
strlen
((
char
*
)
cbc_data
),
&
ks
,
&
cbc_iv
);
cs
=
des
_cbc_cksum
(
cbc_data
,
&
cret
,
strlen
((
char
*
)
cbc_data
),
&
ks
,
&
cbc_iv
);
if
(
cs
!=
cbc_cksum_ret
)
{
printf
(
"bad return value (%08lX), should be %08lX
\n
"
,
...
...
@@ -728,8 +725,8 @@ plain[8+4], plain[8+5], plain[8+6], plain[8+7]);
}
printf
(
"Doing quad_cksum
\n
"
);
cs
=
DES_quad_cksum
(
cbc_data
,(
DES
_cblock
*
)
lqret
,
(
long
)
strlen
((
char
*
)
cbc_data
),
2
,(
DES
_cblock
*
)
cbc_iv
);
cs
=
des_quad_cksum
(
cbc_data
,(
des
_cblock
*
)
lqret
,
(
long
)
strlen
((
char
*
)
cbc_data
),
2
,(
des
_cblock
*
)
cbc_iv
);
if
(
cs
!=
0x70d7a63aL
)
{
printf
(
"quad_cksum error, ret %08lx should be 70d7a63a
\n
"
,
...
...
@@ -793,7 +790,7 @@ plain[8+4], plain[8+5], plain[8+6], plain[8+7]);
for
(
i
=
0
;
i
<
4
;
i
++
)
{
printf
(
" %d"
,
i
);
DES
_ncbc_encrypt
(
&
(
cbc_out
[
i
]),
cbc_in
,
des
_ncbc_encrypt
(
&
(
cbc_out
[
i
]),
cbc_in
,
strlen
((
char
*
)
cbc_data
)
+
1
,
&
ks
,
&
cbc_iv
,
DES_ENCRYPT
);
}
...
...
@@ -801,7 +798,7 @@ plain[8+4], plain[8+5], plain[8+6], plain[8+7]);
for
(
i
=
0
;
i
<
4
;
i
++
)
{
printf
(
" %d"
,
i
);
DES
_ncbc_encrypt
(
cbc_out
,
&
(
cbc_in
[
i
]),
des
_ncbc_encrypt
(
cbc_out
,
&
(
cbc_in
[
i
]),
strlen
((
char
*
)
cbc_data
)
+
1
,
&
ks
,
&
cbc_iv
,
DES_ENCRYPT
);
}
...
...
@@ -846,12 +843,12 @@ static char *pt(unsigned char *p)
static
int
cfb_test
(
int
bits
,
unsigned
char
*
cfb_cipher
)
{
DES
_key_schedule
ks
;
des
_key_schedule
ks
;
int
i
,
err
=
0
;
DES_set_key_checked
(
&
cfb_key
,
&
ks
);
memcpy
(
cfb_tmp
,
cfb_iv
,
sizeof
(
cfb_iv
));
DES
_cfb_encrypt
(
plain
,
cfb_buf1
,
bits
,
sizeof
(
plain
),
&
ks
,
&
cfb_tmp
,
des
_cfb_encrypt
(
plain
,
cfb_buf1
,
bits
,
sizeof
(
plain
),
&
ks
,
&
cfb_tmp
,
DES_ENCRYPT
);
if
(
memcmp
(
cfb_cipher
,
cfb_buf1
,
sizeof
(
plain
))
!=
0
)
{
...
...
@@ -861,7 +858,7 @@ static int cfb_test(int bits, unsigned char *cfb_cipher)
printf
(
"%s
\n
"
,
pt
(
&
(
cfb_buf1
[
i
])));
}
memcpy
(
cfb_tmp
,
cfb_iv
,
sizeof
(
cfb_iv
));
DES
_cfb_encrypt
(
cfb_buf1
,
cfb_buf2
,
bits
,
sizeof
(
plain
),
&
ks
,
&
cfb_tmp
,
des
_cfb_encrypt
(
cfb_buf1
,
cfb_buf2
,
bits
,
sizeof
(
plain
),
&
ks
,
&
cfb_tmp
,
DES_DECRYPT
);
if
(
memcmp
(
plain
,
cfb_buf2
,
sizeof
(
plain
))
!=
0
)
{
...
...
@@ -875,14 +872,14 @@ static int cfb_test(int bits, unsigned char *cfb_cipher)
static
int
cfb64_test
(
unsigned
char
*
cfb_cipher
)
{
DES
_key_schedule
ks
;
des
_key_schedule
ks
;
int
err
=
0
,
i
,
n
;
DES_set_key_checked
(
&
cfb_key
,
&
ks
);
memcpy
(
cfb_tmp
,
cfb_iv
,
sizeof
(
cfb_iv
));
n
=
0
;
DES
_cfb64_encrypt
(
plain
,
cfb_buf1
,
12
,
&
ks
,
&
cfb_tmp
,
&
n
,
DES_ENCRYPT
);
DES
_cfb64_encrypt
(
&
(
plain
[
12
]),
&
(
cfb_buf1
[
12
]),
sizeof
(
plain
)
-
12
,
&
ks
,
des
_cfb64_encrypt
(
plain
,
cfb_buf1
,
12
,
&
ks
,
&
cfb_tmp
,
&
n
,
DES_ENCRYPT
);
des
_cfb64_encrypt
(
&
(
plain
[
12
]),
&
(
cfb_buf1
[
12
]),
sizeof
(
plain
)
-
12
,
&
ks
,
&
cfb_tmp
,
&
n
,
DES_ENCRYPT
);
if
(
memcmp
(
cfb_cipher
,
cfb_buf1
,
sizeof
(
plain
))
!=
0
)
{
...
...
@@ -893,8 +890,8 @@ static int cfb64_test(unsigned char *cfb_cipher)
}
memcpy
(
cfb_tmp
,
cfb_iv
,
sizeof
(
cfb_iv
));
n
=
0
;
DES
_cfb64_encrypt
(
cfb_buf1
,
cfb_buf2
,
17
,
&
ks
,
&
cfb_tmp
,
&
n
,
DES_DECRYPT
);
DES
_cfb64_encrypt
(
&
(
cfb_buf1
[
17
]),
&
(
cfb_buf2
[
17
]),
des
_cfb64_encrypt
(
cfb_buf1
,
cfb_buf2
,
17
,
&
ks
,
&
cfb_tmp
,
&
n
,
DES_DECRYPT
);
des
_cfb64_encrypt
(
&
(
cfb_buf1
[
17
]),
&
(
cfb_buf2
[
17
]),
sizeof
(
plain
)
-
17
,
&
ks
,
&
cfb_tmp
,
&
n
,
DES_DECRYPT
);
if
(
memcmp
(
plain
,
cfb_buf2
,
sizeof
(
plain
))
!=
0
)
{
...
...
@@ -908,15 +905,15 @@ static int cfb64_test(unsigned char *cfb_cipher)
static
int
ede_cfb64_test
(
unsigned
char
*
cfb_cipher
)
{
DES
_key_schedule
ks
;
des
_key_schedule
ks
;
int
err
=
0
,
i
,
n
;
DES_set_key_checked
(
&
cfb_key
,
&
ks
);
memcpy
(
cfb_tmp
,
cfb_iv
,
sizeof
(
cfb_iv
));
n
=
0
;
DES
_ede3_cfb64_encrypt
(
plain
,
cfb_buf1
,
12
,
&
ks
,
&
ks
,
&
ks
,
&
cfb_tmp
,
&
n
,
des
_ede3_cfb64_encrypt
(
plain
,
cfb_buf1
,
12
,
&
ks
,
&
ks
,
&
ks
,
&
cfb_tmp
,
&
n
,
DES_ENCRYPT
);
DES
_ede3_cfb64_encrypt
(
&
(
plain
[
12
]),
&
(
cfb_buf1
[
12
]),
des
_ede3_cfb64_encrypt
(
&
(
plain
[
12
]),
&
(
cfb_buf1
[
12
]),
sizeof
(
plain
)
-
12
,
&
ks
,
&
ks
,
&
ks
,
&
cfb_tmp
,
&
n
,
DES_ENCRYPT
);
if
(
memcmp
(
cfb_cipher
,
cfb_buf1
,
sizeof
(
plain
))
!=
0
)
...
...
@@ -928,9 +925,9 @@ static int ede_cfb64_test(unsigned char *cfb_cipher)
}
memcpy
(
cfb_tmp
,
cfb_iv
,
sizeof
(
cfb_iv
));
n
=
0
;
DES
_ede3_cfb64_encrypt
(
cfb_buf1
,
cfb_buf2
,(
long
)
17
,
&
ks
,
&
ks
,
&
ks
,
des
_ede3_cfb64_encrypt
(
cfb_buf1
,
cfb_buf2
,(
long
)
17
,
&
ks
,
&
ks
,
&
ks
,
&
cfb_tmp
,
&
n
,
DES_DECRYPT
);
DES
_ede3_cfb64_encrypt
(
&
(
cfb_buf1
[
17
]),
&
(
cfb_buf2
[
17
]),
des
_ede3_cfb64_encrypt
(
&
(
cfb_buf1
[
17
]),
&
(
cfb_buf2
[
17
]),
sizeof
(
plain
)
-
17
,
&
ks
,
&
ks
,
&
ks
,
&
cfb_tmp
,
&
n
,
DES_DECRYPT
);
if
(
memcmp
(
plain
,
cfb_buf2
,
sizeof
(
plain
))
!=
0
)
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录