Skip to content

test(I6): disabling AdvancedMode must revoke the signer, not suspend it - #46

Merged
BitHighlander merged 1 commit into
masterfrom
fix/advanced-mode-revokes
Aug 21, 2026
Merged

test(I6): disabling AdvancedMode must revoke the signer, not suspend it#46
BitHighlander merged 1 commit into
masterfrom
fix/advanced-mode-revokes

Conversation

@BitHighlander

Copy link
Copy Markdown
Owner

I6 previously measured and documented a gap instead of closing it. Its own docstring:

a user who disables AdvancedMode to revoke a provider has not revoked it, only suspended it. Re-enabling the policy costs one button press whose screen names the policy and never names the signer it silently re-arms.

That also contradicted docs/security/clearsign-provider-tier.md, which lists disabling AdvancedMode among the events that clear identities. One of the two had to move, and the doc was right: 7.15 is safe without any key-management programme precisely because trust dies on its own, and a revocation that only suspends is not one.

The firmware side is four lines in fsm_msgApplyPolicies (firmware PR, pinned together with this). This flips the assertion: after the policy round-trip the signer must be gone, and the bare-message expected-response list — one ButtonRequest, one Success — proves trust cannot be restored by a policy toggle at all. Coming back costs a fresh LoadClearsignSigner consent, the screen that names the alias and fingerprint.

Renamed to say what it now asserts; the atlas entry follows.

I6 previously MEASURED and documented a gap instead of closing it: turning
AdvancedMode off left the loaded provider in RAM, and the test's own docstring
said so --

    a user who disables AdvancedMode to revoke a provider has not revoked it,
    only suspended it. Re-enabling the policy costs one button press whose
    screen names the policy and never names the signer it silently re-arms.

That also contradicted docs/security/clearsign-provider-tier.md, which lists
"disabling AdvancedMode" among the events that clear identities. One of the two
had to move, and the doc was right: 7.15 is safe without any key-management
programme precisely because trust dies on its own, and a revocation that only
suspends is not one.

The firmware side is four lines in fsm_msgApplyPolicies (firmware PR). This
flips the assertion to match: after the policy round-trip the signer must be
GONE, and the bare-message expected-response list (one ButtonRequest, one
Success) proves trust cannot be restored by a policy toggle at all -- coming
back costs a fresh LoadClearsignSigner consent, which is the screen that names
the alias and fingerprint.

Renamed to say what it now asserts. The atlas entry follows.
@BitHighlander
BitHighlander merged commit 9fad463 into master Aug 21, 2026
2 of 4 checks passed
@BitHighlander
BitHighlander deleted the fix/advanced-mode-revokes branch August 21, 2026 20:21
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