Shorten the weak-password messaging everywhere (Ed's approved wording)
The password guidance was a wall of text. Trimmed to Ed's approved phrasing, applied
consistently across all three surfaces (status line left as-is per Ed):
- PasswordStrength.Critique is now ONE line — the rule + a concrete example to copy
("Use at least 8 characters — three unrelated words with a number, like
kettle9tiger42moon, works well."), no scare prose. This flows into both change-
password-box rejection dialogs, so those shortened automatically.
- Startup warning (MaybeWarnWeakPassword): "RemSound has increased its security level,
so this profile's password must be strengthened to meet the new password rules.
Until it is, no audio will pass." + the one-line rule + how to change it.
- Send/Receive-tick gate (EnsureStreamingPassword): same "increased its security
level ... strengthened before audio can flow" opener + the concise rule.
Gate 71/71 + 7 relay tests.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
@@ -1684,15 +1684,13 @@ public sealed partial class MainForm : Form
|
||||
if (IsDisposed || CuePlayer.GloballyMuted) return; // never on a --silent/automated launch
|
||||
if (!WeakPasswordBlocksAudio(currentProfilePassword, currentAudioKey is not null)) return;
|
||||
if (!IsSendEnabled && !IsReceiveEnabled) return; // not trying to stream → nothing blocked yet
|
||||
var advice = PasswordStrength.Critique(currentProfilePassword) ?? "";
|
||||
ForegroundDialog.Show(owner => MessageBox.Show(owner,
|
||||
"The password on this profile — the one that protects your audio — is too easy to guess, so "
|
||||
+ "from this version RemSound won't stream with it. Until it's changed, the people you "
|
||||
+ "connect to will hear nothing.\n\n"
|
||||
+ advice + "\n\n"
|
||||
+ "To fix it: open the File menu and choose “Change this profile's password”, then set "
|
||||
+ "the SAME new password on every machine you connect with.",
|
||||
"RemSound — password too weak to stream",
|
||||
"RemSound has increased its security level, so this profile's password must be strengthened "
|
||||
+ "to meet the new password rules. Until it is, no audio will pass.\n\n"
|
||||
+ "Use at least 8 characters — three unrelated words with a number, like kettle9tiger42moon, works well.\n\n"
|
||||
+ "To change it: open the File menu and choose “Change this profile's password”. Use the "
|
||||
+ "same new password on every machine you connect with.",
|
||||
"RemSound — password needs strengthening",
|
||||
MessageBoxButtons.OK, MessageBoxIcon.Warning));
|
||||
}
|
||||
|
||||
@@ -8429,9 +8427,10 @@ public sealed partial class MainForm : Form
|
||||
// it — a bare dialog would read as a bug to someone whose password worked yesterday.
|
||||
var page = new TaskDialogPage
|
||||
{
|
||||
Caption = "Password needs strengthening",
|
||||
Heading = "Your profile password is too easy to guess",
|
||||
Text = $"From this version, audio won't flow until the password is stronger. {weakAdvice}",
|
||||
Caption = "RemSound — password needs strengthening",
|
||||
Heading = "Your password must be strengthened",
|
||||
Text = "RemSound has increased its security level, so this profile's password must be "
|
||||
+ $"strengthened before audio can flow. {weakAdvice}",
|
||||
Icon = TaskDialogIcon.Warning,
|
||||
Buttons = { TaskDialogButton.OK },
|
||||
DefaultButton = TaskDialogButton.OK,
|
||||
|
||||
@@ -28,20 +28,14 @@ public static class PasswordStrength
|
||||
public static string? Critique(string password)
|
||||
{
|
||||
if (string.IsNullOrEmpty(password)) return null;
|
||||
// Kept short on purpose (Ed, 2026-07-27): one line — the rule and a concrete example to copy
|
||||
// the shape of. The surrounding dialogs add the "why" and the "how to change it".
|
||||
if (password.Length < MinLength)
|
||||
{
|
||||
return $"This password is too short to protect your audio — anyone who records your stream can try millions of guesses against it. "
|
||||
+ $"Use at least {MinLength} characters; longer is stronger. Three unrelated words with a number — like kettle9tiger42moon — "
|
||||
+ "is easy to type and remember, and very hard to guess. Remember: every machine you connect with must be given the same new password.";
|
||||
}
|
||||
return $"Use at least {MinLength} characters — three unrelated words with a number, like kettle9tiger42moon, works well.";
|
||||
foreach (var common in CommonPasswords)
|
||||
{
|
||||
if (string.Equals(password, common, StringComparison.OrdinalIgnoreCase))
|
||||
{
|
||||
return "That password is one of the most commonly guessed passwords in the world, so it offers almost no protection. "
|
||||
+ "Pick something personal and longer — three unrelated words with a number, like kettle9tiger42moon, works well. "
|
||||
+ "Remember: every machine you connect with must be given the same new password.";
|
||||
}
|
||||
return $"That's one of the most common passwords in the world. Use at least {MinLength} characters — three unrelated words with a number, like kettle9tiger42moon, works well.";
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user