feat(security): trust production config signer
这个提交包含在:
父节点
f32e281081
当前提交
0b681dbbb2
@ -62,7 +62,9 @@
|
||||
- 初始化文件唯一位置为 `assets/config/config.xuqmconfig`。运行时只接受
|
||||
`XUQM-CONFIG-V2`:Ed25519 签名覆盖前五段 ASCII,先验签、后 AES 解密,
|
||||
canonical JSON、schema、UUID、revision 和 RFC3339 时间均强校验;V1 与未知 keyId 拒绝。
|
||||
- 已内置开发签发公钥 `xuqm-config-dev-2026-07`;私钥不属于 SDK 仓库。
|
||||
- 已同时内置开发签发公钥 `xuqm-config-dev-2026-07` 与生产签发公钥
|
||||
`xuqm-config-prod-2026-07`;私钥只保存在 Jenkins 凭据库和服务端运行环境,
|
||||
不属于 SDK 仓库或发布制品。
|
||||
- `BugCollect` 必须同时满足平台启用、隐私已同意、上传地址有效。关闭时恢复宿主原
|
||||
UncaughtExceptionHandler 并删除队列;服务端 `BUGCOLLECT_DISABLED` 会形成持久停用锁,
|
||||
仅新的成功平台配置可解除。
|
||||
|
||||
@ -24,6 +24,8 @@ object XuqmConfigContract {
|
||||
private val publicKeys = mapOf(
|
||||
"xuqm-config-dev-2026-07" to
|
||||
"MCowBQYDK2VwAyEAFt9MBN8jNwCfalex4wg7kuy2DRAbXkGxZyA/Jaz+6YA=",
|
||||
"xuqm-config-prod-2026-07" to
|
||||
"MCowBQYDK2VwAyEATicvc1Knc+AB1N/aI36yr2oRS52rk1A3qIuL3m/AAWM=",
|
||||
)
|
||||
|
||||
data class Metadata(
|
||||
|
||||
@ -97,6 +97,8 @@ internal object ConfigSigningKeys {
|
||||
private val encodedKeys: Map<String, String> = mapOf(
|
||||
"xuqm-config-dev-2026-07" to
|
||||
"MCowBQYDK2VwAyEAFt9MBN8jNwCfalex4wg7kuy2DRAbXkGxZyA/Jaz+6YA=",
|
||||
"xuqm-config-prod-2026-07" to
|
||||
"MCowBQYDK2VwAyEATicvc1Knc+AB1N/aI36yr2oRS52rk1A3qIuL3m/AAWM=",
|
||||
)
|
||||
|
||||
val all: Map<String, PublicKey> by lazy {
|
||||
|
||||
正在加载...
在新工单中引用
屏蔽一个用户