summaryrefslogtreecommitdiffstats
path: root/service/java/com/android/server/wifi/WifiMonitor.java
diff options
context:
space:
mode:
authorHonore Tricot <honorex.tricot@intel.com>2014-11-12 17:15:42 +0100
committerVinit Deshpande <vinitd@google.com>2015-03-25 15:08:17 -0700
commitf97140d51d14ce0659d381f443c08dbd94dfea28 (patch)
treefd9221f92b5efe93f217315be793fdaa7c1ac90b /service/java/com/android/server/wifi/WifiMonitor.java
parentad607d99c372160c7d4b38e755e1b47d6419856e (diff)
downloadframeworks_opt_net_wifi-f97140d51d14ce0659d381f443c08dbd94dfea28.tar.gz
frameworks_opt_net_wifi-f97140d51d14ce0659d381f443c08dbd94dfea28.tar.bz2
frameworks_opt_net_wifi-f97140d51d14ce0659d381f443c08dbd94dfea28.zip
WIFI: EAP-AKA End-To-End
- Decode UMTS-AUTH form of CTRL-REQ-SIM request - manage UMTS authentication - cleanup useless code - make Native API simAuthResponse usable for both EAP-SIM and EAP-AKA Change-Id: Ie24c59d87ba2e6a17a0da25fa3d58803aab423f9 Signed-off-by: Honore Tricot <honorex.tricot@intel.com> Signed-off-by: Abdelmajid MLAYEH <abdelmajidx.mlayeh@intel.com>
Diffstat (limited to 'service/java/com/android/server/wifi/WifiMonitor.java')
-rw-r--r--service/java/com/android/server/wifi/WifiMonitor.java36
1 files changed, 29 insertions, 7 deletions
diff --git a/service/java/com/android/server/wifi/WifiMonitor.java b/service/java/com/android/server/wifi/WifiMonitor.java
index 97e8824..227c8d2 100644
--- a/service/java/com/android/server/wifi/WifiMonitor.java
+++ b/service/java/com/android/server/wifi/WifiMonitor.java
@@ -278,6 +278,19 @@ public class WifiMonitor {
Pattern.compile("SIM-([0-9]*):GSM-AUTH((:[0-9a-f]+)+) needed for SSID (.+)");
/**
+ * Regex pattern for extracting an external 3G sim authentication request from a string.
+ * Matches a strings like the following:<pre>
+ * CTRL-REQ-SIM-<network id>:UMTS-AUTH:<RAND>:<AUTN> needed for SSID <SSID>
+ * This pattern should find
+ * 1 - id
+ * 2 - Rand
+ * 3 - Autn
+ * 4 - SSID
+ */
+ private static Pattern mRequestUmtsAuthPattern =
+ Pattern.compile("SIM-([0-9]*):UMTS-AUTH:([0-9a-f]+):([0-9a-f]+) needed for SSID (.+)");
+
+ /**
* Regex pattern for extracting SSIDs from request identity string.
* Matches a strings like the following:<pre>
* CTRL-REQ-IDENTITY-xx:Identity needed for SSID XXXX</pre>
@@ -1248,14 +1261,23 @@ public class WifiMonitor {
}
mStateMachine.sendMessage(SUP_REQUEST_IDENTITY, eventLogCounter, reason, SSID);
} else if (requestName.startsWith(SIM_STR)) {
- Matcher match = mRequestGsmAuthPattern.matcher(requestName);
- if (match.find()) {
- WifiStateMachine.SimAuthRequestData data =
- new WifiStateMachine.SimAuthRequestData();
- data.networkId = Integer.parseInt(match.group(1));
+ Matcher matchGsm = mRequestGsmAuthPattern.matcher(requestName);
+ Matcher matchUmts = mRequestUmtsAuthPattern.matcher(requestName);
+ WifiStateMachine.SimAuthRequestData data =
+ new WifiStateMachine.SimAuthRequestData();
+ if (matchGsm.find()) {
+ data.networkId = Integer.parseInt(matchGsm.group(1));
data.protocol = WifiEnterpriseConfig.Eap.SIM;
- data.ssid = match.group(4);
- data.challenges = match.group(2).split(":");
+ data.ssid = matchGsm.group(4);
+ data.data = matchGsm.group(2).split(":");
+ mStateMachine.sendMessage(SUP_REQUEST_SIM_AUTH, data);
+ } else if (matchUmts.find()) {
+ data.networkId = Integer.parseInt(matchUmts.group(1));
+ data.protocol = WifiEnterpriseConfig.Eap.AKA;
+ data.ssid = matchUmts.group(4);
+ data.data = new String[2];
+ data.data[0] = matchUmts.group(2);
+ data.data[1] = matchUmts.group(3);
mStateMachine.sendMessage(SUP_REQUEST_SIM_AUTH, data);
} else {
Log.e(TAG, "couldn't parse SIM auth request - " + requestName);