summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author TreeHugger Robot <treehugger-gerrit@google.com> 2020-09-30 05:10:21 +0000
committer Android (Google) Code Review <android-gerrit@google.com> 2020-09-30 05:10:21 +0000
commit6a512dadfcc41ee70431fbe3e476804513721641 (patch)
tree3010fefaf5773bb5634ef775052d8d8347e0de00
parent5d7e9937abbbe4aabced8066bf8207f8ae9d3c73 (diff)
parent452d4ff8ff1bf896fecb70744f5396f8951981b2 (diff)
Merge "Fix WifiConfiguration#getAuthType" into mainline-prod
-rw-r--r--wifi/java/android/net/wifi/WifiConfiguration.java13
-rw-r--r--wifi/tests/src/android/net/wifi/WifiConfigurationTest.java49
2 files changed, 61 insertions, 1 deletions
diff --git a/wifi/java/android/net/wifi/WifiConfiguration.java b/wifi/java/android/net/wifi/WifiConfiguration.java
index 71f0ab8087ab..7352dae06af9 100644
--- a/wifi/java/android/net/wifi/WifiConfiguration.java
+++ b/wifi/java/android/net/wifi/WifiConfiguration.java
@@ -2491,7 +2491,18 @@ public class WifiConfiguration implements Parcelable {
@KeyMgmt.KeyMgmtScheme
public int getAuthType() {
if (allowedKeyManagement.cardinality() > 1) {
- throw new IllegalStateException("More than one auth type set");
+ if (allowedKeyManagement.get(KeyMgmt.WPA_EAP)) {
+ if (allowedKeyManagement.cardinality() == 2
+ && allowedKeyManagement.get(KeyMgmt.IEEE8021X)) {
+ return KeyMgmt.WPA_EAP;
+ }
+ if (allowedKeyManagement.cardinality() == 3
+ && allowedKeyManagement.get(KeyMgmt.IEEE8021X)
+ && allowedKeyManagement.get(KeyMgmt.SUITE_B_192)) {
+ return KeyMgmt.SUITE_B_192;
+ }
+ }
+ throw new IllegalStateException("Invalid auth type set: " + allowedKeyManagement);
}
if (allowedKeyManagement.get(KeyMgmt.WPA_PSK)) {
return KeyMgmt.WPA_PSK;
diff --git a/wifi/tests/src/android/net/wifi/WifiConfigurationTest.java b/wifi/tests/src/android/net/wifi/WifiConfigurationTest.java
index a7b6765e886a..62220a6237b1 100644
--- a/wifi/tests/src/android/net/wifi/WifiConfigurationTest.java
+++ b/wifi/tests/src/android/net/wifi/WifiConfigurationTest.java
@@ -22,6 +22,7 @@ import static android.net.wifi.WifiConfiguration.SECURITY_TYPE_OPEN;
import static android.net.wifi.WifiConfiguration.SECURITY_TYPE_OWE;
import static android.net.wifi.WifiConfiguration.SECURITY_TYPE_PSK;
import static android.net.wifi.WifiConfiguration.SECURITY_TYPE_SAE;
+import static android.net.wifi.WifiConfiguration.SECURITY_TYPE_WAPI_CERT;
import static android.net.wifi.WifiConfiguration.SECURITY_TYPE_WAPI_PSK;
import static org.junit.Assert.assertArrayEquals;
@@ -537,4 +538,52 @@ public class WifiConfigurationTest {
configuration.setSecurityParams(SECURITY_TYPE_EAP_SUITE_B);
assertFalse(configuration.needsPreSharedKey());
}
+
+ @Test
+ public void testGetAuthType() throws Exception {
+ WifiConfiguration configuration = new WifiConfiguration();
+
+ configuration.setSecurityParams(SECURITY_TYPE_PSK);
+ assertEquals(KeyMgmt.WPA_PSK, configuration.getAuthType());
+
+ configuration.setSecurityParams(SECURITY_TYPE_SAE);
+ assertEquals(KeyMgmt.SAE, configuration.getAuthType());
+
+ configuration.setSecurityParams(SECURITY_TYPE_WAPI_PSK);
+ assertEquals(KeyMgmt.WAPI_PSK, configuration.getAuthType());
+
+ configuration.setSecurityParams(SECURITY_TYPE_OPEN);
+ assertEquals(KeyMgmt.NONE, configuration.getAuthType());
+
+ configuration.setSecurityParams(SECURITY_TYPE_OWE);
+ assertEquals(KeyMgmt.OWE, configuration.getAuthType());
+
+ configuration.setSecurityParams(SECURITY_TYPE_EAP);
+ assertEquals(KeyMgmt.WPA_EAP, configuration.getAuthType());
+
+ configuration.setSecurityParams(SECURITY_TYPE_EAP_SUITE_B);
+ assertEquals(KeyMgmt.SUITE_B_192, configuration.getAuthType());
+
+ configuration.setSecurityParams(SECURITY_TYPE_WAPI_CERT);
+ assertEquals(KeyMgmt.WAPI_CERT, configuration.getAuthType());
+ }
+
+ @Test (expected = IllegalStateException.class)
+ public void testGetAuthTypeFailure1() throws Exception {
+ WifiConfiguration configuration = new WifiConfiguration();
+
+ configuration.setSecurityParams(SECURITY_TYPE_PSK);
+ configuration.allowedKeyManagement.set(KeyMgmt.IEEE8021X);
+ configuration.getAuthType();
+ }
+
+ @Test (expected = IllegalStateException.class)
+ public void testGetAuthTypeFailure2() throws Exception {
+ WifiConfiguration configuration = new WifiConfiguration();
+
+ configuration.allowedKeyManagement.set(KeyMgmt.IEEE8021X);
+ configuration.allowedKeyManagement.set(KeyMgmt.WPA_EAP);
+ configuration.allowedKeyManagement.set(KeyMgmt.SAE);
+ configuration.getAuthType();
+ }
}