[Wi-Fi] Force users to select a phase2 authentication for PEAP & TTLS

To improve security.

Bug: 143601727
Test: make RunSettingsRoboTests ROBOTEST_FILTER=WifiConfigControllerTest
Change-Id: I0cb1ceda6d89a52224f80ea5ffd1af709a6acace
This commit is contained in:
Arc Wang
2019-11-19 17:49:34 +08:00
parent dee1548f61
commit 41661fe69c
4 changed files with 77 additions and 32 deletions

View File

@@ -31,6 +31,7 @@ import android.content.res.Resources;
import android.net.wifi.WifiConfiguration;
import android.net.wifi.WifiEnterpriseConfig;
import android.net.wifi.WifiEnterpriseConfig.Eap;
import android.net.wifi.WifiEnterpriseConfig.Phase2;
import android.net.wifi.WifiManager;
import android.os.ServiceSpecificException;
import android.security.KeyStore;
@@ -542,10 +543,26 @@ public class WifiConfigControllerTest {
mController = new TestWifiConfigController(mConfigUiBase, mView, mAccessPoint,
WifiConfigUiBase.MODE_MODIFY);
final Spinner eapMethodSpinner = mView.findViewById(R.id.method);
final Spinner phase2Spinner = mView.findViewById(R.id.phase2);
WifiConfiguration wifiConfiguration;
eapMethodSpinner.setSelection(Eap.TLS);
// Test EAP method PEAP
eapMethodSpinner.setSelection(Eap.PEAP);
phase2Spinner.setSelection(WifiConfigController.WIFI_PEAP_PHASE2_MSCHAPV2);
wifiConfiguration = mController.getConfig();
assertThat(eapMethodSpinner.getSelectedItemPosition()).isEqualTo(Eap.TLS);
assertThat(wifiConfiguration.enterpriseConfig.getEapMethod()).isEqualTo(Eap.PEAP);
assertThat(wifiConfiguration.enterpriseConfig.getPhase2Method()).isEqualTo(
Phase2.MSCHAPV2);
// Test EAP method TTLS
eapMethodSpinner.setSelection(Eap.TTLS);
phase2Spinner.setSelection(WifiConfigController.WIFI_TTLS_PHASE2_MSCHAPV2);
wifiConfiguration = mController.getConfig();
assertThat(wifiConfiguration.enterpriseConfig.getEapMethod()).isEqualTo(Eap.TTLS);
assertThat(wifiConfiguration.enterpriseConfig.getPhase2Method()).isEqualTo(
Phase2.MSCHAPV2);
}
@Test