Allow 64 char HEX string PSKs in WifiSettingsUi
A check for valid PSKs in the settings UI didnt capture the 64 character HEX string case. Added a check for it. Test: tests/app/src/com/android/settings/wifi/WifiSettingsUiTest.java Test: manual verification Bug: 67492639 Change-Id: Ide738c4a67f23b613883b4a69f8264a0ffb8a0bc
This commit is contained in:
@@ -411,15 +411,23 @@ public class WifiConfigController implements TextWatcher,
|
|||||||
submit.setEnabled(isSubmittable());
|
submit.setEnabled(isSubmittable());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
boolean isValidPsk(String password) {
|
||||||
|
if (password.length() == 64 && password.matches("[0-9A-Fa-f]{64}")) {
|
||||||
|
return true;
|
||||||
|
} else if (password.length() >= 8 && password.length() <= 63) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
boolean isSubmittable() {
|
boolean isSubmittable() {
|
||||||
boolean enabled = false;
|
boolean enabled = false;
|
||||||
boolean passwordInvalid = false;
|
boolean passwordInvalid = false;
|
||||||
|
|
||||||
if (mPasswordView != null
|
if (mPasswordView != null
|
||||||
&& ((mAccessPointSecurity == AccessPoint.SECURITY_WEP
|
&& ((mAccessPointSecurity == AccessPoint.SECURITY_WEP
|
||||||
&& mPasswordView.length() == 0)
|
&& mPasswordView.length() == 0)
|
||||||
|| (mAccessPointSecurity == AccessPoint.SECURITY_PSK
|
|| (mAccessPointSecurity == AccessPoint.SECURITY_PSK
|
||||||
&& (mPasswordView.length() < 8 || mPasswordView.length() > 63)))) {
|
&& !isValidPsk(mPasswordView.getText().toString())))) {
|
||||||
passwordInvalid = true;
|
passwordInvalid = true;
|
||||||
}
|
}
|
||||||
if ((mSsidView != null && mSsidView.length() == 0)
|
if ((mSsidView != null && mSsidView.length() == 0)
|
||||||
|
@@ -55,8 +55,9 @@ public class WifiConfigControllerTest {
|
|||||||
private AccessPoint mAccessPoint;
|
private AccessPoint mAccessPoint;
|
||||||
|
|
||||||
public WifiConfigController mController;
|
public WifiConfigController mController;
|
||||||
|
private static final String HEX_PSK = "01234567012345670123456701234567012345670123456701234567"
|
||||||
// An invalid PSK pass phrase. It is 64 characters long, must not be greater than 63
|
+ "01abcdef";
|
||||||
|
// An invalid ASCII PSK pass phrase. It is 64 characters long, must not be greater than 63
|
||||||
private static final String LONG_PSK =
|
private static final String LONG_PSK =
|
||||||
"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijkl";
|
"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijkl";
|
||||||
// An invalid PSK pass phrase. It is 7 characters long, must be at least 8
|
// An invalid PSK pass phrase. It is 7 characters long, must be at least 8
|
||||||
@@ -140,6 +141,14 @@ public class WifiConfigControllerTest {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void isSubmittable_hexPsk_shouldReturnTrue() {
|
||||||
|
final TextView password = mView.findViewById(R.id.password);
|
||||||
|
password.setText(HEX_PSK);
|
||||||
|
assertThat(mController.isSubmittable()).isTrue();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void isSubmittable_savedConfigZeroLengthPassword_shouldReturnTrue() {
|
public void isSubmittable_savedConfigZeroLengthPassword_shouldReturnTrue() {
|
||||||
final TextView password = mView.findViewById(R.id.password);
|
final TextView password = mView.findViewById(R.id.password);
|
||||||
|
Reference in New Issue
Block a user