Fix KeyMgmt.OSEN and Eap.UNAUTH_TLS handling

Fix KeyMgmt.OSEN case in WifiConfiguration#getSsidAndSecurityTypeString
and return the correct key when key management type os OSEN.
Fix WifiEnterpriseconfig#saveToSupplicant when checking the
prerequisite conditions to save the network, Eap.UNAUTH_TLS does not
have a phase2 method.

Bug: 150418439
Test: atest WifiConfigurationTest WifiEnterpriseConfigTest
Change-Id: Iafb181c89530f67982541b07d0ac7a4e1eb3378a
This commit is contained in:
Hai Shalom
2020-02-27 17:42:23 -08:00
parent ef8cfa2a46
commit 117cacc93f
3 changed files with 22 additions and 1 deletions

View File

@@ -2550,6 +2550,8 @@ public class WifiConfiguration implements Parcelable {
key = SSID + KeyMgmt.strings[KeyMgmt.WAPI_PSK];
} else if (allowedKeyManagement.get(KeyMgmt.WAPI_CERT)) {
key = SSID + KeyMgmt.strings[KeyMgmt.WAPI_CERT];
} else if (allowedKeyManagement.get(KeyMgmt.OSEN)) {
key = SSID + KeyMgmt.strings[KeyMgmt.OSEN];
} else {
key = SSID + KeyMgmt.strings[KeyMgmt.NONE];
}

View File

@@ -482,7 +482,7 @@ public class WifiEnterpriseConfig implements Parcelable {
return false;
}
if (mEapMethod != Eap.TLS && mPhase2Method != Phase2.NONE) {
if (mEapMethod != Eap.TLS && mEapMethod != Eap.UNAUTH_TLS && mPhase2Method != Phase2.NONE) {
boolean is_autheap = mEapMethod == Eap.TTLS && mPhase2Method == Phase2.GTC;
String prefix = is_autheap ? Phase2.AUTHEAP_PREFIX : Phase2.AUTH_PREFIX;
String value = convertToQuotedString(prefix + Phase2.strings[mPhase2Method]);

View File

@@ -521,4 +521,23 @@ public class WifiEnterpriseConfigTest {
// expected exception.
}
}
/** Verifies that the EAP inner method is reset when we switch to Unauth-TLS */
@Test
public void eapPhase2MethodForUnauthTls() {
// Initially select an EAP method that supports an phase2.
mEnterpriseConfig.setEapMethod(Eap.PEAP);
mEnterpriseConfig.setPhase2Method(Phase2.MSCHAPV2);
assertEquals("PEAP", getSupplicantEapMethod());
assertEquals("\"auth=MSCHAPV2\"", getSupplicantPhase2Method());
// Change the EAP method to another type which supports a phase2.
mEnterpriseConfig.setEapMethod(Eap.TTLS);
assertEquals("TTLS", getSupplicantEapMethod());
assertEquals("\"auth=MSCHAPV2\"", getSupplicantPhase2Method());
// Change the EAP method to Unauth-TLS which does not support a phase2.
mEnterpriseConfig.setEapMethod(Eap.UNAUTH_TLS);
assertEquals(null, getSupplicantPhase2Method());
}
}