diff options
author | Paul Stewart <pstew@google.com> | 2017-02-03 08:38:16 -0800 |
---|---|---|
committer | Paul Stewart <pstew@google.com> | 2017-02-24 16:33:19 -0800 |
commit | 8757adcc5e1f17354d09b4bacd3abda911974448 (patch) | |
tree | f3133cbe6f017710ac10f4d83460b921cde4b748 /tests | |
parent | 30898043676f0cfd8707bf18c3af0bb3c6b51fd0 (diff) |
Provide SIM identity for PEAP/SIM configurations
Refactor the TelephonyUtil code to take a WifiConfiguration
instead of an EAP method so it can evaluate both the outer and
inner EAP methods. This allows TelephonyUtil to whitelist SIM
authentication methods tunneled under PEAP for SIM authentication
and to provide the proper SIM identity.
Bug: 34835771
Test: Unit tests + manual tests: connect to a PEAP/EAP-SIM AP
Change-Id: I544c58f53bd1fe27fbd34626300928382095ccda
Diffstat (limited to 'tests')
-rw-r--r-- | tests/wifitests/src/com/android/server/wifi/WifiConfigurationTestUtil.java | 9 | ||||
-rw-r--r-- | tests/wifitests/src/com/android/server/wifi/util/TelephonyUtilTest.java | 76 |
2 files changed, 79 insertions, 6 deletions
diff --git a/tests/wifitests/src/com/android/server/wifi/WifiConfigurationTestUtil.java b/tests/wifitests/src/com/android/server/wifi/WifiConfigurationTestUtil.java index 7e60d9c8b..a8c0303b9 100644 --- a/tests/wifitests/src/com/android/server/wifi/WifiConfigurationTestUtil.java +++ b/tests/wifitests/src/com/android/server/wifi/WifiConfigurationTestUtil.java @@ -280,6 +280,15 @@ public class WifiConfigurationTestUtil { return configuration; } + public static WifiConfiguration createEapNetwork(int eapMethod, int phase2Method) { + WifiConfiguration configuration = + generateWifiConfig(TEST_NETWORK_ID, TEST_UID, createNewSSID(), true, true, + null, null, SECURITY_EAP); + configuration.enterpriseConfig.setEapMethod(eapMethod); + configuration.enterpriseConfig.setPhase2Method(phase2Method); + return configuration; + } + public static WifiConfiguration createPasspointNetwork() { WifiConfiguration configuration = generateWifiConfig(TEST_NETWORK_ID, TEST_UID, createNewSSID(), true, true, diff --git a/tests/wifitests/src/com/android/server/wifi/util/TelephonyUtilTest.java b/tests/wifitests/src/com/android/server/wifi/util/TelephonyUtilTest.java index e58d5453b..240096ab3 100644 --- a/tests/wifitests/src/com/android/server/wifi/util/TelephonyUtilTest.java +++ b/tests/wifitests/src/com/android/server/wifi/util/TelephonyUtilTest.java @@ -19,11 +19,13 @@ package com.android.server.wifi.util; import static org.junit.Assert.*; import static org.mockito.Mockito.*; +import android.net.wifi.WifiConfiguration; import android.net.wifi.WifiEnterpriseConfig; import android.telephony.TelephonyManager; import android.test.suitebuilder.annotation.SmallTest; import android.util.Base64; +import com.android.server.wifi.WifiConfigurationTestUtil; import com.android.server.wifi.util.TelephonyUtil.SimAuthRequestData; import com.android.server.wifi.util.TelephonyUtil.SimAuthResponseData; @@ -34,7 +36,6 @@ import org.junit.Test; */ @SmallTest public class TelephonyUtilTest { - @Test public void getSimIdentityEapSim() { TelephonyManager tm = mock(TelephonyManager.class); @@ -42,7 +43,11 @@ public class TelephonyUtilTest { when(tm.getSimState()).thenReturn(TelephonyManager.SIM_STATE_READY); when(tm.getSimOperator()).thenReturn("321456"); assertEquals("13214561234567890@wlan.mnc456.mcc321.3gppnetwork.org", - TelephonyUtil.getSimIdentity(tm, WifiEnterpriseConfig.Eap.SIM)); + TelephonyUtil.getSimIdentity(tm, WifiConfigurationTestUtil.createEapNetwork( + WifiEnterpriseConfig.Eap.SIM, WifiEnterpriseConfig.Phase2.NONE))); + assertEquals("13214561234567890@wlan.mnc456.mcc321.3gppnetwork.org", + TelephonyUtil.getSimIdentity(tm, WifiConfigurationTestUtil.createEapNetwork( + WifiEnterpriseConfig.Eap.PEAP, WifiEnterpriseConfig.Phase2.SIM))); } @Test @@ -52,7 +57,11 @@ public class TelephonyUtilTest { when(tm.getSimState()).thenReturn(TelephonyManager.SIM_STATE_READY); when(tm.getSimOperator()).thenReturn("321456"); assertEquals("03214561234567890@wlan.mnc456.mcc321.3gppnetwork.org", - TelephonyUtil.getSimIdentity(tm, WifiEnterpriseConfig.Eap.AKA)); + TelephonyUtil.getSimIdentity(tm, WifiConfigurationTestUtil.createEapNetwork( + WifiEnterpriseConfig.Eap.AKA, WifiEnterpriseConfig.Phase2.NONE))); + assertEquals("03214561234567890@wlan.mnc456.mcc321.3gppnetwork.org", + TelephonyUtil.getSimIdentity(tm, WifiConfigurationTestUtil.createEapNetwork( + WifiEnterpriseConfig.Eap.PEAP, WifiEnterpriseConfig.Phase2.AKA))); } @Test @@ -62,7 +71,11 @@ public class TelephonyUtilTest { when(tm.getSimState()).thenReturn(TelephonyManager.SIM_STATE_READY); when(tm.getSimOperator()).thenReturn("321456"); assertEquals("63214561234567890@wlan.mnc456.mcc321.3gppnetwork.org", - TelephonyUtil.getSimIdentity(tm, WifiEnterpriseConfig.Eap.AKA_PRIME)); + TelephonyUtil.getSimIdentity(tm, WifiConfigurationTestUtil.createEapNetwork( + WifiEnterpriseConfig.Eap.AKA_PRIME, WifiEnterpriseConfig.Phase2.NONE))); + assertEquals("63214561234567890@wlan.mnc456.mcc321.3gppnetwork.org", + TelephonyUtil.getSimIdentity(tm, WifiConfigurationTestUtil.createEapNetwork( + WifiEnterpriseConfig.Eap.PEAP, WifiEnterpriseConfig.Phase2.AKA_PRIME))); } @Test @@ -72,7 +85,8 @@ public class TelephonyUtilTest { when(tm.getSimState()).thenReturn(TelephonyManager.SIM_STATE_READY); when(tm.getSimOperator()).thenReturn("32156"); assertEquals("1321560123456789@wlan.mnc056.mcc321.3gppnetwork.org", - TelephonyUtil.getSimIdentity(tm, WifiEnterpriseConfig.Eap.SIM)); + TelephonyUtil.getSimIdentity(tm, WifiConfigurationTestUtil.createEapNetwork( + WifiEnterpriseConfig.Eap.SIM, WifiEnterpriseConfig.Phase2.NONE))); } @Test @@ -82,11 +96,61 @@ public class TelephonyUtilTest { when(tm.getSimState()).thenReturn(TelephonyManager.SIM_STATE_UNKNOWN); when(tm.getSimOperator()).thenReturn(null); assertEquals("13214560123456789@wlan.mnc456.mcc321.3gppnetwork.org", - TelephonyUtil.getSimIdentity(tm, WifiEnterpriseConfig.Eap.SIM)); + TelephonyUtil.getSimIdentity(tm, WifiConfigurationTestUtil.createEapNetwork( + WifiEnterpriseConfig.Eap.SIM, WifiEnterpriseConfig.Phase2.NONE))); } + @Test + public void getSimIdentityWithNoTelephonyManager() { + assertEquals(null, TelephonyUtil.getSimIdentity(null, + WifiConfigurationTestUtil.createEapNetwork( + WifiEnterpriseConfig.Eap.SIM, WifiEnterpriseConfig.Phase2.NONE))); + } + @Test + public void getSimIdentityNonTelephonyConfig() { + TelephonyManager tm = mock(TelephonyManager.class); + when(tm.getSubscriberId()).thenReturn("321560123456789"); + when(tm.getSimState()).thenReturn(TelephonyManager.SIM_STATE_READY); + when(tm.getSimOperator()).thenReturn("32156"); + assertEquals(null, TelephonyUtil.getSimIdentity(tm, + WifiConfigurationTestUtil.createEapNetwork( + WifiEnterpriseConfig.Eap.TTLS, WifiEnterpriseConfig.Phase2.SIM))); + assertEquals(null, TelephonyUtil.getSimIdentity(tm, + WifiConfigurationTestUtil.createEapNetwork( + WifiEnterpriseConfig.Eap.PEAP, WifiEnterpriseConfig.Phase2.MSCHAPV2))); + assertEquals(null, TelephonyUtil.getSimIdentity(tm, + WifiConfigurationTestUtil.createEapNetwork( + WifiEnterpriseConfig.Eap.TLS, WifiEnterpriseConfig.Phase2.NONE))); + assertEquals(null, TelephonyUtil.getSimIdentity(tm, new WifiConfiguration())); + } + @Test + public void isSimConfig() { + assertFalse(TelephonyUtil.isSimConfig(null)); + assertFalse(TelephonyUtil.isSimConfig(new WifiConfiguration())); + assertFalse(TelephonyUtil.isSimConfig(WifiConfigurationTestUtil.createOpenNetwork())); + assertFalse(TelephonyUtil.isSimConfig(WifiConfigurationTestUtil.createWepNetwork())); + assertFalse(TelephonyUtil.isSimConfig(WifiConfigurationTestUtil.createPskNetwork())); + assertFalse(TelephonyUtil.isSimConfig(WifiConfigurationTestUtil.createEapNetwork( + WifiEnterpriseConfig.Eap.TTLS, WifiEnterpriseConfig.Phase2.SIM))); + assertFalse(TelephonyUtil.isSimConfig(WifiConfigurationTestUtil.createEapNetwork( + WifiEnterpriseConfig.Eap.TLS, WifiEnterpriseConfig.Phase2.NONE))); + assertFalse(TelephonyUtil.isSimConfig(WifiConfigurationTestUtil.createEapNetwork( + WifiEnterpriseConfig.Eap.PEAP, WifiEnterpriseConfig.Phase2.MSCHAPV2))); + assertTrue(TelephonyUtil.isSimConfig(WifiConfigurationTestUtil.createEapNetwork( + WifiEnterpriseConfig.Eap.SIM, WifiEnterpriseConfig.Phase2.NONE))); + assertTrue(TelephonyUtil.isSimConfig(WifiConfigurationTestUtil.createEapNetwork( + WifiEnterpriseConfig.Eap.AKA, WifiEnterpriseConfig.Phase2.NONE))); + assertTrue(TelephonyUtil.isSimConfig(WifiConfigurationTestUtil.createEapNetwork( + WifiEnterpriseConfig.Eap.AKA_PRIME, WifiEnterpriseConfig.Phase2.NONE))); + assertTrue(TelephonyUtil.isSimConfig(WifiConfigurationTestUtil.createEapNetwork( + WifiEnterpriseConfig.Eap.PEAP, WifiEnterpriseConfig.Phase2.SIM))); + assertTrue(TelephonyUtil.isSimConfig(WifiConfigurationTestUtil.createEapNetwork( + WifiEnterpriseConfig.Eap.PEAP, WifiEnterpriseConfig.Phase2.AKA))); + assertTrue(TelephonyUtil.isSimConfig(WifiConfigurationTestUtil.createEapNetwork( + WifiEnterpriseConfig.Eap.PEAP, WifiEnterpriseConfig.Phase2.AKA_PRIME))); + } /** * Produce a base64 encoded length byte + data. |