Merge "WifiConfiguration: Add a method to check if keymgmt needs preShareKey" into rvc-dev
diff --git a/wifi/java/android/net/wifi/WifiConfiguration.java b/wifi/java/android/net/wifi/WifiConfiguration.java
index b110a61..71f0ab8 100644
--- a/wifi/java/android/net/wifi/WifiConfiguration.java
+++ b/wifi/java/android/net/wifi/WifiConfiguration.java
@@ -2973,4 +2973,15 @@
*/
public boolean isMostRecentlyConnected = false;
+ /**
+ * Whether the key mgmt indicates if the WifiConfiguration needs a preSharedKey or not.
+ * @return true if preSharedKey is needed, false otherwise.
+ * @hide
+ */
+ public boolean needsPreSharedKey() {
+ return allowedKeyManagement.get(KeyMgmt.WPA_PSK)
+ || allowedKeyManagement.get(KeyMgmt.SAE)
+ || allowedKeyManagement.get(KeyMgmt.WAPI_PSK);
+ }
+
}
diff --git a/wifi/tests/src/android/net/wifi/WifiConfigurationTest.java b/wifi/tests/src/android/net/wifi/WifiConfigurationTest.java
index e210e4f..a7b6765 100644
--- a/wifi/tests/src/android/net/wifi/WifiConfigurationTest.java
+++ b/wifi/tests/src/android/net/wifi/WifiConfigurationTest.java
@@ -16,9 +16,13 @@
package android.net.wifi;
+import static android.net.wifi.WifiConfiguration.SECURITY_TYPE_EAP;
import static android.net.wifi.WifiConfiguration.SECURITY_TYPE_EAP_SUITE_B;
+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_PSK;
import static org.junit.Assert.assertArrayEquals;
import static org.junit.Assert.assertEquals;
@@ -507,4 +511,30 @@
assertEquals(NetworkSelectionStatus.NETWORK_SELECTION_PERMANENTLY_DISABLED,
status2.getNetworkSelectionStatus());
}
+
+ @Test
+ public void testNeedsPreSharedKey() throws Exception {
+ WifiConfiguration configuration = new WifiConfiguration();
+
+ configuration.setSecurityParams(SECURITY_TYPE_PSK);
+ assertTrue(configuration.needsPreSharedKey());
+
+ configuration.setSecurityParams(SECURITY_TYPE_SAE);
+ assertTrue(configuration.needsPreSharedKey());
+
+ configuration.setSecurityParams(SECURITY_TYPE_WAPI_PSK);
+ assertTrue(configuration.needsPreSharedKey());
+
+ configuration.setSecurityParams(SECURITY_TYPE_OPEN);
+ assertFalse(configuration.needsPreSharedKey());
+
+ configuration.setSecurityParams(SECURITY_TYPE_OWE);
+ assertFalse(configuration.needsPreSharedKey());
+
+ configuration.setSecurityParams(SECURITY_TYPE_EAP);
+ assertFalse(configuration.needsPreSharedKey());
+
+ configuration.setSecurityParams(SECURITY_TYPE_EAP_SUITE_B);
+ assertFalse(configuration.needsPreSharedKey());
+ }
}