diff --git a/gui/src/main/java/io/bitsquare/gui/main/account/content/password/PasswordView.java b/gui/src/main/java/io/bitsquare/gui/main/account/content/password/PasswordView.java index 79f2ec1302..1052a7c30c 100644 --- a/gui/src/main/java/io/bitsquare/gui/main/account/content/password/PasswordView.java +++ b/gui/src/main/java/io/bitsquare/gui/main/account/content/password/PasswordView.java @@ -40,6 +40,7 @@ import org.bitcoinj.crypto.KeyCrypterScrypt; import javax.inject.Inject; +import static com.google.inject.internal.util.$Preconditions.checkArgument; import static io.bitsquare.gui.util.FormBuilder.*; @FxmlView @@ -93,6 +94,9 @@ public class PasswordView extends ActivatableView { setText(); pwButton.setOnAction(e -> { + String password = passwordField.getText(); + checkArgument(password.length() < 50, "Password must be less then 50 characters."); + pwButton.setDisable(true); deriveStatusLabel.setText("Derive key from password"); progressIndicator.setProgress(-1); @@ -105,7 +109,7 @@ public class PasswordView extends ActivatableView { else keyCrypterScrypt = ScryptUtil.getKeyCrypterScrypt(); - ScryptUtil.deriveKeyWithScrypt(keyCrypterScrypt, passwordField.getText(), aesKey -> { + ScryptUtil.deriveKeyWithScrypt(keyCrypterScrypt, password, aesKey -> { deriveStatusLabel.setText(""); progressIndicator.setVisible(false); diff --git a/gui/src/main/java/io/bitsquare/gui/util/validation/PasswordValidator.java b/gui/src/main/java/io/bitsquare/gui/util/validation/PasswordValidator.java index 2af6515d33..b94b8691ba 100644 --- a/gui/src/main/java/io/bitsquare/gui/util/validation/PasswordValidator.java +++ b/gui/src/main/java/io/bitsquare/gui/util/validation/PasswordValidator.java @@ -40,10 +40,12 @@ public final class PasswordValidator extends InputValidator { } private ValidationResult validateMinLength(String input) { - if (input.length() > 7) - return new ValidationResult(true); - else + if (input.length() < 8) return new ValidationResult(false, BSResources.get("validation.passwordTooShort")); + else if (input.length() > 50) + return new ValidationResult(false, BSResources.get("validation.passwordTooLong")); + else + return new ValidationResult(true); } }