feat(sec): 签名鉴权 2B (agent-221) — meow_verify 多公钥数组+v2签名块(含ts,未来宽限,兼容v1)+meow_sign verify子命令+产签README; svc_power 面板身份精确路径绑定(删启发式,3反例验证)

meow_verify→6c2e8ed2; svc_power→306df962; qemu+宿主全过
This commit is contained in:
MeowOS committed 2026-08-31 15:36:45 +08:00
1 parent 249b6224ab
commit 05a19a9ea3
13 files changed
+497 -78

No files matched your search

+16 -6
View File
@@ -1,17 +1,27 @@
/* meow_signing_pub.h — 固件公钥(Ed25519 32B,编译期固化进 meow_verify)。
* 由 `meow_sign keygen` 生成(.keys/signing.key.pub),本头只含【公钥】,可入库;
* 私钥仅在 .keys/(已加入 .gitignore,绝不入库/报告)。轮换公钥=重生成本头+重编 meow_verify。 */
* 私钥仅在 .keys/(已加入 .gitignore,绝不入库/报告)。
*
* 2B 多钥兼容(MPK_SIGNATURE_DESIGN §4.3 轮换铺路):固件内嵌**公钥数组**,验签时任一公钥通过即放行。
* 轮换/增补公钥=重写本头数组(g_meow_pub[MEOW_PUB_KEY_COUNT][])+重编 meow_verify(固件更新)。
* 保持旧钥在数组前部可作「跨代兼容」(旧钥签的包在新固件仍验过);从尾部追加新钥;
* 若某钥彻底作废,从数组移除即可(注意:会令旧钥签的包在新固件拒装——轮换需与包重签协同)。
* MEOW_PUB_KEY_COUNT 为当前内嵌公钥数(可增)。 */
#ifndef MEOW_SIGNING_PUB_H
#define MEOW_SIGNING_PUB_H
#include <stdint.h>
static const uint8_t g_meow_pub[32] =
#define MEOW_PUB_KEY_COUNT 1 /* 当前固件内嵌公钥数;增补即在数组追加并 +1、重编 meow_verify */
static const uint8_t g_meow_pub[MEOW_PUB_KEY_COUNT][32] =
{
0x22, 0xa7, 0x83, 0xac, 0x28, 0xd3, 0x25, 0x6d,
0x3f, 0x84, 0x72, 0x72, 0x50, 0x5b, 0x2c, 0x61,
0x60, 0x97, 0xff, 0xc3, 0x98, 0x78, 0x14, 0x9d,
0xc7, 0x37, 0x8c, 0x58, 0x72, 0x26, 0x37, 0xf2
{ /* key #0:维护者主钥(.keys/signing.key.pub;与 2A 同钥,跨代兼容) */
0x22, 0xa7, 0x83, 0xac, 0x28, 0xd3, 0x25, 0x6d,
0x3f, 0x84, 0x72, 0x72, 0x50, 0x5b, 0x2c, 0x61,
0x60, 0x97, 0xff, 0xc3, 0x98, 0x78, 0x14, 0x9d,
0xc7, 0x37, 0x8c, 0x58, 0x72, 0x26, 0x37, 0xf2
}
};
#endif /* MEOW_SIGNING_PUB_H */