From 3b5f95375d71d474cf0c91defc2d8c62b81f0206 Mon Sep 17 00:00:00 2001 From: AskaEth Date: Mon, 9 Nov 2026 09:49:41 +0800 Subject: [PATCH] =?UTF-8?q?docs(presenter):=20=E3=80=8C=E6=8A=93=E4=B8=8D?= =?UTF-8?q?=E4=BD=8F=E3=80=8D=E9=82=A3=E6=AE=B5=E5=88=AB=E5=86=8D=E7=82=B9?= =?UTF-8?q?=E5=90=8D=20signature=5Fcases.rs=20=E7=AE=A1=20manifest=5Fsha25?= =?UTF-8?q?6=EF=BC=88=E5=A4=8D=E5=AE=A1=20P2=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 信封字段与钥表确实在 core/src/update/tests/signature_cases.rs;但 manifest_sha256 那条冗余校验 (signature.rs:161-171,要求「钥已钉住 + 方程验过 + 声明 sha 不同」)全仓没有任何用例覆盖, 现有篡改用例都先死在方程上。原文把这一项也推给那个文件,等于把责任推给了不存在的守卫。 改成如实写「全仓无用例,已立 finding」。只动 doc,用例逻辑与断言未改(394 → 395 行)。 --- crates/presenter/src/host/update_tests.rs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/crates/presenter/src/host/update_tests.rs b/crates/presenter/src/host/update_tests.rs index 077c144..50379af 100644 --- a/crates/presenter/src/host/update_tests.rs +++ b/crates/presenter/src/host/update_tests.rs @@ -197,7 +197,8 @@ fn version_matrix_decides_who_gets_prompted() { /// 坏签名清单会一路走到解析,坏 JSON 照样解析失败,断言全绿。现在内容坏必须落 `invalid_*`, /// 签名坏必须落 `signature_*` 且不可重试。 /// 抓得住:验签被跳过/放行(② 会拿到 `Available 0.9.0`)、签名与解析互相误分类、失败被折叠成「已是最新」; -/// 抓不住:签名算法细节(信封字段、`manifest_sha256` 冗余校验、钥表)——那在 core 的 `signature_cases.rs`。 +/// 抓不住:签名信封字段与钥表(在 core 的 `signature_cases.rs`),以及 `manifest_sha256` 那条冗余校验 +/// (需「钥已钉住 + 方程验过 + 声明 sha 不同」,**全仓无用例**,已立 finding)。 #[test] fn a_broken_manifest_degrades_to_failure_not_up_to_date() { // ① 签名是对的(`write_manifest` 成对落盘),内容坏:分类只能是「清单结构 / 版本号不合法」。