Goal
Users who cannot complete interactive self-verification (SAS/emoji with another client) can still establish trust on this session by entering a valid Matrix recovery / security key (or equivalent secret flow), so Decentra can hydrate cross-signing and decrypt where the homeserver allows.
Scope
- In-app entry point (e.g. Settings → Account or secure onboarding step) for recovery key input; never log the raw key.
- Integrate with matrix-js-sdk Rust crypto + Secret Storage / bootstrap APIs (align with how keys are created at registration today).
- Clear copy: when to use vs. device verification; link or reference existing docs.
- Error handling: wrong key, missing secret storage, UIA-required homeserver paths.
- Optional: rate-limit / lockout messaging for repeated failures (if applicable).
Out of scope (unless split): full account reset, email-based recovery, or server-side key escrow.
Branch
feature/recovery-key-crypto-bootstrap
Acceptance Criteria
Test Checklist
Unit
Integration
E2E
Notes
- Complements device verification (SAS); does not replace it for users with a second trusted client.
- Depends on correct bootstrapCrossSigning / secret storage callbacks and homeserver capabilities; may require UIA on some servers.
Goal
Users who cannot complete interactive self-verification (SAS/emoji with another client) can still establish trust on this session by entering a valid Matrix recovery / security key (or equivalent secret flow), so Decentra can hydrate cross-signing and decrypt where the homeserver allows.
Scope
Out of scope (unless split): full account reset, email-based recovery, or server-side key escrow.
Branch
feature/recovery-key-crypto-bootstrapAcceptance Criteria
useAppI18n).Test Checklist
Unit
Integration
E2E
Notes