Skip to content

Commit 8340d60

Browse files

File tree

1 file changed

+11
-2
lines changed

1 file changed

+11
-2
lines changed

src/Kryptor/UI/PassphrasePrompt.cs

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,12 +28,21 @@ public static class PassphrasePrompt
2828
{
2929
public static Span<byte> GetNewPassphrase(Span<byte> passphrase)
3030
{
31-
return passphrase.Length switch
31+
passphrase = passphrase.Length switch
3232
{
3333
0 => EnterNewPassphrase(),
34-
1 when ConstantTime.Equals(passphrase, Encoding.UTF8.GetBytes(" ")) => UseRandomPassphrase(),
34+
1 when ConstantTime.Equals(passphrase, " "u8) => UseRandomPassphrase(),
3535
_ => passphrase
3636
};
37+
const int maxAscii = 127;
38+
bool lessThanEqualTo = true;
39+
foreach (byte b in passphrase) {
40+
lessThanEqualTo &= Convert.ToBoolean(((b - maxAscii - 1) >> 31) & 1);
41+
}
42+
if (!lessThanEqualTo) {
43+
DisplayMessage.WriteLine("WARNING: Using non-ASCII characters in a passphrase may cause problems decrypting files/private keys.", ConsoleColor.DarkYellow);
44+
}
45+
return passphrase;
3746
}
3847

3948
private static Span<byte> EnterNewPassphrase()

0 commit comments

Comments
 (0)