Prototype signed catalog fallback (T-101)

This commit is contained in:
ila
2026-07-16 16:13:18 +08:00
parent 45c242ecec
commit 0d6ed05d7e
15 changed files with 959 additions and 10 deletions
+11
View File
@@ -58,6 +58,17 @@
- 下架:显式 `status: deprecated | hidden`,不用名称前缀。
- 过滤:按 `min_os` 与 `architectures` 过滤;不兼容软件可见说明但不可下载。
### 1.1 Phase 1 签名域原型
T-101 验证采用以下签名域,供客户端与后续发布器实现对齐:
1. 输入必须是单个 UTF-8 JSON object;重复字段、尾随 JSON、浮点/指数数字直接拒绝。
2. 读取顶层 `signature`(标准 Base64 编码的 64 字节 Ed25519 签名),然后从对象中移除该字段。
3. 对剩余值递归规范化:对象键按 Unicode 字符串升序排列;数组保持原顺序;字符串按 JSON 转义;数字仅允许 JSON 整数并保持其合法十进制写法;不保留无意义空白。
4. Ed25519 直接签名/验证上述规范 JSON 字节。
这是 Phase 1 风险原型结论。T-201 正式接入时必须与 `softbox-catalog` 发布端做跨实现向量测试,再冻结 Schema、密钥 ID/轮换字段和版本兼容策略;在此之前不得另造签名域。
## 2. 标准软件包协议 v1(ZIP)
```text