show user friendly error on non-ascii password

This commit is contained in:
woodser 2025-04-08 18:06:31 -04:00
parent d78709e1f9
commit 5df3ccef82
No known key found for this signature in database
GPG Key ID: 55A10DD48ADEE5EF
2 changed files with 6 additions and 2 deletions

View File

@ -243,6 +243,11 @@ public class KeyStorage {
//noinspection ResultOfMethodCallIgnored
storageDir.mkdirs();
// password must be ascii
if (password != null && !password.matches("\\p{ASCII}*")) {
throw new IllegalArgumentException("Password must be ASCII.");
}
var oldPasswordChars = oldPassword == null ? new char[0] : oldPassword.toCharArray();
var passwordChars = password == null ? new char[0] : password.toCharArray();
try {

View File

@ -39,7 +39,6 @@ import static haveno.desktop.util.FormBuilder.addButtonBusyAnimationLabel;
import static haveno.desktop.util.FormBuilder.addMultilineLabel;
import static haveno.desktop.util.FormBuilder.addPasswordTextField;
import static haveno.desktop.util.FormBuilder.addTitledGroupBg;
import org.apache.commons.lang3.exception.ExceptionUtils;
import haveno.desktop.util.Layout;
import haveno.desktop.util.validation.PasswordValidator;
import javafx.beans.value.ChangeListener;
@ -160,7 +159,7 @@ public class PasswordView extends ActivatableView<GridPane, Void> {
} catch (Throwable t) {
log.error("Error applying password: {}\n", t.getMessage(), t);
new Popup()
.warning(Res.get("password.walletEncryptionFailed") + "\n\n" + ExceptionUtils.getStackTrace(t))
.warning(Res.get("password.walletEncryptionFailed") + "\n\n" + t.getMessage())
.show();
}
}