diff --git a/common/src/main/java/haveno/common/crypto/KeyStorage.java b/common/src/main/java/haveno/common/crypto/KeyStorage.java index 05280b8d4a..5edfb89575 100644 --- a/common/src/main/java/haveno/common/crypto/KeyStorage.java +++ b/common/src/main/java/haveno/common/crypto/KeyStorage.java @@ -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 { diff --git a/desktop/src/main/java/haveno/desktop/main/account/content/password/PasswordView.java b/desktop/src/main/java/haveno/desktop/main/account/content/password/PasswordView.java index e59309c75f..7db3d7ddab 100644 --- a/desktop/src/main/java/haveno/desktop/main/account/content/password/PasswordView.java +++ b/desktop/src/main/java/haveno/desktop/main/account/content/password/PasswordView.java @@ -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 { } 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(); } }