From f75d7e6f79fafe05747e885152d9fc3d9cfcfa87 Mon Sep 17 00:00:00 2001 From: Arc Wang Date: Thu, 12 Dec 2019 15:59:33 +0800 Subject: [PATCH] [Wi-Fi] Should not downgrade the security to connect an OWE access point For an OWE transition mode AccessPoint, it returns the security the device can support. So an OWE transition mode AP should not be affected by the bug. For an OWE AP and a device not supports OWE, this bug may let the device try to connect to the OWE AP with SECURITY_NONE. Bug: 146105831 Test: atest AccessPointTest Change-Id: I6809aed76e399db3e3c2cbebf0bd44ebdf490755 --- .../android/settingslib/wifi/AccessPoint.java | 2 +- .../settingslib/wifi/AccessPointTest.java | 17 +++++++++++++++++ 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/packages/SettingsLib/src/com/android/settingslib/wifi/AccessPoint.java b/packages/SettingsLib/src/com/android/settingslib/wifi/AccessPoint.java index 49e214beaa1ec..443543b89a66b 100644 --- a/packages/SettingsLib/src/com/android/settingslib/wifi/AccessPoint.java +++ b/packages/SettingsLib/src/com/android/settingslib/wifi/AccessPoint.java @@ -1395,7 +1395,7 @@ public class AccessPoint implements Comparable { mConfig = new WifiConfiguration(); mConfig.SSID = AccessPoint.convertToQuotedString(ssid); - if (security == SECURITY_NONE || !getWifiManager().isEasyConnectSupported()) { + if (security == SECURITY_NONE) { mConfig.allowedKeyManagement.set(KeyMgmt.NONE); } else { mConfig.allowedKeyManagement.set(KeyMgmt.OWE); diff --git a/packages/SettingsLib/tests/integ/src/com/android/settingslib/wifi/AccessPointTest.java b/packages/SettingsLib/tests/integ/src/com/android/settingslib/wifi/AccessPointTest.java index 2a7050651c6d8..3818057e85359 100644 --- a/packages/SettingsLib/tests/integ/src/com/android/settingslib/wifi/AccessPointTest.java +++ b/packages/SettingsLib/tests/integ/src/com/android/settingslib/wifi/AccessPointTest.java @@ -1713,4 +1713,21 @@ public class AccessPointTest { .setScanResults(new ArrayList(Arrays.asList(scanResult))) .build(); } + + @Test + public void testGenerateOpenNetworkConfig_oweNotSupported_shouldGetCorrectSecurity() { + when(mMockContext.getSystemService(Context.WIFI_SERVICE)).thenReturn(mMockWifiManager); + AccessPoint oweAccessPoint = new TestAccessPointBuilder(mMockContext) + .setSecurity(AccessPoint.SECURITY_OWE).build(); + AccessPoint noneAccessPoint = new TestAccessPointBuilder(mMockContext) + .setSecurity(AccessPoint.SECURITY_NONE).build(); + + oweAccessPoint.generateOpenNetworkConfig(); + noneAccessPoint.generateOpenNetworkConfig(); + + assertThat(oweAccessPoint.getConfig().allowedKeyManagement.get(KeyMgmt.NONE)).isFalse(); + assertThat(oweAccessPoint.getConfig().allowedKeyManagement.get(KeyMgmt.OWE)).isTrue(); + assertThat(noneAccessPoint.getConfig().allowedKeyManagement.get(KeyMgmt.NONE)).isTrue(); + assertThat(noneAccessPoint.getConfig().allowedKeyManagement.get(KeyMgmt.OWE)).isFalse(); + } }