You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
main 5cdaeba2b7b191a27684093cce7b5a153c99c88d / tree 3ad68f2012896310abfa9bcaf800c9ab05f6c886 已实际读回,等于最终PR通过的树。18个PR工作流全部success;8份ZIP摘要/JUnit node-ID独立核验 2531 core + 8 conformance,零失败/错误/跳过。精确来源和产物摘要见 #185证据,更新索引见#83。合并后main push是独立运行,正在核验,不预记成功。
完整托管A/B历史、具体inventory ACK、exit与backup-retirement的现有回归保留;installed official selftest的custodial_history_recovery通过。在线retired与外部backup_retired继续分开,未取得真实retained密文逐项解密/独立退役范围,不声称server_key_retired。旧时“promotion未实现”不再代表当前源码,但现场current pin仍独立缺失。
Activity
Fix scoped custodial history recovery and online key retirement
LIghtJUNction commentedon Sep 27, 2026
已提交增量修复 PR #112(分支
fix/issues-68-70-recovery-safety)。本次落实:读取迁移状态时重新验证每份 Ed25519 解密 ACK,绑定挑战、新签名钥、旧/新密文版本及摘要;清单增量或持久化 ACK 被篡改时不再报告历史迁移完成。分别报告身份切换、历史可恢复、在线 vault 退役和备份退役;未取得独立备份销毁证据时,
server_key_retired始终不能变成 true。已添加真实 age 解密后 ACK 和篡改持久化 ACK 的集成回归。已验证:34 个独立单元测试在本地 Python 3.13.5 和 GitHub Python 3.15.0-rc.2 均通过(run 36352807272)。PR 上的真实 PostgreSQL/age 和完整 CI 尚在执行,不能据此声称全部验收通过。
本 issue 保持开放:非空历史迁移最终完成、旧解密钥兼容封装、不可恢复项选择、写入冻结/增量策略,以及可独立审计的备份退役仍需继续实现与验收。未触及生产数据或生产密钥。
Fix custodial history migration, scoped decrypt ACKs and online key r…
LIghtJUNction commentedon Sep 28, 2026
Refs #68 — A 已提交 #116(接续 #112,C 串行合并),当前
c97a5286c029aae298d66aa4c6390497f053e4c8。真实回归发现:retained age 清单为空时没有任何历史 ACK 触发原始 challenge 验证,修改挑战/四个 key ID 仍可被接受。新
test_task_a_custodial_binding.py先得到9失败/1通过;security/custodial_migration.verify_challenge_binding()现在每次快照验证旧服务端签名、账号和派生 key ID、旧签名凭据/旧 age 绑定,以及进行中或 decrypt_only 阶段的新主 age key 未退役。另修复 v1 空历史切换错误假设已处于pending_rewrap:使用真实阶段,保留#100生命周期。没有改旧正文/签名/Revision/key_id,没有把A类rewrap和B类仅本账号旧EncryptionSubkey兼容恢复混合;既有客户端真实age解密ACK路径保留。最终本地组合58通过(真实PG17.11/age1.2.1/Git),含既有完整托管生命周期、损坏/漂移及新回归;目标Py3.15/PG16完整四分片以#116最新CI结果为准,当前尚未宣称通过。
在线删除、身份切换、历史恢复和备份退役继续分别记录;独立外部/备份退役材料未取得,
backup_retired/server_key_retired绝不变true。本issue继续开放。文件/命令/摘要见docs/TASK_A_RECOVERY_20260928.md和docs/TASK_A_VERIFICATION.md。无生产密钥操作或部署。Merge #118: integrate recovery safety without weakening current autho…
feat(security): accept only console-imported root-signed backup retir…
fix: reject stale Root authority and replay bans without inherited ex…
Merge PR #185: Python 3.15 quality and verified deployment artifacts
LIghtJUNction commentedon Sep 29, 2026
2026-09-29 当前接续(#185 已合并)
main
5cdaeba2b7b191a27684093cce7b5a153c99c88d/ tree3ad68f2012896310abfa9bcaf800c9ab05f6c886已实际读回,等于最终PR通过的树。18个PR工作流全部success;8份ZIP摘要/JUnit node-ID独立核验 2531 core + 8 conformance,零失败/错误/跳过。精确来源和产物摘要见 #185证据,更新索引见#83。合并后main push是独立运行,正在核验,不预记成功。完整托管A/B历史、具体inventory ACK、exit与backup-retirement的现有回归保留;installed official selftest的custodial_history_recovery通过。在线retired与外部backup_retired继续分开,未取得真实retained密文逐项解密/独立退役范围,不声称server_key_retired。旧时“promotion未实现”不再代表当前源码,但现场current pin仍独立缺失。
各条款源码入口与独立现场材料见
docs/RELEASE_ACCEPTANCE.md。本评论更新证据归属,不降低原验收范围或扩大现场权限。LIghtJUNction commentedon Oct 3, 2026
已按托管历史密文恢复/钥生命周期功能完成关闭。当前源码包含 retained inventory、A/B 恢复映射、真实客户端解密后的签名 ACK、显式 finalize、decrypt-only/loss acceptance、在线退役与独立备份退役验证;保留原 Revision 签署字节。
生命周期回归、inventory ACK、历史迁移及 退役证明回归 已在 当前 main CI 核实通过。操作者实际历史密文逐项解密及在线/备份退役现场证明继续在 #84 跟踪;本次没有解密生产数据、销毁钥或删除备份,不宣称现场退役完成。