summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorPaul Stewart <pstew@google.com>2017-02-03 08:38:16 -0800
committerPaul Stewart <pstew@google.com>2017-02-24 16:33:19 -0800
commit8757adcc5e1f17354d09b4bacd3abda911974448 (patch)
treef3133cbe6f017710ac10f4d83460b921cde4b748 /tests
parent30898043676f0cfd8707bf18c3af0bb3c6b51fd0 (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.java9
-rw-r--r--tests/wifitests/src/com/android/server/wifi/util/TelephonyUtilTest.java76
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.