Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
taosdata
TDengine
提交
1360f6b2
T
TDengine
项目概览
taosdata
/
TDengine
1 年多 前同步成功
通知
1185
Star
22016
Fork
4786
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
1
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
T
TDengine
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
1
Issue
1
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
1360f6b2
编写于
2月 28, 2022
作者:
S
Shengliang Guan
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
tbase64
上级
fa8dff94
变更
7
隐藏空白更改
内联
并排
Showing
7 changed file
with
151 addition
and
117 deletion
+151
-117
include/util/tbase64.h
include/util/tbase64.h
+8
-7
include/util/tdes.h
include/util/tdes.h
+32
-0
source/dnode/mnode/impl/src/mndUser.c
source/dnode/mnode/impl/src/mndUser.c
+1
-1
source/util/src/tbase64.c
source/util/src/tbase64.c
+15
-15
source/util/src/tdes.c
source/util/src/tdes.c
+93
-92
tools/shell/src/backup/shellDarwin.c
tools/shell/src/backup/shellDarwin.c
+1
-1
tools/shell/src/shellLinux.c
tools/shell/src/shellLinux.c
+1
-1
未找到文件。
include/util/t
key
.h
→
include/util/t
base64
.h
浏览文件 @
1360f6b2
...
@@ -12,20 +12,21 @@
...
@@ -12,20 +12,21 @@
* You should have received a copy of the GNU Affero General Public License
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
*/
#ifndef _TD_UTIL_KEY_H
#define _TD_UTIL_KEY_H
#ifndef _TD_UTIL_BASE64_H_
#define _TD_UTIL_BASE64_H_
#include "os.h"
#ifdef __cplusplus
#ifdef __cplusplus
extern
"C"
{
extern
"C"
{
#endif
#endif
unsigned
char
*
base64_decode
(
const
char
*
value
,
int
inlen
,
int
*
outlen
);
uint8_t
*
base64_decode
(
const
char
*
value
,
int32_t
inlen
,
int32_t
*
outlen
);
char
*
base64_encode
(
const
unsigned
char
*
value
,
int
vlen
);
char
*
base64_encode
(
const
uint8_t
*
value
,
int32_t
vlen
);
char
*
taosDesEncode
(
int64_t
key
,
char
*
src
,
int
len
);
char
*
taosDesDecode
(
int64_t
key
,
char
*
src
,
int
len
);
#ifdef __cplusplus
#ifdef __cplusplus
}
}
#endif
#endif
#endif
/*_TD_UTIL_KEY_H*/
#endif
/*_TD_UTIL_BASE64_H_*/
\ No newline at end of file
\ No newline at end of file
include/util/tdes.h
0 → 100644
浏览文件 @
1360f6b2
/*
* Copyright (c) 2019 TAOS Data, Inc. <jhtao@taosdata.com>
*
* This program is free software: you can use, redistribute, and/or modify
* it under the terms of the GNU Affero General Public License, version 3
* or later ("AGPL"), as published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#ifndef _TD_UTIL_DES_H
#define _TD_UTIL_DES_H
#include "os.h"
#ifdef __cplusplus
extern
"C"
{
#endif
char
*
taosDesEncode
(
int64_t
key
,
char
*
src
,
int32_t
len
);
char
*
taosDesDecode
(
int64_t
key
,
char
*
src
,
int32_t
len
);
#ifdef __cplusplus
}
#endif
#endif
/*_TD_UTIL_DES_H*/
\ No newline at end of file
source/dnode/mnode/impl/src/mndUser.c
浏览文件 @
1360f6b2
...
@@ -19,7 +19,7 @@
...
@@ -19,7 +19,7 @@
#include "mndDb.h"
#include "mndDb.h"
#include "mndShow.h"
#include "mndShow.h"
#include "mndTrans.h"
#include "mndTrans.h"
#include "t
key
.h"
#include "t
base64
.h"
#define TSDB_USER_VER_NUMBER 1
#define TSDB_USER_VER_NUMBER 1
#define TSDB_USER_RESERVE_SIZE 64
#define TSDB_USER_RESERVE_SIZE 64
...
...
source/util/src/tbase64.c
浏览文件 @
1360f6b2
...
@@ -13,15 +13,15 @@
...
@@ -13,15 +13,15 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>.
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
*/
#include "os.h"
#define _DEFAULT_SOURCE
#include "tbase64.h"
// deprecated this file for bug prone
// base64 encode
static
char
basis_64
[]
=
"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"
;
static
char
basis_64
[]
=
"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"
;
char
*
base64_encode
(
const
unsigned
char
*
value
,
int
vlen
)
{
unsigned
char
oval
=
0
;
char
*
base64_encode
(
const
uint8_t
*
value
,
int32_t
vlen
)
{
char
*
result
=
(
char
*
)
malloc
((
size_t
)(
vlen
*
4
)
/
3
+
10
);
uint8_t
oval
=
0
;
char
*
out
=
result
;
char
*
result
=
(
char
*
)
malloc
((
size_t
)(
vlen
*
4
)
/
3
+
10
);
char
*
out
=
result
;
while
(
vlen
>=
3
)
{
while
(
vlen
>=
3
)
{
*
out
++
=
basis_64
[
value
[
0
]
>>
2
];
*
out
++
=
basis_64
[
value
[
0
]
>>
2
];
*
out
++
=
basis_64
[((
value
[
0
]
<<
4
)
&
0x30
)
|
(
value
[
1
]
>>
4
)];
*
out
++
=
basis_64
[((
value
[
0
]
<<
4
)
&
0x30
)
|
(
value
[
1
]
>>
4
)];
...
@@ -42,8 +42,8 @@ char *base64_encode(const unsigned char *value, int vlen) {
...
@@ -42,8 +42,8 @@ char *base64_encode(const unsigned char *value, int vlen) {
return
result
;
return
result
;
}
}
// base64 decode
#define CHAR64(c) (((c) < 0 || (c) > 127) ? -1 : index_64[(c)])
#define CHAR64(c) (((c) < 0 || (c) > 127) ? -1 : index_64[(c)])
static
signed
char
index_64
[
128
]
=
{
static
signed
char
index_64
[
128
]
=
{
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
62
,
-
1
,
-
1
,
-
1
,
63
,
52
,
53
,
54
,
55
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
62
,
-
1
,
-
1
,
-
1
,
63
,
52
,
53
,
54
,
55
,
...
@@ -51,10 +51,10 @@ static signed char index_64[128] = {
...
@@ -51,10 +51,10 @@ static signed char index_64[128] = {
13
,
14
,
15
,
16
,
17
,
18
,
19
,
20
,
21
,
22
,
23
,
24
,
25
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
26
,
27
,
28
,
29
,
30
,
31
,
32
,
13
,
14
,
15
,
16
,
17
,
18
,
19
,
20
,
21
,
22
,
23
,
24
,
25
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
26
,
27
,
28
,
29
,
30
,
31
,
32
,
33
,
34
,
35
,
36
,
37
,
38
,
39
,
40
,
41
,
42
,
43
,
44
,
45
,
46
,
47
,
48
,
49
,
50
,
51
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
};
33
,
34
,
35
,
36
,
37
,
38
,
39
,
40
,
41
,
42
,
43
,
44
,
45
,
46
,
47
,
48
,
49
,
50
,
51
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
};
u
nsigned
char
*
base64_decode
(
const
char
*
value
,
int
inlen
,
in
t
*
outlen
)
{
u
int8_t
*
base64_decode
(
const
char
*
value
,
int32_t
inlen
,
int32_
t
*
outlen
)
{
int
c1
,
c2
,
c3
,
c4
;
int
32_t
c1
,
c2
,
c3
,
c4
;
u
nsigned
char
*
result
=
(
unsigned
char
*
)
malloc
((
size_t
)(
inlen
*
3
)
/
4
+
1
);
u
int8_t
*
result
=
(
uint8_t
*
)
malloc
((
size_t
)(
inlen
*
3
)
/
4
+
1
);
u
nsigned
char
*
out
=
result
;
u
int8_t
*
out
=
result
;
*
outlen
=
0
;
*
outlen
=
0
;
...
@@ -80,13 +80,13 @@ unsigned char *base64_decode(const char *value, int inlen, int *outlen) {
...
@@ -80,13 +80,13 @@ unsigned char *base64_decode(const char *value, int inlen, int *outlen) {
if
((
c4
!=
'='
)
&&
(
CHAR64
(
c4
)
==
-
1
))
goto
base64_decode_error
;
if
((
c4
!=
'='
)
&&
(
CHAR64
(
c4
)
==
-
1
))
goto
base64_decode_error
;
value
+=
4
;
value
+=
4
;
*
out
++
=
(
u
nsigned
char
)((
CHAR64
(
c1
)
<<
2
)
|
(
CHAR64
(
c2
)
>>
4
));
*
out
++
=
(
u
int8_t
)((
CHAR64
(
c1
)
<<
2
)
|
(
CHAR64
(
c2
)
>>
4
));
*
outlen
+=
1
;
*
outlen
+=
1
;
if
(
c3
!=
'='
)
{
if
(
c3
!=
'='
)
{
*
out
++
=
(
u
nsigned
char
)(((
CHAR64
(
c2
)
<<
4
)
&
0xf0
)
|
(
CHAR64
(
c3
)
>>
2
));
*
out
++
=
(
u
int8_t
)(((
CHAR64
(
c2
)
<<
4
)
&
0xf0
)
|
(
CHAR64
(
c3
)
>>
2
));
*
outlen
+=
1
;
*
outlen
+=
1
;
if
(
c4
!=
'='
)
{
if
(
c4
!=
'='
)
{
*
out
++
=
(
u
nsigned
char
)(((
CHAR64
(
c3
)
<<
6
)
&
0xc0
)
|
CHAR64
(
c4
));
*
out
++
=
(
u
int8_t
)(((
CHAR64
(
c3
)
<<
6
)
&
0xc0
)
|
CHAR64
(
c4
));
*
outlen
+=
1
;
*
outlen
+=
1
;
}
}
}
}
...
...
source/util/src/tdes.c
浏览文件 @
1360f6b2
...
@@ -13,43 +13,44 @@
...
@@ -13,43 +13,44 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>.
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
*/
#
include "os.h"
#
define _DEFAULT_SOURCE
#include "t
key
.h"
#include "t
des
.h"
#define ENCRYPTION_MODE 1
#define ENCRYPTION_MODE 1
#define DECRYPTION_MODE 0
#define DECRYPTION_MODE 0
typedef
struct
{
typedef
struct
{
u
nsigned
char
k
[
8
];
u
int8_t
k
[
8
];
u
nsigned
char
c
[
4
];
u
int8_t
c
[
4
];
u
nsigned
char
d
[
4
];
u
int8_t
d
[
4
];
}
key_set
;
}
key_set
;
void
generate_key
(
u
nsigned
char
*
key
);
void
generate_key
(
u
int8_t
*
key
);
void
generate_sub_keys
(
u
nsigned
char
*
main_key
,
key_set
*
key_sets
);
void
generate_sub_keys
(
u
int8_t
*
main_key
,
key_set
*
key_sets
);
void
process_message
(
u
nsigned
char
*
message_piece
,
unsigned
char
*
processed_piece
,
key_set
*
key_sets
,
in
t
mode
);
void
process_message
(
u
int8_t
*
message_piece
,
uint8_t
*
processed_piece
,
key_set
*
key_sets
,
int32_
t
mode
);
#if 0
#if 0
int64_t taosDesGenKey() {
int64_t taosDesGenKey() {
u
nsigned int iseed = (unsigned in
t)time(NULL);
u
int32_t iseed = (uint32_
t)time(NULL);
srand(iseed);
srand(iseed);
u
nsigned char
key[8] = {0};
u
int8_t
key[8] = {0};
generate_key(key);
generate_key(key);
return *((int64_t*)key);
return *((int64_t*)key);
}
}
#endif
#endif
char
*
taosDesImp
(
unsigned
char
*
key
,
char
*
src
,
unsigned
int
len
,
int
process_mode
)
{
char
*
taosDesImp
(
uint8_t
*
key
,
char
*
src
,
uint32_t
len
,
int32_t
process_mode
)
{
unsigned
int
number_of_blocks
=
len
/
8
;
uint32_t
number_of_blocks
=
len
/
8
;
unsigned
char
data_block
[
9
]
=
{
0
};
uint8_t
data_block
[
9
]
=
{
0
};
unsigned
char
processed_block
[
9
]
=
{
0
};
uint8_t
processed_block
[
9
]
=
{
0
};
key_set
key_sets
[
17
];
memset
(
key_sets
,
0
,
sizeof
(
key_sets
));
key_set
key_sets
[
17
];
char
*
dest
=
calloc
(
len
+
1
,
1
);
memset
(
key_sets
,
0
,
sizeof
(
key_sets
));
char
*
dest
=
calloc
(
len
+
1
,
1
);
generate_sub_keys
(
key
,
key_sets
);
generate_sub_keys
(
key
,
key_sets
);
for
(
u
nsigned
in
t
block_count
=
0
;
block_count
<
number_of_blocks
;
block_count
++
)
{
for
(
u
int32_
t
block_count
=
0
;
block_count
<
number_of_blocks
;
block_count
++
)
{
memset
(
processed_block
,
0
,
8
);
memset
(
processed_block
,
0
,
8
);
memcpy
(
data_block
,
src
+
block_count
*
8
,
8
);
memcpy
(
data_block
,
src
+
block_count
*
8
,
8
);
process_message
(
data_block
,
processed_block
,
key_sets
,
process_mode
);
process_message
(
data_block
,
processed_block
,
key_sets
,
process_mode
);
...
@@ -59,15 +60,15 @@ char* taosDesImp(unsigned char* key, char* src, unsigned int len, int process_mo
...
@@ -59,15 +60,15 @@ char* taosDesImp(unsigned char* key, char* src, unsigned int len, int process_mo
return
dest
;
return
dest
;
}
}
char
*
taosDesEncode
(
int64_t
key
,
char
*
src
,
int
len
)
{
char
*
taosDesEncode
(
int64_t
key
,
char
*
src
,
int
32_t
len
)
{
if
(
len
%
8
!=
0
)
return
NULL
;
if
(
len
%
8
!=
0
)
return
NULL
;
u
nsigned
char
*
keyStr
=
(
unsigned
char
*
)(
&
key
);
u
int8_t
*
keyStr
=
(
uint8_t
*
)(
&
key
);
return
taosDesImp
(
keyStr
,
src
,
len
,
ENCRYPTION_MODE
);
return
taosDesImp
(
keyStr
,
src
,
len
,
ENCRYPTION_MODE
);
}
}
char
*
taosDesDecode
(
int64_t
key
,
char
*
src
,
int
len
)
{
char
*
taosDesDecode
(
int64_t
key
,
char
*
src
,
int
32_t
len
)
{
u
nsigned
char
*
keyStr
=
(
unsigned
char
*
)(
&
key
);
u
int8_t
*
keyStr
=
(
uint8_t
*
)(
&
key
);
char
*
temp
=
calloc
(
len
+
8
,
1
);
char
*
temp
=
calloc
(
len
+
8
,
1
);
memcpy
(
temp
,
src
,
len
);
memcpy
(
temp
,
src
,
len
);
len
+=
8
;
len
+=
8
;
...
@@ -77,67 +78,67 @@ char* taosDesDecode(int64_t key, char* src, int len) {
...
@@ -77,67 +78,67 @@ char* taosDesDecode(int64_t key, char* src, int len) {
return
decode
;
return
decode
;
}
}
int
initial_key_permutaion
[]
=
{
57
,
49
,
41
,
33
,
25
,
17
,
9
,
1
,
58
,
50
,
42
,
34
,
26
,
18
,
10
,
2
,
59
,
51
,
43
,
int
32_t
initial_key_permutaion
[]
=
{
57
,
49
,
41
,
33
,
25
,
17
,
9
,
1
,
58
,
50
,
42
,
34
,
26
,
18
,
10
,
2
,
59
,
51
,
43
,
35
,
27
,
19
,
11
,
3
,
60
,
52
,
44
,
36
,
63
,
55
,
47
,
39
,
31
,
23
,
15
,
7
,
62
,
54
,
35
,
27
,
19
,
11
,
3
,
60
,
52
,
44
,
36
,
63
,
55
,
47
,
39
,
31
,
23
,
15
,
7
,
62
,
54
,
46
,
38
,
30
,
22
,
14
,
6
,
61
,
53
,
45
,
37
,
29
,
21
,
13
,
5
,
28
,
20
,
12
,
4
};
46
,
38
,
30
,
22
,
14
,
6
,
61
,
53
,
45
,
37
,
29
,
21
,
13
,
5
,
28
,
20
,
12
,
4
};
int
initial_message_permutation
[]
=
{
58
,
50
,
42
,
34
,
26
,
18
,
10
,
2
,
60
,
52
,
44
,
36
,
28
,
20
,
12
,
4
,
int
32_t
initial_message_permutation
[]
=
{
58
,
50
,
42
,
34
,
26
,
18
,
10
,
2
,
60
,
52
,
44
,
36
,
28
,
20
,
12
,
4
,
62
,
54
,
46
,
38
,
30
,
22
,
14
,
6
,
64
,
56
,
48
,
40
,
32
,
24
,
16
,
8
,
62
,
54
,
46
,
38
,
30
,
22
,
14
,
6
,
64
,
56
,
48
,
40
,
32
,
24
,
16
,
8
,
57
,
49
,
41
,
33
,
25
,
17
,
9
,
1
,
59
,
51
,
43
,
35
,
27
,
19
,
11
,
3
,
57
,
49
,
41
,
33
,
25
,
17
,
9
,
1
,
59
,
51
,
43
,
35
,
27
,
19
,
11
,
3
,
61
,
53
,
45
,
37
,
29
,
21
,
13
,
5
,
63
,
55
,
47
,
39
,
31
,
23
,
15
,
7
};
61
,
53
,
45
,
37
,
29
,
21
,
13
,
5
,
63
,
55
,
47
,
39
,
31
,
23
,
15
,
7
};
int
key_shift_sizes
[]
=
{
-
1
,
1
,
1
,
2
,
2
,
2
,
2
,
2
,
2
,
1
,
2
,
2
,
2
,
2
,
2
,
2
,
1
};
int
32_t
key_shift_sizes
[]
=
{
-
1
,
1
,
1
,
2
,
2
,
2
,
2
,
2
,
2
,
1
,
2
,
2
,
2
,
2
,
2
,
2
,
1
};
int
sub_key_permutation
[]
=
{
14
,
17
,
11
,
24
,
1
,
5
,
3
,
28
,
15
,
6
,
21
,
10
,
23
,
19
,
12
,
4
,
int
32_t
sub_key_permutation
[]
=
{
14
,
17
,
11
,
24
,
1
,
5
,
3
,
28
,
15
,
6
,
21
,
10
,
23
,
19
,
12
,
4
,
26
,
8
,
16
,
7
,
27
,
20
,
13
,
2
,
41
,
52
,
31
,
37
,
47
,
55
,
30
,
40
,
26
,
8
,
16
,
7
,
27
,
20
,
13
,
2
,
41
,
52
,
31
,
37
,
47
,
55
,
30
,
40
,
51
,
45
,
33
,
48
,
44
,
49
,
39
,
56
,
34
,
53
,
46
,
42
,
50
,
36
,
29
,
32
};
51
,
45
,
33
,
48
,
44
,
49
,
39
,
56
,
34
,
53
,
46
,
42
,
50
,
36
,
29
,
32
};
int
message_expansion
[]
=
{
32
,
1
,
2
,
3
,
4
,
5
,
4
,
5
,
6
,
7
,
8
,
9
,
8
,
9
,
10
,
11
,
int
32_t
message_expansion
[]
=
{
32
,
1
,
2
,
3
,
4
,
5
,
4
,
5
,
6
,
7
,
8
,
9
,
8
,
9
,
10
,
11
,
12
,
13
,
12
,
13
,
14
,
15
,
16
,
17
,
16
,
17
,
18
,
19
,
20
,
21
,
20
,
21
,
12
,
13
,
12
,
13
,
14
,
15
,
16
,
17
,
16
,
17
,
18
,
19
,
20
,
21
,
20
,
21
,
22
,
23
,
24
,
25
,
24
,
25
,
26
,
27
,
28
,
29
,
28
,
29
,
30
,
31
,
32
,
1
};
22
,
23
,
24
,
25
,
24
,
25
,
26
,
27
,
28
,
29
,
28
,
29
,
30
,
31
,
32
,
1
};
int
S1
[]
=
{
14
,
4
,
13
,
1
,
2
,
15
,
11
,
8
,
3
,
10
,
6
,
12
,
5
,
9
,
0
,
7
,
0
,
15
,
7
,
4
,
14
,
2
,
int
32_t
S1
[]
=
{
14
,
4
,
13
,
1
,
2
,
15
,
11
,
8
,
3
,
10
,
6
,
12
,
5
,
9
,
0
,
7
,
0
,
15
,
7
,
4
,
14
,
2
,
13
,
1
,
10
,
6
,
12
,
11
,
9
,
5
,
3
,
8
,
4
,
1
,
14
,
8
,
13
,
6
,
2
,
11
,
15
,
12
,
9
,
7
,
13
,
1
,
10
,
6
,
12
,
11
,
9
,
5
,
3
,
8
,
4
,
1
,
14
,
8
,
13
,
6
,
2
,
11
,
15
,
12
,
9
,
7
,
3
,
10
,
5
,
0
,
15
,
12
,
8
,
2
,
4
,
9
,
1
,
7
,
5
,
11
,
3
,
14
,
10
,
0
,
6
,
13
};
3
,
10
,
5
,
0
,
15
,
12
,
8
,
2
,
4
,
9
,
1
,
7
,
5
,
11
,
3
,
14
,
10
,
0
,
6
,
13
};
int
S2
[]
=
{
15
,
1
,
8
,
14
,
6
,
11
,
3
,
4
,
9
,
7
,
2
,
13
,
12
,
0
,
5
,
10
,
3
,
13
,
4
,
7
,
15
,
2
,
int
32_t
S2
[]
=
{
15
,
1
,
8
,
14
,
6
,
11
,
3
,
4
,
9
,
7
,
2
,
13
,
12
,
0
,
5
,
10
,
3
,
13
,
4
,
7
,
15
,
2
,
8
,
14
,
12
,
0
,
1
,
10
,
6
,
9
,
11
,
5
,
0
,
14
,
7
,
11
,
10
,
4
,
13
,
1
,
5
,
8
,
12
,
6
,
8
,
14
,
12
,
0
,
1
,
10
,
6
,
9
,
11
,
5
,
0
,
14
,
7
,
11
,
10
,
4
,
13
,
1
,
5
,
8
,
12
,
6
,
9
,
3
,
2
,
15
,
13
,
8
,
10
,
1
,
3
,
15
,
4
,
2
,
11
,
6
,
7
,
12
,
0
,
5
,
14
,
9
};
9
,
3
,
2
,
15
,
13
,
8
,
10
,
1
,
3
,
15
,
4
,
2
,
11
,
6
,
7
,
12
,
0
,
5
,
14
,
9
};
int
S3
[]
=
{
10
,
0
,
9
,
14
,
6
,
3
,
15
,
5
,
1
,
13
,
12
,
7
,
11
,
4
,
2
,
8
,
13
,
7
,
0
,
9
,
3
,
4
,
int
32_t
S3
[]
=
{
10
,
0
,
9
,
14
,
6
,
3
,
15
,
5
,
1
,
13
,
12
,
7
,
11
,
4
,
2
,
8
,
13
,
7
,
0
,
9
,
3
,
4
,
6
,
10
,
2
,
8
,
5
,
14
,
12
,
11
,
15
,
1
,
13
,
6
,
4
,
9
,
8
,
15
,
3
,
0
,
11
,
1
,
2
,
12
,
6
,
10
,
2
,
8
,
5
,
14
,
12
,
11
,
15
,
1
,
13
,
6
,
4
,
9
,
8
,
15
,
3
,
0
,
11
,
1
,
2
,
12
,
5
,
10
,
14
,
7
,
1
,
10
,
13
,
0
,
6
,
9
,
8
,
7
,
4
,
15
,
14
,
3
,
11
,
5
,
2
,
12
};
5
,
10
,
14
,
7
,
1
,
10
,
13
,
0
,
6
,
9
,
8
,
7
,
4
,
15
,
14
,
3
,
11
,
5
,
2
,
12
};
int
S4
[]
=
{
7
,
13
,
14
,
3
,
0
,
6
,
9
,
10
,
1
,
2
,
8
,
5
,
11
,
12
,
4
,
15
,
13
,
8
,
11
,
5
,
6
,
15
,
int
32_t
S4
[]
=
{
7
,
13
,
14
,
3
,
0
,
6
,
9
,
10
,
1
,
2
,
8
,
5
,
11
,
12
,
4
,
15
,
13
,
8
,
11
,
5
,
6
,
15
,
0
,
3
,
4
,
7
,
2
,
12
,
1
,
10
,
14
,
9
,
10
,
6
,
9
,
0
,
12
,
11
,
7
,
13
,
15
,
1
,
3
,
14
,
0
,
3
,
4
,
7
,
2
,
12
,
1
,
10
,
14
,
9
,
10
,
6
,
9
,
0
,
12
,
11
,
7
,
13
,
15
,
1
,
3
,
14
,
5
,
2
,
8
,
4
,
3
,
15
,
0
,
6
,
10
,
1
,
13
,
8
,
9
,
4
,
5
,
11
,
12
,
7
,
2
,
14
};
5
,
2
,
8
,
4
,
3
,
15
,
0
,
6
,
10
,
1
,
13
,
8
,
9
,
4
,
5
,
11
,
12
,
7
,
2
,
14
};
int
S5
[]
=
{
2
,
12
,
4
,
1
,
7
,
10
,
11
,
6
,
8
,
5
,
3
,
15
,
13
,
0
,
14
,
9
,
14
,
11
,
2
,
12
,
4
,
7
,
int
32_t
S5
[]
=
{
2
,
12
,
4
,
1
,
7
,
10
,
11
,
6
,
8
,
5
,
3
,
15
,
13
,
0
,
14
,
9
,
14
,
11
,
2
,
12
,
4
,
7
,
13
,
1
,
5
,
0
,
15
,
10
,
3
,
9
,
8
,
6
,
4
,
2
,
1
,
11
,
10
,
13
,
7
,
8
,
15
,
9
,
12
,
5
,
13
,
1
,
5
,
0
,
15
,
10
,
3
,
9
,
8
,
6
,
4
,
2
,
1
,
11
,
10
,
13
,
7
,
8
,
15
,
9
,
12
,
5
,
6
,
3
,
0
,
14
,
11
,
8
,
12
,
7
,
1
,
14
,
2
,
13
,
6
,
15
,
0
,
9
,
10
,
4
,
5
,
3
};
6
,
3
,
0
,
14
,
11
,
8
,
12
,
7
,
1
,
14
,
2
,
13
,
6
,
15
,
0
,
9
,
10
,
4
,
5
,
3
};
int
S6
[]
=
{
12
,
1
,
10
,
15
,
9
,
2
,
6
,
8
,
0
,
13
,
3
,
4
,
14
,
7
,
5
,
11
,
10
,
15
,
4
,
2
,
7
,
12
,
int
32_t
S6
[]
=
{
12
,
1
,
10
,
15
,
9
,
2
,
6
,
8
,
0
,
13
,
3
,
4
,
14
,
7
,
5
,
11
,
10
,
15
,
4
,
2
,
7
,
12
,
9
,
5
,
6
,
1
,
13
,
14
,
0
,
11
,
3
,
8
,
9
,
14
,
15
,
5
,
2
,
8
,
12
,
3
,
7
,
0
,
4
,
10
,
9
,
5
,
6
,
1
,
13
,
14
,
0
,
11
,
3
,
8
,
9
,
14
,
15
,
5
,
2
,
8
,
12
,
3
,
7
,
0
,
4
,
10
,
1
,
13
,
11
,
6
,
4
,
3
,
2
,
12
,
9
,
5
,
15
,
10
,
11
,
14
,
1
,
7
,
6
,
0
,
8
,
13
};
1
,
13
,
11
,
6
,
4
,
3
,
2
,
12
,
9
,
5
,
15
,
10
,
11
,
14
,
1
,
7
,
6
,
0
,
8
,
13
};
int
S7
[]
=
{
4
,
11
,
2
,
14
,
15
,
0
,
8
,
13
,
3
,
12
,
9
,
7
,
5
,
10
,
6
,
1
,
13
,
0
,
11
,
7
,
4
,
9
,
int
32_t
S7
[]
=
{
4
,
11
,
2
,
14
,
15
,
0
,
8
,
13
,
3
,
12
,
9
,
7
,
5
,
10
,
6
,
1
,
13
,
0
,
11
,
7
,
4
,
9
,
1
,
10
,
14
,
3
,
5
,
12
,
2
,
15
,
8
,
6
,
1
,
4
,
11
,
13
,
12
,
3
,
7
,
14
,
10
,
15
,
6
,
8
,
1
,
10
,
14
,
3
,
5
,
12
,
2
,
15
,
8
,
6
,
1
,
4
,
11
,
13
,
12
,
3
,
7
,
14
,
10
,
15
,
6
,
8
,
0
,
5
,
9
,
2
,
6
,
11
,
13
,
8
,
1
,
4
,
10
,
7
,
9
,
5
,
0
,
15
,
14
,
2
,
3
,
12
};
0
,
5
,
9
,
2
,
6
,
11
,
13
,
8
,
1
,
4
,
10
,
7
,
9
,
5
,
0
,
15
,
14
,
2
,
3
,
12
};
int
S8
[]
=
{
13
,
2
,
8
,
4
,
6
,
15
,
11
,
1
,
10
,
9
,
3
,
14
,
5
,
0
,
12
,
7
,
1
,
15
,
13
,
8
,
10
,
3
,
int
32_t
S8
[]
=
{
13
,
2
,
8
,
4
,
6
,
15
,
11
,
1
,
10
,
9
,
3
,
14
,
5
,
0
,
12
,
7
,
1
,
15
,
13
,
8
,
10
,
3
,
7
,
4
,
12
,
5
,
6
,
11
,
0
,
14
,
9
,
2
,
7
,
11
,
4
,
1
,
9
,
12
,
14
,
2
,
0
,
6
,
10
,
13
,
7
,
4
,
12
,
5
,
6
,
11
,
0
,
14
,
9
,
2
,
7
,
11
,
4
,
1
,
9
,
12
,
14
,
2
,
0
,
6
,
10
,
13
,
15
,
3
,
5
,
8
,
2
,
1
,
14
,
7
,
4
,
10
,
8
,
13
,
15
,
12
,
9
,
0
,
3
,
5
,
6
,
11
};
15
,
3
,
5
,
8
,
2
,
1
,
14
,
7
,
4
,
10
,
8
,
13
,
15
,
12
,
9
,
0
,
3
,
5
,
6
,
11
};
int
right_sub_message_permutation
[]
=
{
16
,
7
,
20
,
21
,
29
,
12
,
28
,
17
,
1
,
15
,
23
,
26
,
5
,
18
,
31
,
10
,
int
32_t
right_sub_message_permutation
[]
=
{
16
,
7
,
20
,
21
,
29
,
12
,
28
,
17
,
1
,
15
,
23
,
26
,
5
,
18
,
31
,
10
,
2
,
8
,
24
,
14
,
32
,
27
,
3
,
9
,
19
,
13
,
30
,
6
,
22
,
11
,
4
,
25
};
2
,
8
,
24
,
14
,
32
,
27
,
3
,
9
,
19
,
13
,
30
,
6
,
22
,
11
,
4
,
25
};
int
final_message_permutation
[]
=
{
40
,
8
,
48
,
16
,
56
,
24
,
64
,
32
,
39
,
7
,
47
,
15
,
55
,
23
,
63
,
31
,
int
32_t
final_message_permutation
[]
=
{
40
,
8
,
48
,
16
,
56
,
24
,
64
,
32
,
39
,
7
,
47
,
15
,
55
,
23
,
63
,
31
,
38
,
6
,
46
,
14
,
54
,
22
,
62
,
30
,
37
,
5
,
45
,
13
,
53
,
21
,
61
,
29
,
38
,
6
,
46
,
14
,
54
,
22
,
62
,
30
,
37
,
5
,
45
,
13
,
53
,
21
,
61
,
29
,
36
,
4
,
44
,
12
,
52
,
20
,
60
,
28
,
35
,
3
,
43
,
11
,
51
,
19
,
59
,
27
,
36
,
4
,
44
,
12
,
52
,
20
,
60
,
28
,
35
,
3
,
43
,
11
,
51
,
19
,
59
,
27
,
34
,
2
,
42
,
10
,
50
,
18
,
58
,
26
,
33
,
1
,
41
,
9
,
49
,
17
,
57
,
25
};
34
,
2
,
42
,
10
,
50
,
18
,
58
,
26
,
33
,
1
,
41
,
9
,
49
,
17
,
57
,
25
};
void
print_char_as_binary
(
char
input
)
{
void
print_char_as_binary
(
char
input
)
{
int
i
;
int
32_t
i
;
for
(
i
=
0
;
i
<
8
;
i
++
)
{
for
(
i
=
0
;
i
<
8
;
i
++
)
{
char
shift_byte
=
0x01
<<
(
7
-
i
);
char
shift_byte
=
0x01
<<
(
7
-
i
);
if
(
shift_byte
&
input
)
{
if
(
shift_byte
&
input
)
{
...
@@ -148,15 +149,15 @@ void print_char_as_binary(char input) {
...
@@ -148,15 +149,15 @@ void print_char_as_binary(char input) {
}
}
}
}
void
generate_key
(
u
nsigned
char
*
key
)
{
void
generate_key
(
u
int8_t
*
key
)
{
int
i
;
int
32_t
i
;
for
(
i
=
0
;
i
<
8
;
i
++
)
{
for
(
i
=
0
;
i
<
8
;
i
++
)
{
key
[
i
]
=
taosRand
()
%
255
;
key
[
i
]
=
taosRand
()
%
255
;
}
}
}
}
void
print_key_set
(
key_set
_key_set
)
{
void
print_key_set
(
key_set
_key_set
)
{
int
i
;
int
32_t
i
;
printf
(
"K:
\n
"
);
printf
(
"K:
\n
"
);
for
(
i
=
0
;
i
<
8
;
i
++
)
{
for
(
i
=
0
;
i
<
8
;
i
++
)
{
printf
(
"%02X : "
,
_key_set
.
k
[
i
]);
printf
(
"%02X : "
,
_key_set
.
k
[
i
]);
...
@@ -180,10 +181,10 @@ void print_key_set(key_set _key_set) {
...
@@ -180,10 +181,10 @@ void print_key_set(key_set _key_set) {
printf
(
"
\n
"
);
printf
(
"
\n
"
);
}
}
void
generate_sub_keys
(
u
nsigned
char
*
main_key
,
key_set
*
key_sets
)
{
void
generate_sub_keys
(
u
int8_t
*
main_key
,
key_set
*
key_sets
)
{
int
i
,
j
;
int
32_t
i
,
j
;
int
shift_size
;
int
32_t
shift_size
;
u
nsigned
char
shift_byte
,
first_shift_bits
,
second_shift_bits
,
third_shift_bits
,
fourth_shift_bits
;
u
int8_t
shift_byte
,
first_shift_bits
,
second_shift_bits
,
third_shift_bits
,
fourth_shift_bits
;
for
(
i
=
0
;
i
<
8
;
i
++
)
{
for
(
i
=
0
;
i
<
8
;
i
++
)
{
key_sets
[
0
].
k
[
i
]
=
0
;
key_sets
[
0
].
k
[
i
]
=
0
;
...
@@ -277,12 +278,12 @@ void generate_sub_keys(unsigned char* main_key, key_set* key_sets) {
...
@@ -277,12 +278,12 @@ void generate_sub_keys(unsigned char* main_key, key_set* key_sets) {
}
}
}
}
void
process_message
(
u
nsigned
char
*
message_piece
,
unsigned
char
*
processed_piece
,
key_set
*
key_sets
,
in
t
mode
)
{
void
process_message
(
u
int8_t
*
message_piece
,
uint8_t
*
processed_piece
,
key_set
*
key_sets
,
int32_
t
mode
)
{
int
i
,
k
;
int
32_t
i
,
k
;
int
shift_size
;
int
32_t
shift_size
;
u
nsigned
char
shift_byte
;
u
int8_t
shift_byte
;
u
nsigned
char
initial_permutation
[
8
];
u
int8_t
initial_permutation
[
8
];
memset
(
initial_permutation
,
0
,
8
);
memset
(
initial_permutation
,
0
,
8
);
memset
(
processed_piece
,
0
,
8
);
memset
(
processed_piece
,
0
,
8
);
...
@@ -295,15 +296,15 @@ void process_message(unsigned char* message_piece, unsigned char* processed_piec
...
@@ -295,15 +296,15 @@ void process_message(unsigned char* message_piece, unsigned char* processed_piec
initial_permutation
[
i
/
8
]
|=
(
shift_byte
>>
i
%
8
);
initial_permutation
[
i
/
8
]
|=
(
shift_byte
>>
i
%
8
);
}
}
u
nsigned
char
l
[
4
],
r
[
4
];
u
int8_t
l
[
4
],
r
[
4
];
for
(
i
=
0
;
i
<
4
;
i
++
)
{
for
(
i
=
0
;
i
<
4
;
i
++
)
{
l
[
i
]
=
initial_permutation
[
i
];
l
[
i
]
=
initial_permutation
[
i
];
r
[
i
]
=
initial_permutation
[
i
+
4
];
r
[
i
]
=
initial_permutation
[
i
+
4
];
}
}
u
nsigned
char
ln
[
4
],
rn
[
4
],
er
[
6
],
ser
[
4
];
u
int8_t
ln
[
4
],
rn
[
4
],
er
[
6
],
ser
[
4
];
int
key_index
;
int
32_t
key_index
;
for
(
k
=
1
;
k
<=
16
;
k
++
)
{
for
(
k
=
1
;
k
<=
16
;
k
++
)
{
memcpy
(
ln
,
r
,
4
);
memcpy
(
ln
,
r
,
4
);
...
@@ -328,7 +329,7 @@ void process_message(unsigned char* message_piece, unsigned char* processed_piec
...
@@ -328,7 +329,7 @@ void process_message(unsigned char* message_piece, unsigned char* processed_piec
er
[
i
]
^=
key_sets
[
key_index
].
k
[
i
];
er
[
i
]
^=
key_sets
[
key_index
].
k
[
i
];
}
}
u
nsigned
char
row
,
column
;
u
int8_t
row
,
column
;
for
(
i
=
0
;
i
<
4
;
i
++
)
{
for
(
i
=
0
;
i
<
4
;
i
++
)
{
ser
[
i
]
=
0
;
ser
[
i
]
=
0
;
...
@@ -345,7 +346,7 @@ void process_message(unsigned char* message_piece, unsigned char* processed_piec
...
@@ -345,7 +346,7 @@ void process_message(unsigned char* message_piece, unsigned char* processed_piec
column
=
0
;
column
=
0
;
column
|=
((
er
[
0
]
&
0x78
)
>>
3
);
column
|=
((
er
[
0
]
&
0x78
)
>>
3
);
ser
[
0
]
|=
((
u
nsigned
char
)
S1
[
row
*
16
+
column
]
<<
4
);
ser
[
0
]
|=
((
u
int8_t
)
S1
[
row
*
16
+
column
]
<<
4
);
row
=
0
;
row
=
0
;
row
|=
(
er
[
0
]
&
0x02
);
row
|=
(
er
[
0
]
&
0x02
);
...
@@ -355,7 +356,7 @@ void process_message(unsigned char* message_piece, unsigned char* processed_piec
...
@@ -355,7 +356,7 @@ void process_message(unsigned char* message_piece, unsigned char* processed_piec
column
|=
((
er
[
0
]
&
0x01
)
<<
3
);
column
|=
((
er
[
0
]
&
0x01
)
<<
3
);
column
|=
((
er
[
1
]
&
0xE0
)
>>
5
);
column
|=
((
er
[
1
]
&
0xE0
)
>>
5
);
ser
[
0
]
|=
(
u
nsigned
char
)
S2
[
row
*
16
+
column
];
ser
[
0
]
|=
(
u
int8_t
)
S2
[
row
*
16
+
column
];
// Byte 2
// Byte 2
row
=
0
;
row
=
0
;
...
@@ -366,7 +367,7 @@ void process_message(unsigned char* message_piece, unsigned char* processed_piec
...
@@ -366,7 +367,7 @@ void process_message(unsigned char* message_piece, unsigned char* processed_piec
column
|=
((
er
[
1
]
&
0x07
)
<<
1
);
column
|=
((
er
[
1
]
&
0x07
)
<<
1
);
column
|=
((
er
[
2
]
&
0x80
)
>>
7
);
column
|=
((
er
[
2
]
&
0x80
)
>>
7
);
ser
[
1
]
|=
((
u
nsigned
char
)
S3
[
row
*
16
+
column
]
<<
4
);
ser
[
1
]
|=
((
u
int8_t
)
S3
[
row
*
16
+
column
]
<<
4
);
row
=
0
;
row
=
0
;
row
|=
((
er
[
2
]
&
0x20
)
>>
4
);
row
|=
((
er
[
2
]
&
0x20
)
>>
4
);
...
@@ -375,7 +376,7 @@ void process_message(unsigned char* message_piece, unsigned char* processed_piec
...
@@ -375,7 +376,7 @@ void process_message(unsigned char* message_piece, unsigned char* processed_piec
column
=
0
;
column
=
0
;
column
|=
((
er
[
2
]
&
0x1E
)
>>
1
);
column
|=
((
er
[
2
]
&
0x1E
)
>>
1
);
ser
[
1
]
|=
(
u
nsigned
char
)
S4
[
row
*
16
+
column
];
ser
[
1
]
|=
(
u
int8_t
)
S4
[
row
*
16
+
column
];
// Byte 3
// Byte 3
row
=
0
;
row
=
0
;
...
@@ -385,7 +386,7 @@ void process_message(unsigned char* message_piece, unsigned char* processed_piec
...
@@ -385,7 +386,7 @@ void process_message(unsigned char* message_piece, unsigned char* processed_piec
column
=
0
;
column
=
0
;
column
|=
((
er
[
3
]
&
0x78
)
>>
3
);
column
|=
((
er
[
3
]
&
0x78
)
>>
3
);
ser
[
2
]
|=
((
u
nsigned
char
)
S5
[
row
*
16
+
column
]
<<
4
);
ser
[
2
]
|=
((
u
int8_t
)
S5
[
row
*
16
+
column
]
<<
4
);
row
=
0
;
row
=
0
;
row
|=
(
er
[
3
]
&
0x02
);
row
|=
(
er
[
3
]
&
0x02
);
...
@@ -395,7 +396,7 @@ void process_message(unsigned char* message_piece, unsigned char* processed_piec
...
@@ -395,7 +396,7 @@ void process_message(unsigned char* message_piece, unsigned char* processed_piec
column
|=
((
er
[
3
]
&
0x01
)
<<
3
);
column
|=
((
er
[
3
]
&
0x01
)
<<
3
);
column
|=
((
er
[
4
]
&
0xE0
)
>>
5
);
column
|=
((
er
[
4
]
&
0xE0
)
>>
5
);
ser
[
2
]
|=
(
u
nsigned
char
)
S6
[
row
*
16
+
column
];
ser
[
2
]
|=
(
u
int8_t
)
S6
[
row
*
16
+
column
];
// Byte 4
// Byte 4
row
=
0
;
row
=
0
;
...
@@ -406,7 +407,7 @@ void process_message(unsigned char* message_piece, unsigned char* processed_piec
...
@@ -406,7 +407,7 @@ void process_message(unsigned char* message_piece, unsigned char* processed_piec
column
|=
((
er
[
4
]
&
0x07
)
<<
1
);
column
|=
((
er
[
4
]
&
0x07
)
<<
1
);
column
|=
((
er
[
5
]
&
0x80
)
>>
7
);
column
|=
((
er
[
5
]
&
0x80
)
>>
7
);
ser
[
3
]
|=
((
u
nsigned
char
)
S7
[
row
*
16
+
column
]
<<
4
);
ser
[
3
]
|=
((
u
int8_t
)
S7
[
row
*
16
+
column
]
<<
4
);
row
=
0
;
row
=
0
;
row
|=
((
er
[
5
]
&
0x20
)
>>
4
);
row
|=
((
er
[
5
]
&
0x20
)
>>
4
);
...
@@ -415,7 +416,7 @@ void process_message(unsigned char* message_piece, unsigned char* processed_piec
...
@@ -415,7 +416,7 @@ void process_message(unsigned char* message_piece, unsigned char* processed_piec
column
=
0
;
column
=
0
;
column
|=
((
er
[
5
]
&
0x1E
)
>>
1
);
column
|=
((
er
[
5
]
&
0x1E
)
>>
1
);
ser
[
3
]
|=
(
u
nsigned
char
)
S8
[
row
*
16
+
column
];
ser
[
3
]
|=
(
u
int8_t
)
S8
[
row
*
16
+
column
];
for
(
i
=
0
;
i
<
4
;
i
++
)
{
for
(
i
=
0
;
i
<
4
;
i
++
)
{
rn
[
i
]
=
0
;
rn
[
i
]
=
0
;
...
@@ -440,7 +441,7 @@ void process_message(unsigned char* message_piece, unsigned char* processed_piec
...
@@ -440,7 +441,7 @@ void process_message(unsigned char* message_piece, unsigned char* processed_piec
}
}
}
}
u
nsigned
char
pre_end_permutation
[
8
];
u
int8_t
pre_end_permutation
[
8
];
for
(
i
=
0
;
i
<
4
;
i
++
)
{
for
(
i
=
0
;
i
<
4
;
i
++
)
{
pre_end_permutation
[
i
]
=
r
[
i
];
pre_end_permutation
[
i
]
=
r
[
i
];
pre_end_permutation
[
4
+
i
]
=
l
[
i
];
pre_end_permutation
[
4
+
i
]
=
l
[
i
];
...
...
tools/shell/src/backup/shellDarwin.c
浏览文件 @
1360f6b2
...
@@ -19,7 +19,7 @@
...
@@ -19,7 +19,7 @@
#include "shell.h"
#include "shell.h"
#include "shellCommand.h"
#include "shellCommand.h"
#include "t
key
.h"
#include "t
base64
.h"
#include "tscLog.h"
#include "tscLog.h"
...
...
tools/shell/src/shellLinux.c
浏览文件 @
1360f6b2
...
@@ -18,7 +18,7 @@
...
@@ -18,7 +18,7 @@
#include "tglobal.h"
#include "tglobal.h"
#include "shell.h"
#include "shell.h"
#include "shellCommand.h"
#include "shellCommand.h"
#include "t
key
.h"
#include "t
base64
.h"
#include "tlog.h"
#include "tlog.h"
#include "version.h"
#include "version.h"
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录