mirror of
https://github.com/systemd/systemd
synced 2026-03-29 11:14:50 +02:00
Compare commits
8 Commits
6a9f0641cd
...
68ce283c3f
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
68ce283c3f | ||
|
|
2feb8f58ce | ||
|
|
1fd1001657 | ||
|
|
556dc3a0f1 | ||
|
|
b9be45f926 | ||
|
|
a895fb38bb | ||
|
|
fc06602eb6 | ||
|
|
1ceba02ad9 |
2
NEWS
2
NEWS
@ -568,7 +568,7 @@ CHANGES WITH 259 in spe:
|
|||||||
kanitha chim, n0099, ners, nkraetzschmar, nl6720, theSillywhat,
|
kanitha chim, n0099, ners, nkraetzschmar, nl6720, theSillywhat,
|
||||||
val4oss, 雪叶
|
val4oss, 雪叶
|
||||||
|
|
||||||
— Edinburgh, 2025/11/17
|
— Edinburgh, 2025/11/26
|
||||||
|
|
||||||
CHANGES WITH 258:
|
CHANGES WITH 258:
|
||||||
|
|
||||||
|
|||||||
@ -1 +1 @@
|
|||||||
259~rc1
|
259~rc2
|
||||||
|
|||||||
12
po/zh_CN.po
12
po/zh_CN.po
@ -7,7 +7,7 @@
|
|||||||
# Charles Lee <lchopn@gmail.com>, 2020, 2021, 2022, 2023.
|
# Charles Lee <lchopn@gmail.com>, 2020, 2021, 2022, 2023.
|
||||||
# Whired Planck <fungdaat31@outlook.com>, 2020.
|
# Whired Planck <fungdaat31@outlook.com>, 2020.
|
||||||
# hanjinpeng <hanjinpeng127@gmail.com>, 2024.
|
# hanjinpeng <hanjinpeng127@gmail.com>, 2024.
|
||||||
# lumingzh <lumingzh@qq.com>, 2024.
|
# lumingzh <lumingzh@qq.com>, 2024, 2025.
|
||||||
# z z <3397542367@qq.com>, 2025.
|
# z z <3397542367@qq.com>, 2025.
|
||||||
# Hang Li <dabao1955@163.com>, 2025.
|
# Hang Li <dabao1955@163.com>, 2025.
|
||||||
# Jesse Guo <jesseguotech@outlook.com>, 2025.
|
# Jesse Guo <jesseguotech@outlook.com>, 2025.
|
||||||
@ -15,8 +15,8 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2025-11-26 01:17+0000\n"
|
"POT-Creation-Date: 2025-11-26 01:17+0000\n"
|
||||||
"PO-Revision-Date: 2025-08-22 10:53+0000\n"
|
"PO-Revision-Date: 2025-11-26 09:52+0000\n"
|
||||||
"Last-Translator: Jesse Guo <jesseguotech@outlook.com>\n"
|
"Last-Translator: lumingzh <lumingzh@qq.com>\n"
|
||||||
"Language-Team: Chinese (Simplified) <https://translate.fedoraproject.org/"
|
"Language-Team: Chinese (Simplified) <https://translate.fedoraproject.org/"
|
||||||
"projects/systemd/main/zh_CN/>\n"
|
"projects/systemd/main/zh_CN/>\n"
|
||||||
"Language: zh_CN\n"
|
"Language: zh_CN\n"
|
||||||
@ -24,7 +24,7 @@ msgstr ""
|
|||||||
"Content-Type: text/plain; charset=UTF-8\n"
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
"Plural-Forms: nplurals=1; plural=0;\n"
|
"Plural-Forms: nplurals=1; plural=0;\n"
|
||||||
"X-Generator: Weblate 5.13\n"
|
"X-Generator: Weblate 5.14.3\n"
|
||||||
|
|
||||||
#: src/core/org.freedesktop.systemd1.policy.in:22
|
#: src/core/org.freedesktop.systemd1.policy.in:22
|
||||||
msgid "Send passphrase back to system"
|
msgid "Send passphrase back to system"
|
||||||
@ -101,7 +101,7 @@ msgstr "核验家区域的凭证"
|
|||||||
#: src/home/org.freedesktop.home1.policy:34
|
#: src/home/org.freedesktop.home1.policy:34
|
||||||
msgid ""
|
msgid ""
|
||||||
"Authentication is required to check credentials against a user's home area."
|
"Authentication is required to check credentials against a user's home area."
|
||||||
msgstr "依据用户的家区域核验凭证需要认证。"
|
msgstr "针对用户的家区域核验凭证需要身份认证。"
|
||||||
|
|
||||||
#: src/home/org.freedesktop.home1.policy:43
|
#: src/home/org.freedesktop.home1.policy:43
|
||||||
msgid "Update a home area"
|
msgid "Update a home area"
|
||||||
@ -513,7 +513,7 @@ msgstr "允许未登录用户运行程序"
|
|||||||
|
|
||||||
#: src/login/org.freedesktop.login1.policy:129
|
#: src/login/org.freedesktop.login1.policy:129
|
||||||
msgid "Explicit request is required to run programs as a non-logged-in user."
|
msgid "Explicit request is required to run programs as a non-logged-in user."
|
||||||
msgstr "要以未登录用户运行程序,需要明确请求。"
|
msgstr "以未登录用户运行程序需要明确请求。"
|
||||||
|
|
||||||
#: src/login/org.freedesktop.login1.policy:138
|
#: src/login/org.freedesktop.login1.policy:138
|
||||||
msgid "Allow non-logged-in users to run programs"
|
msgid "Allow non-logged-in users to run programs"
|
||||||
|
|||||||
@ -34,6 +34,7 @@ SUBSYSTEM=="net", IMPORT{builtin}="net_driver"
|
|||||||
SUBSYSTEM=="ptp", GROUP="clock", MODE="0660"
|
SUBSYSTEM=="ptp", GROUP="clock", MODE="0660"
|
||||||
SUBSYSTEM=="ptp", ATTR{clock_name}=="KVM virtual PTP", SYMLINK+="ptp_kvm"
|
SUBSYSTEM=="ptp", ATTR{clock_name}=="KVM virtual PTP", SYMLINK+="ptp_kvm"
|
||||||
SUBSYSTEM=="ptp", ATTR{clock_name}=="hyperv", SYMLINK+="ptp_hyperv"
|
SUBSYSTEM=="ptp", ATTR{clock_name}=="hyperv", SYMLINK+="ptp_hyperv"
|
||||||
|
SUBSYSTEM=="ptp", ATTR{clock_name}=="ptp_vmw", SYMLINK+="ptp_vmware"
|
||||||
SUBSYSTEM=="ptp", ATTR{clock_name}=="s390 Physical Clock", SYMLINK+="ptp_s390_physical"
|
SUBSYSTEM=="ptp", ATTR{clock_name}=="s390 Physical Clock", SYMLINK+="ptp_s390_physical"
|
||||||
SUBSYSTEM=="ptp", ATTR{clock_name}=="s390 STCKE Clock", SYMLINK+="ptp_s390_stcke"
|
SUBSYSTEM=="ptp", ATTR{clock_name}=="s390 STCKE Clock", SYMLINK+="ptp_s390_stcke"
|
||||||
|
|
||||||
|
|||||||
@ -64,7 +64,7 @@ int verb_dlopen_metadata(int argc, char *argv[], void *userdata) {
|
|||||||
return table_log_add_error(r);
|
return table_log_add_error(r);
|
||||||
}
|
}
|
||||||
|
|
||||||
r = table_print(t, NULL);
|
r = table_print_with_pager(t, SD_JSON_FORMAT_OFF, arg_pager_flags, arg_legend);
|
||||||
if (r < 0)
|
if (r < 0)
|
||||||
return table_log_print_error(r);
|
return table_log_print_error(r);
|
||||||
|
|
||||||
|
|||||||
54
test/units/TEST-70-TPM2.nvpcr.sh
Executable file
54
test/units/TEST-70-TPM2.nvpcr.sh
Executable file
@ -0,0 +1,54 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
# SPDX-License-Identifier: LGPL-2.1-or-later
|
||||||
|
set -eux
|
||||||
|
set -o pipefail
|
||||||
|
|
||||||
|
# shellcheck source=test/units/util.sh
|
||||||
|
. "$(dirname "$0")"/util.sh
|
||||||
|
|
||||||
|
export SYSTEMD_LOG_LEVEL=debug
|
||||||
|
SD_PCREXTEND="/usr/lib/systemd/systemd-pcrextend"
|
||||||
|
|
||||||
|
if [[ ! -x "${SD_PCREXTEND:?}" ]] || ! tpm_has_pcr sha256 11; then
|
||||||
|
echo "$SD_PCREXTEND or PCR sysfs files not found, skipping PCR extension tests"
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
at_exit() {
|
||||||
|
if [[ $? -ne 0 ]]; then
|
||||||
|
# Dump the event log on fail, to make debugging a bit easier
|
||||||
|
jq --seq --slurp </run/log/systemd/tpm2-measure.log
|
||||||
|
fi
|
||||||
|
|
||||||
|
rm -rf /run/nvpcr
|
||||||
|
}
|
||||||
|
|
||||||
|
trap at_exit EXIT
|
||||||
|
|
||||||
|
# Temporarily override sd-pcrextend's sanity checks
|
||||||
|
export SYSTEMD_FORCE_MEASURE=1
|
||||||
|
|
||||||
|
mkdir -p /run/nvpcr
|
||||||
|
|
||||||
|
cat >/run/nvpcr/test.nvpcr <<EOF
|
||||||
|
{"name":"test","algorithm":"sha256","nvIndex":30474762}
|
||||||
|
EOF
|
||||||
|
/usr/lib/systemd/systemd-tpm2-setup
|
||||||
|
test -f /run/systemd/nvpcr/test.anchor
|
||||||
|
/usr/lib/systemd/systemd-pcrextend --nvpcr=test schrumpel
|
||||||
|
# To calculate the current value we need the anchor measurement
|
||||||
|
DIGEST_BASE="$(cat /run/systemd/nvpcr/test.anchor)"
|
||||||
|
DIGEST_MEASURED="$(echo -n "schrumpel" | openssl dgst -sha256 -binary | xxd -p -c200)"
|
||||||
|
DIGEST_EXPECTED="$(echo "$DIGEST_BASE$DIGEST_MEASURED" | xxd -r -p | openssl dgst -sha256 -binary | xxd -p -c200)"
|
||||||
|
DIGEST_ACTUAL="$(systemd-analyze nvpcrs test --json=pretty | jq -r '.[] | select(.name=="test") | .value')"
|
||||||
|
test "$DIGEST_ACTUAL" = "$DIGEST_EXPECTED"
|
||||||
|
|
||||||
|
# Now "destroy" the value via another measurement
|
||||||
|
/usr/lib/systemd/systemd-pcrextend --nvpcr=test schnurz
|
||||||
|
DIGEST_ACTUAL2="$(systemd-analyze nvpcrs test --json=pretty | jq -r '.[] | select(.name=="test") | .value')"
|
||||||
|
test "$DIGEST_ACTUAL2" != "$DIGEST_EXPECTED"
|
||||||
|
|
||||||
|
# And calculate the new result
|
||||||
|
DIGEST_MEASURED2="$(echo -n "schnurz" | openssl dgst -sha256 -binary | xxd -p -c200)"
|
||||||
|
DIGEST_EXPECTED2="$(echo "$DIGEST_EXPECTED$DIGEST_MEASURED2" | xxd -r -p | openssl dgst -sha256 -binary | xxd -p -c200)"
|
||||||
|
test "$DIGEST_ACTUAL2" = "$DIGEST_EXPECTED2"
|
||||||
@ -125,28 +125,3 @@ diff /tmp/newpcr15 \
|
|||||||
<(cat /tmp/oldpcr15 <(echo -n "file-system:$FS_WORD" | openssl dgst -binary -sha256) | openssl dgst -binary -sha256)
|
<(cat /tmp/oldpcr15 <(echo -n "file-system:$FS_WORD" | openssl dgst -binary -sha256) | openssl dgst -binary -sha256)
|
||||||
|
|
||||||
rm -f /tmp/oldpcr{11,15} /tmp/newpcr{11,15}
|
rm -f /tmp/oldpcr{11,15} /tmp/newpcr{11,15}
|
||||||
|
|
||||||
mkdir -p /run/nvpcr
|
|
||||||
|
|
||||||
cat >/run/nvpcr/test.nvpcr <<EOF
|
|
||||||
{"name":"test","algorithm":"sha256","nvIndex":30474762}
|
|
||||||
EOF
|
|
||||||
/usr/lib/systemd/systemd-tpm2-setup
|
|
||||||
test -f /run/systemd/nvpcr/test.anchor
|
|
||||||
/usr/lib/systemd/systemd-pcrextend --nvpcr=test schrumpel
|
|
||||||
# To calculate the current value we need the anchor measurement
|
|
||||||
DIGEST_BASE="$(cat /run/systemd/nvpcr/test.anchor)"
|
|
||||||
DIGEST_MEASURED="$(echo -n "schrumpel" | openssl dgst -sha256 -binary | xxd -p -c200)"
|
|
||||||
DIGEST_EXPECTED="$(echo "$DIGEST_BASE$DIGEST_MEASURED" | xxd -r -p | openssl dgst -sha256 -binary | xxd -p -c200)"
|
|
||||||
DIGEST_ACTUAL="$(systemd-analyze nvpcrs test --json=pretty | jq -r '.[] | select(.name=="test") | .value')"
|
|
||||||
test "$DIGEST_ACTUAL" = "$DIGEST_EXPECTED"
|
|
||||||
|
|
||||||
# Now "destroy" the value via another measurement
|
|
||||||
/usr/lib/systemd/systemd-pcrextend --nvpcr=test schnurz
|
|
||||||
DIGEST_ACTUAL2="$(systemd-analyze nvpcrs test --json=pretty | jq -r '.[] | select(.name=="test") | .value')"
|
|
||||||
test "$DIGEST_ACTUAL2" != "$DIGEST_EXPECTED"
|
|
||||||
|
|
||||||
# And calculate the new result
|
|
||||||
DIGEST_MEASURED2="$(echo -n "schnurz" | openssl dgst -sha256 -binary | xxd -p -c200)"
|
|
||||||
DIGEST_EXPECTED2="$(echo "$DIGEST_EXPECTED$DIGEST_MEASURED2" | xxd -r -p | openssl dgst -sha256 -binary | xxd -p -c200)"
|
|
||||||
test "$DIGEST_ACTUAL2" = "$DIGEST_EXPECTED2"
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user