Skip to content

feat(kms): rotate application keys independently of root epochs - #1530

Closed
kvinwang wants to merge 11 commits into
kms-sealed-env-cleanfrom
feat/kms-app-epochs
Closed

kvinwang wants to merge 11 commits into
kms-sealed-env-cleanfrom
feat/kms-app-epochs

Conversation

@kvinwang

@kvinwang kvinwang commented Nov 7, 2026 •

Copy link
Copy Markdown
Collaborator

Rotate application keys independently of KMS roots. Derivation, historical GetKey requests, LUKS tokens and SealedEnv use the complete root/app epoch pair; epoch zero preserves existing key derivation. New epoch rows require explicit approvals in the following matrix layer.

Auth adapters report application epochs and use one normalized policy lookup. Preserve explicit operation authorization from #1517 across current/historical selectors, the Rust backend and adapter tests; legacy app authorization is denied after app rotation.

Validation at this layer: 75 KMS, 9 Rust auth and 38 DstackKms contract tests passed. Final adapter, migration and lint validation is recorded in #1533. Synthetic local inputs, Rust 1.92.0, Forge 1.8.4 / Solc 0.8.24; no live TEE or chain.

@kvinwang
kvinwang force-pushed the feat/kms-app-epochs branch 3 times, most recently from 97367a7 to 0bb0719 Compare November 7, 2026 13:34
@kvinwang
kvinwang force-pushed the feat/kms-app-epochs branch from 7c80e3e to 5736cd4 Compare November 7, 2026 15:15
@kvinwang
kvinwang force-pushed the feat/kms-app-epochs branch from de2bc21 to 9a3a2c4 Compare November 7, 2026 15:21
@kvinwang
kvinwang force-pushed the feat/kms-app-epochs branch from 9a3a2c4 to a860955 Compare November 7, 2026 15:25
@kvinwang
kvinwang added this pull request to stack #1531 November 7, 2026 15:27
@kvinwang
kvinwang force-pushed the feat/kms-app-epochs branch from a860955 to c426bc0 Compare November 8, 2026 01:41
@kvinwang
kvinwang force-pushed the feat/kms-app-epochs branch 2 times, most recently from 32e0a2b to c1cb5b4 Compare November 8, 2026 02:21
@kvinwang
kvinwang force-pushed the feat/kms-app-epochs branch from c1cb5b4 to 1c93556 Compare November 8, 2026 02:57
@kvinwang
kvinwang force-pushed the feat/kms-app-epochs branch from 1c93556 to 080909a Compare November 8, 2026 03:06
@kvinwang
kvinwang force-pushed the feat/kms-app-epochs branch from 080909a to 81b7a50 Compare November 8, 2026 03:34
@kvinwang
kvinwang force-pushed the feat/kms-app-epochs branch from 81b7a50 to 5e43406 Compare November 8, 2026 07:25
@kvinwang
kvinwang force-pushed the feat/kms-app-epochs branch 2 times, most recently from 29f14bf to 4b392cd Compare November 8, 2026 14:13
@kvinwang
kvinwang force-pushed the feat/kms-app-epochs branch 2 times, most recently from 71de4d7 to a9eb92a Compare November 8, 2026 15:10
@kvinwang
kvinwang force-pushed the feat/kms-app-epochs branch from a9eb92a to ee81da0 Compare November 8, 2026 15:32
Signed-off-by: Kevin Wang <wy721@qq.com>
Signed-off-by: Kevin Wang <wy721@qq.com>
Signed-off-by: Kevin Wang <wy721@qq.com>
Signed-off-by: Kevin Wang <wy721@qq.com>
Signed-off-by: Kevin Wang <wy721@qq.com>
Signed-off-by: Kevin Wang <wy721@qq.com>
Signed-off-by: Kevin Wang <wy721@qq.com>
Signed-off-by: Kevin Wang <wy721@qq.com>
@kvinwang
kvinwang force-pushed the feat/kms-app-epochs branch from ee81da0 to 48d151d Compare November 8, 2026 15:57
@kvinwang kvinwang closed this Nov 9, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant