Skip to content

feat(auth-eth): scope material allowlists to exact key epochs - #1532

Closed
kvinwang wants to merge 8 commits into
feat/kms-app-epochsfrom
feat/epoch-scoped-allowlists
Closed

kvinwang wants to merge 8 commits into
feat/kms-app-epochsfrom
feat/epoch-scoped-allowlists

Conversation

@kvinwang

@kvinwang kvinwang commented Nov 7, 2026 •

Copy link
Copy Markdown
Collaborator

Scope KMS OS/MR/device approvals to exact root-epoch rows and app compose/device approvals to exact app-epoch rows. Preserve legacy storage as row zero; default setters operate on the highest applicable epoch and explicit setters target one row.

Authorize an entire KMS keyring at its highest exported epoch: the source checks import_kms_keys for the recipient, and the recipient checks export_kms_keys for the source. Forward application operations through the optional epoch-aware DstackApp.authorizeApp interface so future policies can distinguish key retrieval from certificate signing. Existing legacy app authorization remains available at epoch zero.

Validation: all 87 Solidity tests passed, including operation forwarding, wrong-scope rejection, legacy policy fallback, epoch isolation and proxy upgrades. Forge 1.8.4, Solc 0.8.24, optimizer 200, no via-IR, pinned submodules, local EVM and OpenZeppelin FFI validation. Full Rust/adapter validation and limits are recorded in #1533; no live chain/TEE.

@kvinwang
kvinwang added this pull request to stack #1531 November 7, 2026 16:43
@kvinwang
kvinwang force-pushed the feat/epoch-scoped-allowlists branch from aefa12d to 7861b13 Compare November 8, 2026 01:41
@kvinwang
kvinwang force-pushed the feat/epoch-scoped-allowlists branch from 7861b13 to cca8e0a Compare November 8, 2026 01:44
@kvinwang
kvinwang force-pushed the feat/epoch-scoped-allowlists branch 2 times, most recently from 51f8598 to 933ffb6 Compare November 8, 2026 02:57
@kvinwang
kvinwang force-pushed the feat/epoch-scoped-allowlists branch from 933ffb6 to 4ed6d0d Compare November 8, 2026 03:06
@kvinwang
kvinwang force-pushed the feat/epoch-scoped-allowlists branch from 4ed6d0d to 1de3c9e Compare November 8, 2026 03:34
@kvinwang
kvinwang force-pushed the feat/epoch-scoped-allowlists branch 2 times, most recently from 96edd77 to b309d57 Compare November 8, 2026 09:21
@kvinwang
kvinwang force-pushed the feat/epoch-scoped-allowlists branch 2 times, most recently from 1a7dd23 to a5457bf Compare November 8, 2026 14:14
@kvinwang
kvinwang force-pushed the feat/epoch-scoped-allowlists branch from a5457bf to 37b2cc4 Compare November 8, 2026 15:10
@kvinwang
kvinwang force-pushed the feat/epoch-scoped-allowlists branch from 37b2cc4 to bdcc036 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>
@kvinwang
kvinwang force-pushed the feat/epoch-scoped-allowlists branch from bdcc036 to 08b3f26 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