diff options
| author | 2020-11-04 06:28:39 +0000 | |
|---|---|---|
| committer | 2020-11-04 06:28:39 +0000 | |
| commit | e9c67a688649ba3acdbd8591b0c2f8ef6bfc36ff (patch) | |
| tree | 8567b8dfbf98ce1634a466262c29aa61f5f5d3f6 | |
| parent | f1bb3b457c9349e4d2c16d889a6aa7a5ebe885cb (diff) | |
| parent | 5ff948a2dfc15b6331afd8fb4cfa681c7f93c901 (diff) | |
Merge "wifi: create an option for the WPA3 Enterprise security type"
| -rw-r--r-- | api/current.txt | 1 | ||||
| -rw-r--r-- | wifi/api/current.txt | 1 | ||||
| -rw-r--r-- | wifi/java/android/net/wifi/WifiConfiguration.java | 20 | ||||
| -rw-r--r-- | wifi/java/android/net/wifi/WifiNetworkSpecifier.java | 10 | ||||
| -rw-r--r-- | wifi/java/android/net/wifi/WifiNetworkSuggestion.java | 10 | ||||
| -rw-r--r-- | wifi/tests/src/android/net/wifi/WifiConfigurationTest.java | 27 |
6 files changed, 50 insertions, 19 deletions
diff --git a/api/current.txt b/api/current.txt index 4fdbc08e9021..2453b6722995 100644 --- a/api/current.txt +++ b/api/current.txt @@ -31410,6 +31410,7 @@ package android.net.wifi { field @Deprecated public String FQDN; field @Deprecated public static final int SECURITY_TYPE_EAP = 3; // 0x3 field @Deprecated public static final int SECURITY_TYPE_EAP_SUITE_B = 5; // 0x5 + field @Deprecated public static final int SECURITY_TYPE_EAP_WPA3_ENTERPRISE = 9; // 0x9 field @Deprecated public static final int SECURITY_TYPE_OPEN = 0; // 0x0 field @Deprecated public static final int SECURITY_TYPE_OWE = 6; // 0x6 field @Deprecated public static final int SECURITY_TYPE_PSK = 2; // 0x2 diff --git a/wifi/api/current.txt b/wifi/api/current.txt index d5ef703253cb..5c4e6157e195 100644 --- a/wifi/api/current.txt +++ b/wifi/api/current.txt @@ -105,6 +105,7 @@ package android.net.wifi { field @Deprecated public String FQDN; field @Deprecated public static final int SECURITY_TYPE_EAP = 3; // 0x3 field @Deprecated public static final int SECURITY_TYPE_EAP_SUITE_B = 5; // 0x5 + field @Deprecated public static final int SECURITY_TYPE_EAP_WPA3_ENTERPRISE = 9; // 0x9 field @Deprecated public static final int SECURITY_TYPE_OPEN = 0; // 0x0 field @Deprecated public static final int SECURITY_TYPE_OWE = 6; // 0x6 field @Deprecated public static final int SECURITY_TYPE_PSK = 2; // 0x2 diff --git a/wifi/java/android/net/wifi/WifiConfiguration.java b/wifi/java/android/net/wifi/WifiConfiguration.java index 9298c1ea7836..34a6938097ce 100644 --- a/wifi/java/android/net/wifi/WifiConfiguration.java +++ b/wifi/java/android/net/wifi/WifiConfiguration.java @@ -447,6 +447,8 @@ public class WifiConfiguration implements Parcelable { public static final int SECURITY_TYPE_WAPI_PSK = 7; /** Security type for a WAPI Certificate network. */ public static final int SECURITY_TYPE_WAPI_CERT = 8; + /** Security type for a WPA3-Enterprise network. */ + public static final int SECURITY_TYPE_EAP_WPA3_ENTERPRISE = 9; /** * Security types we support. @@ -462,7 +464,8 @@ public class WifiConfiguration implements Parcelable { SECURITY_TYPE_EAP_SUITE_B, SECURITY_TYPE_OWE, SECURITY_TYPE_WAPI_PSK, - SECURITY_TYPE_WAPI_CERT + SECURITY_TYPE_WAPI_CERT, + SECURITY_TYPE_EAP_WPA3_ENTERPRISE, }) public @interface SecurityType {} @@ -478,8 +481,9 @@ public class WifiConfiguration implements Parcelable { * {@link #SECURITY_TYPE_SAE}, * {@link #SECURITY_TYPE_EAP_SUITE_B}, * {@link #SECURITY_TYPE_OWE}, - * {@link #SECURITY_TYPE_WAPI_PSK}, or - * {@link #SECURITY_TYPE_WAPI_CERT} + * {@link #SECURITY_TYPE_WAPI_PSK}, + * {@link #SECURITY_TYPE_WAPI_CERT}, + * {@link #SECURITY_TYPE_EAP_WPA3_ENTERPRISE} */ public void setSecurityParams(@SecurityType int securityType) { // Clear all the bitsets. @@ -555,6 +559,16 @@ public class WifiConfiguration implements Parcelable { allowedPairwiseCiphers.set(WifiConfiguration.PairwiseCipher.SMS4); allowedGroupCiphers.set(WifiConfiguration.GroupCipher.SMS4); break; + case SECURITY_TYPE_EAP_WPA3_ENTERPRISE: + allowedKeyManagement.set(WifiConfiguration.KeyMgmt.WPA_EAP); + allowedKeyManagement.set(WifiConfiguration.KeyMgmt.IEEE8021X); + allowedProtocols.set(WifiConfiguration.Protocol.RSN); + allowedPairwiseCiphers.set(WifiConfiguration.PairwiseCipher.CCMP); + allowedPairwiseCiphers.set(WifiConfiguration.PairwiseCipher.GCMP_256); + allowedGroupCiphers.set(WifiConfiguration.GroupCipher.CCMP); + allowedGroupCiphers.set(WifiConfiguration.GroupCipher.GCMP_256); + requirePmf = true; + break; default: throw new IllegalArgumentException("unknown security type " + securityType); } diff --git a/wifi/java/android/net/wifi/WifiNetworkSpecifier.java b/wifi/java/android/net/wifi/WifiNetworkSpecifier.java index 35853c0862c3..f5ffd93d5fb6 100644 --- a/wifi/java/android/net/wifi/WifiNetworkSpecifier.java +++ b/wifi/java/android/net/wifi/WifiNetworkSpecifier.java @@ -373,14 +373,8 @@ public final class WifiNetworkSpecifier extends NetworkSpecifier implements Parc configuration.setSecurityParams(WifiConfiguration.SECURITY_TYPE_EAP_SUITE_B); } else { // WPA3-Enterprise - configuration.setSecurityParams(WifiConfiguration.SECURITY_TYPE_EAP); - configuration.allowedProtocols.set(WifiConfiguration.Protocol.RSN); - configuration.allowedPairwiseCiphers.set(WifiConfiguration.PairwiseCipher.CCMP); - configuration.allowedPairwiseCiphers.set( - WifiConfiguration.PairwiseCipher.GCMP_256); - configuration.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.CCMP); - configuration.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.GCMP_256); - configuration.requirePmf = true; + configuration.setSecurityParams( + WifiConfiguration.SECURITY_TYPE_EAP_WPA3_ENTERPRISE); } configuration.enterpriseConfig = mWpa3EnterpriseConfig; } else if (mIsEnhancedOpen) { // OWE network diff --git a/wifi/java/android/net/wifi/WifiNetworkSuggestion.java b/wifi/java/android/net/wifi/WifiNetworkSuggestion.java index dc6ec907ab95..dc5189724c25 100644 --- a/wifi/java/android/net/wifi/WifiNetworkSuggestion.java +++ b/wifi/java/android/net/wifi/WifiNetworkSuggestion.java @@ -802,14 +802,8 @@ public final class WifiNetworkSuggestion implements Parcelable { configuration.setSecurityParams(WifiConfiguration.SECURITY_TYPE_EAP_SUITE_B); } else { // WPA3-Enterprise - configuration.setSecurityParams(WifiConfiguration.SECURITY_TYPE_EAP); - configuration.allowedProtocols.set(WifiConfiguration.Protocol.RSN); - configuration.allowedPairwiseCiphers.set(WifiConfiguration.PairwiseCipher.CCMP); - configuration.allowedPairwiseCiphers.set( - WifiConfiguration.PairwiseCipher.GCMP_256); - configuration.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.CCMP); - configuration.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.GCMP_256); - configuration.requirePmf = true; + configuration.setSecurityParams( + WifiConfiguration.SECURITY_TYPE_EAP_WPA3_ENTERPRISE); } configuration.enterpriseConfig = mWpa3EnterpriseConfig; } else if (mIsEnhancedOpen) { // OWE network diff --git a/wifi/tests/src/android/net/wifi/WifiConfigurationTest.java b/wifi/tests/src/android/net/wifi/WifiConfigurationTest.java index f09c37d811f9..0a80dc2890ad 100644 --- a/wifi/tests/src/android/net/wifi/WifiConfigurationTest.java +++ b/wifi/tests/src/android/net/wifi/WifiConfigurationTest.java @@ -18,6 +18,7 @@ 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_EAP_WPA3_ENTERPRISE; 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; @@ -581,6 +582,26 @@ public class WifiConfigurationTest { } /** + * Ensure that {@link WifiConfiguration#setSecurityParams(int)} sets up the + * {@link WifiConfiguration} object correctly for WPA3 Enterprise security type. + * @throws Exception + */ + @Test + public void testSetSecurityParamsForWpa3Enterprise() throws Exception { + WifiConfiguration config = new WifiConfiguration(); + + config.setSecurityParams(SECURITY_TYPE_EAP_WPA3_ENTERPRISE); + + assertTrue(config.allowedKeyManagement.get(WifiConfiguration.KeyMgmt.WPA_EAP)); + assertTrue(config.allowedKeyManagement.get(WifiConfiguration.KeyMgmt.IEEE8021X)); + assertTrue(config.allowedPairwiseCiphers.get(WifiConfiguration.PairwiseCipher.CCMP)); + assertTrue(config.allowedPairwiseCiphers.get(WifiConfiguration.PairwiseCipher.GCMP_256)); + assertTrue(config.allowedGroupCiphers.get(WifiConfiguration.GroupCipher.CCMP)); + assertTrue(config.allowedGroupCiphers.get(WifiConfiguration.GroupCipher.GCMP_256)); + assertTrue(config.requirePmf); + } + + /** * Test that the NetworkSelectionStatus Builder returns the same values that was set, and that * calling build multiple times returns different instances. */ @@ -641,6 +662,9 @@ public class WifiConfigurationTest { configuration.setSecurityParams(SECURITY_TYPE_EAP); assertFalse(configuration.needsPreSharedKey()); + configuration.setSecurityParams(SECURITY_TYPE_EAP_WPA3_ENTERPRISE); + assertFalse(configuration.needsPreSharedKey()); + configuration.setSecurityParams(SECURITY_TYPE_EAP_SUITE_B); assertFalse(configuration.needsPreSharedKey()); } @@ -667,6 +691,9 @@ public class WifiConfigurationTest { configuration.setSecurityParams(SECURITY_TYPE_EAP); assertEquals(KeyMgmt.WPA_EAP, configuration.getAuthType()); + configuration.setSecurityParams(SECURITY_TYPE_EAP_WPA3_ENTERPRISE); + assertEquals(KeyMgmt.WPA_EAP, configuration.getAuthType()); + configuration.setSecurityParams(SECURITY_TYPE_EAP_SUITE_B); assertEquals(KeyMgmt.SUITE_B_192, configuration.getAuthType()); |