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
|
|
@ -1699,6 +1699,162 @@ abstract class HalkyonAppLocalizations {
|
|||
/// **'The recovery phrase isn\'t right.'**
|
||||
String get simpleLoginForgotDoesNotFit;
|
||||
|
||||
/// No description provided for @simpleLoginResetWaiting.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'New keys were asked for: from {date}, a SimpleLogin sign-in can set them up. Your password opening your keys calls it off.'**
|
||||
String simpleLoginResetWaiting(String date);
|
||||
|
||||
/// No description provided for @simpleLoginPhraseLost.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Lost your recovery phrase too?'**
|
||||
String get simpleLoginPhraseLost;
|
||||
|
||||
/// No description provided for @simpleLoginResetTitle.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'New keys'**
|
||||
String get simpleLoginResetTitle;
|
||||
|
||||
/// No description provided for @simpleLoginResetIntro.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'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.'**
|
||||
String simpleLoginResetIntro(String instance);
|
||||
|
||||
/// No description provided for @simpleLoginResetIntroDevices.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Meanwhile your signed-in devices show the reset, and your password calls it off there, should someone else have asked for it.'**
|
||||
String get simpleLoginResetIntroDevices;
|
||||
|
||||
/// No description provided for @simpleLoginResetAsk.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Ask for new keys'**
|
||||
String get simpleLoginResetAsk;
|
||||
|
||||
/// No description provided for @simpleLoginResetAskedTitle.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'New keys asked for'**
|
||||
String get simpleLoginResetAskedTitle;
|
||||
|
||||
/// No description provided for @simpleLoginResetAskedIntro.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'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.'**
|
||||
String simpleLoginResetAskedIntro(String date);
|
||||
|
||||
/// No description provided for @simpleLoginResetDueTitle.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Your new keys'**
|
||||
String get simpleLoginResetDueTitle;
|
||||
|
||||
/// No description provided for @simpleLoginResetDueIntro.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'The new keys you asked for can be set up now. Or open your old keys with your password, which calls the reset off.'**
|
||||
String get simpleLoginResetDueIntro;
|
||||
|
||||
/// No description provided for @simpleLoginResetNewKeys.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Set up new keys'**
|
||||
String get simpleLoginResetNewKeys;
|
||||
|
||||
/// No description provided for @simpleLoginResetNewKeysHint.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'A new password and recovery phrase. What was encrypted under your old keys is lost, unless you finish on a device still signed in.'**
|
||||
String get simpleLoginResetNewKeysHint;
|
||||
|
||||
/// No description provided for @simpleLoginResetHavePassword.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'I have my password'**
|
||||
String get simpleLoginResetHavePassword;
|
||||
|
||||
/// No description provided for @simpleLoginResetHavePasswordHint.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Your keys open, and stay.'**
|
||||
String get simpleLoginResetHavePasswordHint;
|
||||
|
||||
/// No description provided for @simpleLoginResetKeepIntro.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Choose a new password: your keys stay, under it and a new recovery phrase, so nothing is lost. Your other devices are signed out.'**
|
||||
String get simpleLoginResetKeepIntro;
|
||||
|
||||
/// No description provided for @simpleLoginResetFinish.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Set up the keys'**
|
||||
String get simpleLoginResetFinish;
|
||||
|
||||
/// No description provided for @simpleLoginProofKeyTitle.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Your password and a code'**
|
||||
String get simpleLoginProofKeyTitle;
|
||||
|
||||
/// No description provided for @simpleLoginProofKeyIntroAs.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'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.'**
|
||||
String simpleLoginProofKeyIntroAs(String handle);
|
||||
|
||||
/// No description provided for @simpleLoginProofKeyIntro.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'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.'**
|
||||
String get simpleLoginProofKeyIntro;
|
||||
|
||||
/// No description provided for @simpleLoginResetBanner.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'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.'**
|
||||
String simpleLoginResetBanner(String date);
|
||||
|
||||
/// No description provided for @simpleLoginResetBannerDue.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'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.'**
|
||||
String get simpleLoginResetBannerDue;
|
||||
|
||||
/// No description provided for @simpleLoginResetBannerDueHere.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'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.'**
|
||||
String get simpleLoginResetBannerDueHere;
|
||||
|
||||
/// No description provided for @simpleLoginResetFinishHere.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Finish here'**
|
||||
String get simpleLoginResetFinishHere;
|
||||
|
||||
/// No description provided for @simpleLoginCallOffIntro.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Your password calls off the reset of your keys.'**
|
||||
String get simpleLoginCallOffIntro;
|
||||
|
||||
/// No description provided for @simpleLoginResetCalledOff.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Reset called off.'**
|
||||
String get simpleLoginResetCalledOff;
|
||||
|
||||
/// No description provided for @simpleLoginResetFinished.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'New password and recovery phrase set.'**
|
||||
String get simpleLoginResetFinished;
|
||||
|
||||
/// No description provided for @simpleLoginUnavailable.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
|
|
|
|||
Loading…
Reference in a new issue