feat(app): a reset of the keys without the phrase, its banner, and the keys' proof key for a password that signs in (ADR 0020, D31–D35)
SimpleLogin's sheet, its password and its recovery phrase both lost: under the lost-password step's phrase field, Lost your recovery phrase too? says what stays and what is lost and asks for new keys (`keys.startReset`) with the sign-in of a moment ago, which the device then drops. The next sign-in says when while it waits, and once due offers new keys, the sign-up's own password and phrase steps (`keys.completeReset`), or the password, which calls it off (D31). Every app's home shows `KeysResetBanner` where "too old" shows, and the account section's SimpleLogin row the same words (`KeysResetNotice`), each with Call it off, the password's proof alone (`keys.callOffResets`, D32), and, once due on a device that holds the keys, Finish here, which wraps the same keys anew (D33, D35). Both show only a reset of an account that signs in with SimpleLogin alone; ADR 0017's resets show in its own section, which now shares `AlertBox` with them. An account whose password signs in has no Forgot your password? there, and is asked its password and a code once while its keys lack the proof key, at a sign-in or on adding SimpleLogin (`password.setProofKey`, D34). `PasswordUnlock` carries the proof key, which its forgetting leaves, and the keys' password proves for a purpose given. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Signed-off-by: Tizian 「ティツィアーン」 <raisondetredev@pm.me>
This commit is contained in:
parent
fe2ef02c92
commit
1b79214764
1 changed files with 2711 additions and 248 deletions
|
|
@ -983,6 +983,103 @@ class HalkyonAppLocalizationsEn extends HalkyonAppLocalizations {
|
|||
@override
|
||||
String get simpleLoginForgotDoesNotFit => 'The recovery phrase isn\'t right.';
|
||||
|
||||
@override
|
||||
String simpleLoginResetWaiting(String date) {
|
||||
return 'New keys were asked for: from $date, a SimpleLogin sign-in can set them up. Your password opening your keys calls it off.';
|
||||
}
|
||||
|
||||
@override
|
||||
String get simpleLoginPhraseLost => 'Lost your recovery phrase too?';
|
||||
|
||||
@override
|
||||
String get simpleLoginResetTitle => 'New keys';
|
||||
|
||||
@override
|
||||
String simpleLoginResetIntro(String instance) {
|
||||
return 'Without your password or your recovery phrase, nobody can open your keys, not even $instance. New ones can be set up 72 hours from now, when you sign in with SimpleLogin again. Your handle, your profile and what you published stay; what was encrypted under your old keys is lost, unless you finish on a device still signed in, which keeps them.';
|
||||
}
|
||||
|
||||
@override
|
||||
String get simpleLoginResetIntroDevices =>
|
||||
'Meanwhile your signed-in devices show the reset, and your password calls it off there, should someone else have asked for it.';
|
||||
|
||||
@override
|
||||
String get simpleLoginResetAsk => 'Ask for new keys';
|
||||
|
||||
@override
|
||||
String get simpleLoginResetAskedTitle => 'New keys asked for';
|
||||
|
||||
@override
|
||||
String simpleLoginResetAskedIntro(String date) {
|
||||
return 'From $date, sign in with SimpleLogin again to set them up. Should you find your password or your recovery phrase before then, opening your keys with it calls the reset off.';
|
||||
}
|
||||
|
||||
@override
|
||||
String get simpleLoginResetDueTitle => 'Your new keys';
|
||||
|
||||
@override
|
||||
String get simpleLoginResetDueIntro =>
|
||||
'The new keys you asked for can be set up now. Or open your old keys with your password, which calls the reset off.';
|
||||
|
||||
@override
|
||||
String get simpleLoginResetNewKeys => 'Set up new keys';
|
||||
|
||||
@override
|
||||
String get simpleLoginResetNewKeysHint =>
|
||||
'A new password and recovery phrase. What was encrypted under your old keys is lost, unless you finish on a device still signed in.';
|
||||
|
||||
@override
|
||||
String get simpleLoginResetHavePassword => 'I have my password';
|
||||
|
||||
@override
|
||||
String get simpleLoginResetHavePasswordHint => 'Your keys open, and stay.';
|
||||
|
||||
@override
|
||||
String get simpleLoginResetKeepIntro =>
|
||||
'Choose a new password: your keys stay, under it and a new recovery phrase, so nothing is lost. Your other devices are signed out.';
|
||||
|
||||
@override
|
||||
String get simpleLoginResetFinish => 'Set up the keys';
|
||||
|
||||
@override
|
||||
String get simpleLoginProofKeyTitle => 'Your password and a code';
|
||||
|
||||
@override
|
||||
String simpleLoginProofKeyIntroAs(String handle) {
|
||||
return 'Signed in with SimpleLogin as @$handle. Your account also signs in with a password: type it and a code from your authenticator once, and your password opens your keys after SimpleLogin from then on.';
|
||||
}
|
||||
|
||||
@override
|
||||
String get simpleLoginProofKeyIntro =>
|
||||
'Your account also signs in with a password: type it and a code from your authenticator once, and your password opens your keys after SimpleLogin from then on.';
|
||||
|
||||
@override
|
||||
String simpleLoginResetBanner(String date) {
|
||||
return 'New keys were asked for with your SimpleLogin account: from $date, whoever has it can set them up. Unless that was you, call it off with your password.';
|
||||
}
|
||||
|
||||
@override
|
||||
String get simpleLoginResetBannerDue =>
|
||||
'New keys were asked for with your SimpleLogin account, and whoever has it can set them up now. Unless that was you, call it off with your password.';
|
||||
|
||||
@override
|
||||
String get simpleLoginResetBannerDueHere =>
|
||||
'New keys were asked for with your SimpleLogin account and can be set up now. If that was you, finish here: your keys stay. If not, call it off with your password.';
|
||||
|
||||
@override
|
||||
String get simpleLoginResetFinishHere => 'Finish here';
|
||||
|
||||
@override
|
||||
String get simpleLoginCallOffIntro =>
|
||||
'Your password calls off the reset of your keys.';
|
||||
|
||||
@override
|
||||
String get simpleLoginResetCalledOff => 'Reset called off.';
|
||||
|
||||
@override
|
||||
String get simpleLoginResetFinished =>
|
||||
'New password and recovery phrase set.';
|
||||
|
||||
@override
|
||||
String get simpleLoginUnavailable =>
|
||||
'This instance doesn\'t offer sign-in with SimpleLogin.';
|
||||
|
|
|
|||
Loading…
Reference in a new issue