Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openanolis
cloud-kernel
提交
c6cb56fc
cloud-kernel
项目概览
openanolis
/
cloud-kernel
大约 1 年 前同步成功
通知
158
Star
36
Fork
7
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
10
列表
看板
标记
里程碑
合并请求
2
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
cloud-kernel
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
10
Issue
10
列表
看板
标记
里程碑
合并请求
2
合并请求
2
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
c6cb56fc
编写于
9月 27, 2011
作者:
J
James Morris
浏览文件
操作
浏览文件
下载
差异文件
Merge branch 'next-hex2bin' of
git://github.com/mzohar/linux-evm
into next
上级
a427fd14
8c35ad20
变更
5
显示空白变更内容
内联
并排
Showing
5 changed file
with
47 addition
and
15 deletion
+47
-15
drivers/target/target_core_fabric_lib.c
drivers/target/target_core_fabric_lib.c
+9
-3
include/linux/kernel.h
include/linux/kernel.h
+1
-1
lib/hexdump.c
lib/hexdump.c
+11
-4
security/keys/encrypted-keys/encrypted.c
security/keys/encrypted-keys/encrypted.c
+11
-3
security/keys/trusted.c
security/keys/trusted.c
+15
-4
未找到文件。
drivers/target/target_core_fabric_lib.c
浏览文件 @
c6cb56fc
...
...
@@ -63,6 +63,7 @@ u32 sas_get_pr_transport_id(
unsigned
char
*
buf
)
{
unsigned
char
*
ptr
;
int
ret
;
/*
* Set PROTOCOL IDENTIFIER to 6h for SAS
...
...
@@ -74,7 +75,9 @@ u32 sas_get_pr_transport_id(
*/
ptr
=
&
se_nacl
->
initiatorname
[
4
];
/* Skip over 'naa. prefix */
hex2bin
(
&
buf
[
4
],
ptr
,
8
);
ret
=
hex2bin
(
&
buf
[
4
],
ptr
,
8
);
if
(
ret
<
0
)
pr_debug
(
"sas transport_id: invalid hex string
\n
"
);
/*
* The SAS Transport ID is a hardcoded 24-byte length
...
...
@@ -156,8 +159,9 @@ u32 fc_get_pr_transport_id(
unsigned
char
*
buf
)
{
unsigned
char
*
ptr
;
int
i
;
int
i
,
ret
;
u32
off
=
8
;
/*
* PROTOCOL IDENTIFIER is 0h for FCP-2
*
...
...
@@ -174,7 +178,9 @@ u32 fc_get_pr_transport_id(
i
++
;
continue
;
}
hex2bin
(
&
buf
[
off
++
],
&
ptr
[
i
],
1
);
ret
=
hex2bin
(
&
buf
[
off
++
],
&
ptr
[
i
],
1
);
if
(
ret
<
0
)
pr_debug
(
"fc transport_id: invalid hex string
\n
"
);
i
+=
2
;
}
/*
...
...
include/linux/kernel.h
浏览文件 @
c6cb56fc
...
...
@@ -382,7 +382,7 @@ static inline char *pack_hex_byte(char *buf, u8 byte)
}
extern
int
hex_to_bin
(
char
ch
);
extern
void
hex2bin
(
u8
*
dst
,
const
char
*
src
,
size_t
count
);
extern
int
__must_check
hex2bin
(
u8
*
dst
,
const
char
*
src
,
size_t
count
);
/*
* General tracing related utility functions - trace_printk(),
...
...
lib/hexdump.c
浏览文件 @
c6cb56fc
...
...
@@ -38,14 +38,21 @@ EXPORT_SYMBOL(hex_to_bin);
* @dst: binary result
* @src: ascii hexadecimal string
* @count: result length
*
* Return 0 on success, -1 in case of bad input.
*/
void
hex2bin
(
u8
*
dst
,
const
char
*
src
,
size_t
count
)
int
hex2bin
(
u8
*
dst
,
const
char
*
src
,
size_t
count
)
{
while
(
count
--
)
{
*
dst
=
hex_to_bin
(
*
src
++
)
<<
4
;
*
dst
+=
hex_to_bin
(
*
src
++
);
dst
++
;
int
hi
=
hex_to_bin
(
*
src
++
);
int
lo
=
hex_to_bin
(
*
src
++
);
if
((
hi
<
0
)
||
(
lo
<
0
))
return
-
1
;
*
dst
++
=
(
hi
<<
4
)
|
lo
;
}
return
0
;
}
EXPORT_SYMBOL
(
hex2bin
);
...
...
security/keys/encrypted-keys/encrypted.c
浏览文件 @
c6cb56fc
...
...
@@ -667,11 +667,19 @@ static int encrypted_key_decrypt(struct encrypted_key_payload *epayload,
return
-
EINVAL
;
hex_encoded_data
=
hex_encoded_iv
+
(
2
*
ivsize
)
+
2
;
hex2bin
(
epayload
->
iv
,
hex_encoded_iv
,
ivsize
);
hex2bin
(
epayload
->
encrypted_data
,
hex_encoded_data
,
encrypted_datalen
);
ret
=
hex2bin
(
epayload
->
iv
,
hex_encoded_iv
,
ivsize
);
if
(
ret
<
0
)
return
-
EINVAL
;
ret
=
hex2bin
(
epayload
->
encrypted_data
,
hex_encoded_data
,
encrypted_datalen
);
if
(
ret
<
0
)
return
-
EINVAL
;
hmac
=
epayload
->
format
+
epayload
->
datablob_len
;
hex2bin
(
hmac
,
hex_encoded_data
+
(
encrypted_datalen
*
2
),
HASH_SIZE
);
ret
=
hex2bin
(
hmac
,
hex_encoded_data
+
(
encrypted_datalen
*
2
),
HASH_SIZE
);
if
(
ret
<
0
)
return
-
EINVAL
;
mkey
=
request_master_key
(
epayload
,
&
master_key
,
&
master_keylen
);
if
(
IS_ERR
(
mkey
))
...
...
security/keys/trusted.c
浏览文件 @
c6cb56fc
...
...
@@ -779,7 +779,10 @@ static int getoptions(char *c, struct trusted_key_payload *pay,
opt
->
pcrinfo_len
=
strlen
(
args
[
0
].
from
)
/
2
;
if
(
opt
->
pcrinfo_len
>
MAX_PCRINFO_SIZE
)
return
-
EINVAL
;
hex2bin
(
opt
->
pcrinfo
,
args
[
0
].
from
,
opt
->
pcrinfo_len
);
res
=
hex2bin
(
opt
->
pcrinfo
,
args
[
0
].
from
,
opt
->
pcrinfo_len
);
if
(
res
<
0
)
return
-
EINVAL
;
break
;
case
Opt_keyhandle
:
res
=
strict_strtoul
(
args
[
0
].
from
,
16
,
&
handle
);
...
...
@@ -791,12 +794,18 @@ static int getoptions(char *c, struct trusted_key_payload *pay,
case
Opt_keyauth
:
if
(
strlen
(
args
[
0
].
from
)
!=
2
*
SHA1_DIGEST_SIZE
)
return
-
EINVAL
;
hex2bin
(
opt
->
keyauth
,
args
[
0
].
from
,
SHA1_DIGEST_SIZE
);
res
=
hex2bin
(
opt
->
keyauth
,
args
[
0
].
from
,
SHA1_DIGEST_SIZE
);
if
(
res
<
0
)
return
-
EINVAL
;
break
;
case
Opt_blobauth
:
if
(
strlen
(
args
[
0
].
from
)
!=
2
*
SHA1_DIGEST_SIZE
)
return
-
EINVAL
;
hex2bin
(
opt
->
blobauth
,
args
[
0
].
from
,
SHA1_DIGEST_SIZE
);
res
=
hex2bin
(
opt
->
blobauth
,
args
[
0
].
from
,
SHA1_DIGEST_SIZE
);
if
(
res
<
0
)
return
-
EINVAL
;
break
;
case
Opt_migratable
:
if
(
*
args
[
0
].
from
==
'0'
)
...
...
@@ -860,7 +869,9 @@ static int datablob_parse(char *datablob, struct trusted_key_payload *p,
p
->
blob_len
=
strlen
(
c
)
/
2
;
if
(
p
->
blob_len
>
MAX_BLOB_SIZE
)
return
-
EINVAL
;
hex2bin
(
p
->
blob
,
c
,
p
->
blob_len
);
ret
=
hex2bin
(
p
->
blob
,
c
,
p
->
blob_len
);
if
(
ret
<
0
)
return
-
EINVAL
;
ret
=
getoptions
(
datablob
,
p
,
o
);
if
(
ret
<
0
)
return
ret
;
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录