Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openeuler
digest-list-tools
提交
d43b5806
D
digest-list-tools
项目概览
openeuler
/
digest-list-tools
通知
2
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
D
digest-list-tools
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
d43b5806
编写于
7月 07, 2020
作者:
R
Roberto Sassu
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Rename upload_digest_lists to manage_digest_lists
上级
fe575a00
变更
14
隐藏空白更改
内联
并排
Showing
14 changed file
with
70 addition
and
94 deletion
+70
-94
.gitignore
.gitignore
+1
-1
README.en.md
README.en.md
+14
-23
digest-list-tools.1
digest-list-tools.1
+15
-24
dist/rpm/digest-list-tools.spec
dist/rpm/digest-list-tools.spec
+3
-3
docs/Makefile.am
docs/Makefile.am
+2
-2
docs/manage_digest_lists.1
docs/manage_digest_lists.1
+8
-11
docs/manage_digest_lists.txt
docs/manage_digest_lists.txt
+7
-10
generators/compact.c
generators/compact.c
+1
-1
initrd/dracut/upload_meta_digest_lists.sh
initrd/dracut/upload_meta_digest_lists.sh
+1
-1
scripts/setup_ima_digest_lists
scripts/setup_ima_digest_lists
+2
-2
scripts/setup_ima_digest_lists_demo
scripts/setup_ima_digest_lists_demo
+6
-6
src/Makefile.am
src/Makefile.am
+4
-4
src/manage_digest_lists.c
src/manage_digest_lists.c
+2
-2
tests/gen.c
tests/gen.c
+4
-4
未找到文件。
.gitignore
浏览文件 @
d43b5806
*.o
src/gen_digest_lists
src/
upload
_digest_lists
src/
manage
_digest_lists
src/verify_digest_lists
tests/lib
...
...
README.en.md
浏览文件 @
d43b5806
...
...
@@ -48,9 +48,9 @@ Lists extension:
Generates digest lists from different sources, e.g. the RPM database, a RPM
package or a directory;
-
upload
_digest_lists:
Converts digest lists of arbitrary formats to the format supported by
the
kernel; it can also upload converted digest lists to
the kernel;
-
manage
_digest_lists:
Manages digest lists and converts digest lists of arbitrary formats to
the
format supported by
the kernel;
-
verify_digest_lists:
Verifies the integrity of digest lists;
...
...
@@ -62,7 +62,7 @@ Lists extension:
-
setup_ima_digest_list_demo:
Script with a predefined workflow to create digest lists.
Both
upload
_digest_lists and gen_digest_lists have a modular design: they can
Both
manage
_digest_lists and gen_digest_lists have a modular design: they can
support additional parsers/generators. Third-party libraries should be placed in
the $libdir/digestlist directory.
...
...
@@ -83,11 +83,11 @@ the $libdir/digestlist directory.
| Base library (I/O, xattr, crypto) | <---- | Signing Key | |
+-----------------------------------+ +-------------+ |
(2) provide signing key |
+------+--------------+
| Sig | Digest list |
| | (fmt N) |
+------+--------------+
upload
_digest_lists: |
+------+--------------+
| Sig | Digest list |
| | (fmt N) |
+------+--------------+
manage
_digest_lists: |
(4) parse digest list (fmt N) |
+----------+ +----------+ |
| Parser 1 | ... | Parser N | <--------------------------------|
...
...
@@ -95,10 +95,10 @@ the $libdir/digestlist directory.
+-----------------------------------+
| Compact list API (generator) | (5) convert to compact list
+-----------------------------------+
+-----------------------------------+
+--------+
| Base library (I/O) |
----------> | Kernel |
+-----------------------------------+
+--------+
(6) upload compact list
+-----------------------------------+
| Base library (I/O) |
+-----------------------------------+
...
...
@@ -487,15 +487,6 @@ this command can be obtained by executing the command:
$ man gen_digest_lists
```
#### Upload
After digest lists have been generated, they can be uploaded by executing the
command:
```
# upload_digest_lists
```
### Integrity Verification
The measurement list, after loading the digest lists, will look like:
...
...
@@ -503,7 +494,7 @@ The measurement list, after loading the digest lists, will look like:
```
11 <digest> ima-ng <digest> boot_aggregate
11 <digest> ima-ng <digest> /etc/keys/x509_ima.der
11 <digest> ima-ng <digest> [...]/0-parser_list-compact-
upload
_digest_lists
11 <digest> ima-ng <digest> [...]/0-parser_list-compact-
manage
_digest_lists
11 <digest> ima-ng <digest> [...]/0-key_list-signing_key.der
11 <digest> ima-ng <digest> [...]/1-parser_list-compact-libparser-ima.so
11 <digest> ima-ng <digest> [...]/2-parser_list-compact-libparser-rpm.so
...
...
digest-list-tools.1
浏览文件 @
d43b5806
.\
" Text automatically generated by txt2man
.TH
digest-list-tools "
03
June
2020
" "" ""
.TH
untitled "
07
July
2020
" "" ""
.RS
# digest-list-tools
.PP
...
...
@@ -54,9 +54,9 @@ gen_digest_lists:
Generates digest lists from different sources, e.g. the RPM database, a RPM
package or a directory;
.IP \(bu 3
upload
_digest_lists:
Converts digest lists of arbitrary formats to the format supported by
the
kernel; it can also upload converted digest lists to
the kernel;
manage
_digest_lists:
Manages digest lists and converts digest lists of arbitrary formats to
the
format supported by
the kernel;
.IP \(bu 3
verify_digest_lists:
Verifies the integrity of digest lists;
...
...
@@ -68,7 +68,7 @@ the digest lists just created;
setup_ima_digest_list_demo:
Script with a predefined workflow to create digest lists.
.PP
Both
upload
_digest_lists and gen_digest_lists have a modular design: they can
Both
manage
_digest_lists and gen_digest_lists have a modular design: they can
support additional parsers/generators. Third-party libraries should be placed in
the $libdir/digestlist directory.
.RE
...
...
@@ -93,11 +93,11 @@ the $libdir/digestlist directory.
| Base library (I/O, xattr, crypto) | <---- | Signing Key | |
+-----------------------------------+ +-------------+ |
(2) provide signing key |
+------+--------------+
| Sig | Digest list |
| | (fmt N) |
+------+--------------+
upload
_digest_lists: |
+------+--------------+
| Sig | Digest list |
| | (fmt N) |
+------+--------------+
manage
_digest_lists: |
(4) parse digest list (fmt N) |
+----------+ +----------+ |
| Parser 1 | \.\.\. | Parser N | <--------------------------------|
...
...
@@ -105,10 +105,10 @@ the $libdir/digestlist directory.
+-----------------------------------+
| Compact list API (generator) | (5) convert to compact list
+-----------------------------------+
+-----------------------------------+
+--------+
| Base library (I/O) |
----------> | Kernel |
+-----------------------------------+
+--------+
(6) upload compact list
+-----------------------------------+
| Base library (I/O) |
+-----------------------------------+
...
...
@@ -543,15 +543,6 @@ this command can be obtained by executing the command:
$ man gen_digest_lists
```
.PP
#### Upload
.PP
After digest lists have been generated, they can be uploaded by executing the
command:
.PP
```
# upload_digest_lists
```
.PP
### Integrity Verification
.PP
The measurement list, after loading the digest lists, will look like:
...
...
@@ -559,7 +550,7 @@ The measurement list, after loading the digest lists, will look like:
```
11 <digest> ima-ng <digest> boot_aggregate
11 <digest> ima-ng <digest> /etc/keys/x509_ima.der
11 <digest> ima-ng <digest> [\.\.\.]/0-parser_list-compact-
upload
_digest_lists
11 <digest> ima-ng <digest> [\.\.\.]/0-parser_list-compact-
manage
_digest_lists
11 <digest> ima-ng <digest> [\.\.\.]/0-key_list-signing_key.der
11 <digest> ima-ng <digest> [\.\.\.]/1-parser_list-compact-libparser-ima.so
11 <digest> ima-ng <digest> [\.\.\.]/2-parser_list-compact-libparser-rpm.so
...
...
dist/rpm/digest-list-tools.spec
浏览文件 @
d43b5806
...
...
@@ -54,7 +54,7 @@ rm -rf $RPM_BUILD_ROOT
%{_bindir}/gen_digest_lists
%{_bindir}/setup_ima_digest_lists
%{_bindir}/setup_ima_digest_lists_demo
%{_bindir}/
upload
_digest_lists
%{_bindir}/
manage
_digest_lists
%{_bindir}/verify_digest_lists
%{_bindir}/write_rpm_pgp_sig
%{_libdir}/libdigestlist-base.so
...
...
@@ -83,14 +83,14 @@ rm -rf $RPM_BUILD_ROOT
%{_datarootdir}/digest-list-tools/gen_digest_lists.txt
%{_datarootdir}/digest-list-tools/setup_ima_digest_lists.txt
%{_datarootdir}/digest-list-tools/setup_ima_digest_lists_demo.txt
%{_datarootdir}/digest-list-tools/
upload
_digest_lists.txt
%{_datarootdir}/digest-list-tools/
manage
_digest_lists.txt
%{_datarootdir}/digest-list-tools/verify_digest_lists.txt
%{_datarootdir}/digest-list-tools/write_rpm_pgp_sig.txt
%{_mandir}/man1/gen_digest_lists.1.gz
%{_mandir}/man1/setup_ima_digest_lists.1.gz
%{_mandir}/man1/setup_ima_digest_lists_demo.1.gz
%{_mandir}/man1/verify_digest_lists.1.gz
%{_mandir}/man1/
upload
_digest_lists.1.gz
%{_mandir}/man1/
manage
_digest_lists.1.gz
%{_mandir}/man1/write_rpm_pgp_sig.1.gz
%{_mandir}/man1/%{name}.1.gz
...
...
docs/Makefile.am
浏览文件 @
d43b5806
dist_pkgdata_DATA
=
gen_digest_lists.txt
\
setup_ima_digest_lists.txt
\
setup_ima_digest_lists_demo.txt
\
upload
_digest_lists.txt
\
manage
_digest_lists.txt
\
verify_digest_lists.txt
\
write_rpm_pgp_sig.txt
man1_MANS
=
gen_digest_lists.1
\
setup_ima_digest_lists.1
\
setup_ima_digest_lists_demo.1
\
upload
_digest_lists.1
\
manage
_digest_lists.1
\
verify_digest_lists.1
\
write_rpm_pgp_sig.1
docs/
upload
_digest_lists.1
→
docs/
manage
_digest_lists.1
浏览文件 @
d43b5806
.\" Text automatically generated by txt2man
.TH u
pload_digest_lists "03 June
2020" "" ""
.TH u
ntitled "07 July
2020" "" ""
.SH NAME
\fB
upload_digest_lists \fP- upload
digest lists
\fB
manage_digest_lists \fP- manage and convert
digest lists
\fB
.RE
\fB
.SH SYNOPSIS
.nf
.fam C
\fB
upload
_digest_lists\fP [\fIoptions\fP]
\fB
manage
_digest_lists\fP [\fIoptions\fP]
.fam T
...
...
@@ -16,7 +16,7 @@
.fam T
.fi
.SH DESCRIPTION
\fB
upload_digest_lists\fP uploads digest lists to IMA or write th
e converted digest
\fB
manage_digest_lists\fP manages the digest lists or writ
e converted digest
lists to a file.
.RE
.PP
...
...
@@ -29,8 +29,8 @@ lists to a file.
\fB-o\fP <file>: write converted digest list to a file
.PP
\fB-p\fP <op>: specify parser operation:
add-digest: add IMA digest to
kernel/
output file
add-meta-digest: add EVM digest to
kernel/
output file
add-digest: add IMA digest to output file
add-meta-digest: add EVM digest to output file
add-ima-xattr: set IMA xattr for files in the digest lists
rm-ima-xattr: remove IMA xattr for files in the digest lists
add-evm-xattr: set EVM xattr for files in the digest lists
...
...
@@ -49,14 +49,11 @@ repair-meta-digest-lists: set digest lists metadata
.PP
.SH EXAMPLES
Upload digest lists stored in /etc/ima/digest_lists.
.PP
# \fBupload_digest_lists\fP \fB-d\fP /etc/ima/digest_lists \fB-p\fP add-digest
.PP
Convert all digest lists in /etc/ima/digest_lists to the compact format and
save the converted lists to converted_lists.
.PP
# \fBupload_digest_lists\fP \fB-d\fP /etc/ima/digest_lists \fB-p\fP add-digest \fB-o\fP converted_lists
# \fBmanage_digest_lists\fP \fB-d\fP /etc/ima/digest_lists \fB-p\fP add-digest \
\fB-o\fP converted_lists
.RE
.PP
...
...
docs/
upload
_digest_lists.txt
→
docs/
manage
_digest_lists.txt
浏览文件 @
d43b5806
NAME
upload_digest_lists - upload
digest lists
manage_digest_lists - manage and convert
digest lists
SYNOPSIS
upload
_digest_lists [options]
manage
_digest_lists [options]
DESCRIPTION
upload_digest_lists uploads digest lists to IMA or write th
e converted digest
manage_digest_lists manages the digest lists or writ
e converted digest
lists to a file.
...
...
@@ -19,8 +19,8 @@ OPTIONS
-o <file>: write converted digest list to a file
-p <op>: specify parser operation:
add-digest: add IMA digest to
kernel/
output file
add-meta-digest: add EVM digest to
kernel/
output file
add-digest: add IMA digest to output file
add-meta-digest: add EVM digest to output file
add-ima-xattr: set IMA xattr for files in the digest lists
rm-ima-xattr: remove IMA xattr for files in the digest lists
add-evm-xattr: set EVM xattr for files in the digest lists
...
...
@@ -38,14 +38,11 @@ OPTIONS
EXAMPLES
Upload digest lists stored in /etc/ima/digest_lists.
# upload_digest_lists -d /etc/ima/digest_lists -p add-digest
Convert all digest lists in /etc/ima/digest_lists to the compact format and
save the converted lists to converted_lists.
# upload_digest_lists -d /etc/ima/digest_lists -p add-digest -o converted_lists
# manage_digest_lists -d /etc/ima/digest_lists -p add-digest \
-o converted_lists
AUTHOR
...
...
generators/compact.c
浏览文件 @
d43b5806
...
...
@@ -521,7 +521,7 @@ out_close:
if
(
ret
<
0
||
unlink
)
{
unlinkat
(
dirfd
,
filename
,
0
);
}
else
if
(
!
gen_list_path
)
{
if
(
!
tlv
&&
!
strcmp
(
basename
,
"
upload
_digest_lists"
))
{
if
(
!
tlv
&&
!
strcmp
(
basename
,
"
manage
_digest_lists"
))
{
link
=
strchr
(
strchr
(
filename
,
'-'
)
+
1
,
'-'
)
+
1
;
unlinkat
(
dirfd
,
link
,
0
);
ret
=
symlinkat
(
filename
,
dirfd
,
link
);
...
...
initrd/dracut/upload_meta_digest_lists.sh
浏览文件 @
d43b5806
...
...
@@ -6,4 +6,4 @@ if [ $? -eq 0 ]; then
exit
0
fi
upload
_digest_lists
-p
add-meta-digest
manage
_digest_lists
-p
add-meta-digest
scripts/setup_ima_digest_lists
浏览文件 @
d43b5806
...
...
@@ -15,7 +15,7 @@
OPTIND
=
2
digest_lists_dir
=
"/etc/ima/digest_lists"
parser_path
=
"/usr/bin/
upload
_digest_lists"
parser_path
=
"/usr/bin/
manage
_digest_lists"
gen_digest_lists_result
=
0
use_current_ima_list
=
0
sign_opt
=
""
...
...
@@ -167,7 +167,7 @@ if [ $no_default_type -eq 1 ]; then
fi
if
[
"
$1
"
=
"parser"
]
||
\
[
!
-e
$digest_lists_dir
/compact-
upload
_digest_lists
]
;
then
[
!
-e
$digest_lists_dir
/compact-
manage
_digest_lists
]
;
then
if
[
-n
"
$sign_opts
"
]
;
then
temp_cert
=
"/tmp/
$(
basename
${
cert
%%.pem
}
.der
)
"
openssl x509
-in
$cert
-out
$temp_cert
-outform
der 2> /dev/null
...
...
scripts/setup_ima_digest_lists_demo
浏览文件 @
d43b5806
...
...
@@ -69,12 +69,12 @@ if [ "$1" = "initial" ]; then
$sign_opt
echo
"Remove old IMA/EVM/INFOFLOW xattrs..."
upload
_digest_lists
-p
rm-ima-xattr
upload
_digest_lists
-p
rm-evm-xattr
upload
_digest_lists
-p
rm-infoflow-xattr
manage
_digest_lists
-p
rm-ima-xattr
manage
_digest_lists
-p
rm-evm-xattr
manage
_digest_lists
-p
rm-infoflow-xattr
echo
"Generate IMA measurements list..."
upload
_digest_lists
-p
gen-ima-list
-o
binary_runtime_measurements
manage
_digest_lists
-p
gen-ima-list
-o
binary_runtime_measurements
if
[
-f
/usr/bin/attest_ra_client
]
;
then
echo
"Generate EVM key..."
...
...
@@ -86,7 +86,7 @@ if [ "$1" = "initial" ]; then
dracut
-f
-e
xattr
echo
"Add IMA xattr from digest lists..."
upload
_digest_lists
-p
add-ima-xattr
manage
_digest_lists
-p
add-ima-xattr
echo
"Fix SELinux label of digest lists..."
restorecon
-R
-F
/etc/ima/digest_lists
...
...
@@ -94,5 +94,5 @@ if [ "$1" = "initial" ]; then
echo
"Remount / read-only..."
mount
-oremount
,ro /
elif
[
"
$1
"
=
"final"
]
;
then
upload
_digest_lists
-p
add-evm-xattr
manage
_digest_lists
-p
add-evm-xattr
fi
src/Makefile.am
浏览文件 @
d43b5806
bin_PROGRAMS
=
upload
_digest_lists gen_digest_lists verify_digest_lists
\
bin_PROGRAMS
=
manage
_digest_lists gen_digest_lists verify_digest_lists
\
write_rpm_pgp_sig
upload
_digest_lists_CFLAGS
=
-I
$(top_srcdir)
/include
upload
_digest_lists_LDFLAGS
=
$(top_srcdir)
/lib/libdigestlist-base.la
upload_digest_lists_SOURCES
=
upload
_digest_lists.c
manage
_digest_lists_CFLAGS
=
-I
$(top_srcdir)
/include
manage
_digest_lists_LDFLAGS
=
$(top_srcdir)
/lib/libdigestlist-base.la
manage_digest_lists_SOURCES
=
manage
_digest_lists.c
gen_digest_lists_CFLAGS
=
-I
$(top_srcdir)
/include
gen_digest_lists_LDFLAGS
=
$(top_srcdir)
/lib/libdigestlist-base.la
...
...
src/
upload
_digest_lists.c
→
src/
manage
_digest_lists.c
浏览文件 @
d43b5806
...
...
@@ -8,8 +8,8 @@
* published by the Free Software Foundation, version 2 of the
* License.
*
* File:
upload
_digest_lists.c
*
Parse and upload
digest lists
* File:
manage
_digest_lists.c
*
Manage and convert
digest lists
*/
#define _GNU_SOURCE
...
...
tests/gen.c
浏览文件 @
d43b5806
...
...
@@ -29,23 +29,23 @@ static void test_gen(void **state)
if
(
fork
()
==
0
)
{
execlp
(
"../src/gen_digest_lists"
,
"gen_digest_lists"
,
"-t"
,
"parser"
,
"-o"
,
"append"
,
"-f"
,
"compact"
,
"-i"
,
"I:../src/
upload
_digest_lists"
,
"-d"
,
"test"
,
NULL
);
"-i"
,
"I:../src/
manage
_digest_lists"
,
"-d"
,
"test"
,
NULL
);
}
wait
(
NULL
);
ret
=
stat
(
"test/0-parser_list-compact-
upload
_digest_lists"
,
&
st
);
ret
=
stat
(
"test/0-parser_list-compact-
manage
_digest_lists"
,
&
st
);
assert_return_code
(
ret
,
0
);
if
(
fork
()
==
0
)
{
execlp
(
"../src/gen_digest_lists"
,
"gen_digest_lists"
,
"-t"
,
"parser"
,
"-o"
,
"add"
,
"-f"
,
"compact"
,
"-p"
,
"0"
,
"-i"
,
"I:../src/
upload
_digest_lists"
,
"-d"
,
"test"
,
NULL
);
"-i"
,
"I:../src/
manage
_digest_lists"
,
"-d"
,
"test"
,
NULL
);
}
wait
(
NULL
);
ret
=
stat
(
"test/1-parser_list-compact-
upload
_digest_lists"
,
&
st
);
ret
=
stat
(
"test/1-parser_list-compact-
manage
_digest_lists"
,
&
st
);
assert_return_code
(
ret
,
0
);
if
(
fork
()
==
0
)
{
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录