Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 117cacc9 authored by Hai Shalom's avatar Hai Shalom
Browse files

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
parent ef8cfa2a
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -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];
        }
+1 −1
Original line number Diff line number Diff line
@@ -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]);
+19 −0
Original line number Diff line number Diff line
@@ -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());
    }
}