Merge "Allow 64 char HEX string PSKs in WifiSettingsUi" into oc-mr1-dev am: 85f59ff42d

am: 91aeed6f55

Change-Id: I65d9d59816f9a1b248bfa9bcf7e801260f60bc01
This commit is contained in:
Glen Kuhne
2017-10-12 19:14:50 +00:00
committed by android-build-merger
2 changed files with 21 additions and 4 deletions

View File

@@ -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)

View File

@@ -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);