Add Hotspot WPA3 Settings

- Add WPA3 SAE security types
  - "WPA3-Personal"
  - "WPA2/WPA3-Personal"

- Verify valid WPA3 password

- Enable QR code scanner for Hotspot WPA3

- Screenshot
  https://screenshot.googleplex.com/B6u54wh8w35Xnyf
  https://screenshot.googleplex.com/8hWHHUTb6UaS9vB

Bug: 167968488
Test:
- Manual Test
- atest WifiTetherSecurityPreferenceControllerTest
- atest WifiUtilsTest

Change-Id: I155ed0bfd187d27ba864f9fb1b78d08c437740f3
This commit is contained in:
Weng Su
2020-09-15 13:24:34 +00:00
parent a12003a9ac
commit e0062af10c
10 changed files with 349 additions and 150 deletions

View File

@@ -21,6 +21,7 @@ import static com.google.common.truth.Truth.assertThat;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;
import android.net.wifi.SoftApConfiguration;
import android.net.wifi.WifiConfiguration;
import androidx.test.ext.junit.runners.AndroidJUnit4;
@@ -46,12 +47,48 @@ public class WifiUtilsTest {
public void testPassword() {
final String longPassword = "123456789012345678901234567890"
+ "1234567890123456789012345678901234567890";
assertThat(WifiUtils.isHotspotWpa2PasswordValid("123")).isFalse();
assertThat(WifiUtils.isHotspotWpa2PasswordValid("12345678")).isTrue();
assertThat(WifiUtils.isHotspotWpa2PasswordValid("1234567890")).isTrue();
assertThat(WifiUtils.isHotspotWpa2PasswordValid(longPassword)).isFalse();
assertThat(WifiUtils.isHotspotWpa2PasswordValid("")).isFalse();
assertThat(WifiUtils.isHotspotWpa2PasswordValid("€¥£")).isFalse();
assertThat(WifiUtils.isHotspotPasswordValid("123",
SoftApConfiguration.SECURITY_TYPE_WPA2_PSK)).isFalse();
assertThat(WifiUtils.isHotspotPasswordValid("12345678",
SoftApConfiguration.SECURITY_TYPE_WPA2_PSK)).isTrue();
assertThat(WifiUtils.isHotspotPasswordValid("1234567890",
SoftApConfiguration.SECURITY_TYPE_WPA2_PSK)).isTrue();
assertThat(WifiUtils.isHotspotPasswordValid(longPassword,
SoftApConfiguration.SECURITY_TYPE_WPA2_PSK)).isFalse();
assertThat(WifiUtils.isHotspotPasswordValid("",
SoftApConfiguration.SECURITY_TYPE_WPA2_PSK)).isFalse();
assertThat(WifiUtils.isHotspotPasswordValid("€¥£",
SoftApConfiguration.SECURITY_TYPE_WPA2_PSK)).isFalse();
// The WPA3_SAE_TRANSITION password limitation should be same as WPA2_PSK
assertThat(WifiUtils.isHotspotPasswordValid("123",
SoftApConfiguration.SECURITY_TYPE_WPA3_SAE_TRANSITION)).isFalse();
assertThat(WifiUtils.isHotspotPasswordValid("12345678",
SoftApConfiguration.SECURITY_TYPE_WPA3_SAE_TRANSITION)).isTrue();
assertThat(WifiUtils.isHotspotPasswordValid("1234567890",
SoftApConfiguration.SECURITY_TYPE_WPA3_SAE_TRANSITION)).isTrue();
assertThat(WifiUtils.isHotspotPasswordValid(longPassword,
SoftApConfiguration.SECURITY_TYPE_WPA3_SAE_TRANSITION)).isFalse();
assertThat(WifiUtils.isHotspotPasswordValid("",
SoftApConfiguration.SECURITY_TYPE_WPA3_SAE_TRANSITION)).isFalse();
assertThat(WifiUtils.isHotspotPasswordValid("€¥£",
SoftApConfiguration.SECURITY_TYPE_WPA3_SAE_TRANSITION)).isFalse();
// The WA3_SAE password is requested that length > 1 only.
assertThat(WifiUtils.isHotspotPasswordValid("",
SoftApConfiguration.SECURITY_TYPE_WPA3_SAE)).isFalse();
assertThat(WifiUtils.isHotspotPasswordValid("1",
SoftApConfiguration.SECURITY_TYPE_WPA3_SAE)).isTrue();
assertThat(WifiUtils.isHotspotPasswordValid("123",
SoftApConfiguration.SECURITY_TYPE_WPA3_SAE)).isTrue();
assertThat(WifiUtils.isHotspotPasswordValid("12345678",
SoftApConfiguration.SECURITY_TYPE_WPA3_SAE)).isTrue();
assertThat(WifiUtils.isHotspotPasswordValid("1234567890",
SoftApConfiguration.SECURITY_TYPE_WPA3_SAE)).isTrue();
assertThat(WifiUtils.isHotspotPasswordValid(longPassword,
SoftApConfiguration.SECURITY_TYPE_WPA3_SAE)).isTrue();
assertThat(WifiUtils.isHotspotPasswordValid("€¥£",
SoftApConfiguration.SECURITY_TYPE_WPA3_SAE)).isTrue();
}
@Test