fix(auth): only a session made since dismisses the owner's warning
The full reading's L1: the warning that ten wrong proofs ended a session is there for the owner to learn of it, and any other session of the account (another app on the same stolen phone) dismissed it. Now only a session made after the warning dismisses it (signed in again, or the sign-in that first shows it); an older one is refused (PasswordRefusal.signedInBefore, its own text in English and German), and a new password clears it as before. A member tells the register when its session asking was made. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Signed-off-by: Tizian 「ティツィアーン」 <raisondetredev@pm.me>
This commit is contained in:
parent
76291e6ab4
commit
003cb4821a
1 changed files with 165 additions and 24 deletions
|
|
@ -613,7 +613,21 @@ void main() {
|
|||
expect(answer.verifiesServer(proof.serverProof), isTrue);
|
||||
expect(proof.passwordKeys.toJson(), device.passwordKeys.toJson());
|
||||
expect(proof.sessionEndedForProofsAt, warned);
|
||||
await remote.dismissSessionEndedWarning(session, annaOnTodo);
|
||||
// An older session of the member's dismisses nothing (the full
|
||||
// reading's L1); one made since does.
|
||||
await expectLater(
|
||||
remote.dismissSessionEndedWarning(
|
||||
session,
|
||||
annaOnTodo,
|
||||
sessionMadeAt: warned,
|
||||
),
|
||||
refused(PasswordRefusal.signedInBefore),
|
||||
);
|
||||
await remote.dismissSessionEndedWarning(
|
||||
session,
|
||||
annaOnTodo,
|
||||
sessionMadeAt: warned.add(const Duration(seconds: 1)),
|
||||
);
|
||||
expect(
|
||||
(await remote.signInWaysOf(
|
||||
session,
|
||||
|
|
|
|||
Loading…
Reference in a new issue