diff options
author | Vinay Gannevaram <quic_vganneva@quicinc.com> | 2019-11-19 18:36:00 +0530 |
---|---|---|
committer | Hai Shalom <haishalom@google.com> | 2019-12-03 15:17:30 +0000 |
commit | fd027ad997449055483ab3b40700dbbdd87143c7 (patch) | |
tree | acb95e220a7fd8e6c36f7e2321fecc18fc627652 /tests | |
parent | ff23d602c7a925a7aef87f1f7c3d08e67ad31a5e (diff) |
Wifi: Fix connectivity issues with PSK-SHA256+SAE mode APs
Current PSK-SAE transition mode network identifier check using "PSK+SAE"
sub-string but the sub-string not able to classify "PSK-SHA256+SAE" APs
as PSK-SAE transition mode network. Due to this DUT cannot connect to
such APs in PSK mode because the framework always targets the highest
security.
To resolve the issue consider network having both "PSK" and "SAE" sub-
strings as PSK-SAE transition mode network.
Also, added unit tests.
Bug: 144773602
Bug: 144753662
Bug: 144737141
Test: atest ScanResultUtilTest
Change-Id: Ida297a162edbed757556475dd4a9b75050054350
Merged-In: I2de88c7f4655de3f9946333fd4002e4b23749db8
Signed-off-by: Vinay Gannevaram <quic_vganneva@quicinc.com>
Diffstat (limited to 'tests')
-rw-r--r-- | tests/wifitests/src/com/android/server/wifi/util/ScanResultUtilTest.java | 76 |
1 files changed, 76 insertions, 0 deletions
diff --git a/tests/wifitests/src/com/android/server/wifi/util/ScanResultUtilTest.java b/tests/wifitests/src/com/android/server/wifi/util/ScanResultUtilTest.java index 45adffd1d..266a2ce23 100644 --- a/tests/wifitests/src/com/android/server/wifi/util/ScanResultUtilTest.java +++ b/tests/wifitests/src/com/android/server/wifi/util/ScanResultUtilTest.java @@ -116,6 +116,82 @@ public class ScanResultUtilTest { assertTrue(config.allowedKeyManagement.get(WifiConfiguration.KeyMgmt.IEEE8021X)); } + /** + * Test that a PSK-SHA256+SAE network is detected as transition mode + */ + @Test + public void testPskSha256SaeTransitionModeCheck() { + final String ssid = "WPA3-Transition"; + String caps = "[WPA2-FT/PSK-CCMP][RSN-FT/PSK+PSK-SHA256+SAE+FT/SAE-CCMP][ESS][WPS]"; + + ScanResult input = new ScanResult(WifiSsid.createFromAsciiEncoded(ssid), ssid, + "ab:cd:01:ef:45:89", 1245, 0, caps, -78, 2450, 1025, 22, 33, 20, 0, + 0, true); + + input.informationElements = new InformationElement[] { + createIE(InformationElement.EID_SSID, ssid.getBytes(StandardCharsets.UTF_8)) + }; + + assertTrue(ScanResultUtil.isScanResultForPskSaeTransitionNetwork(input)); + } + + /** + * Test that a PSK+SAE network is detected as transition mode + */ + @Test + public void testPskSaeTransitionModeCheck() { + final String ssid = "WPA3-Transition"; + String caps = "[WPA2-FT/PSK+PSK+SAE+FT/SAE-CCMP][ESS][WPS]"; + + ScanResult input = new ScanResult(WifiSsid.createFromAsciiEncoded(ssid), ssid, + "ab:cd:01:ef:45:89", 1245, 0, caps, -78, 2450, 1025, 22, 33, 20, 0, + 0, true); + + input.informationElements = new InformationElement[] { + createIE(InformationElement.EID_SSID, ssid.getBytes(StandardCharsets.UTF_8)) + }; + + assertTrue(ScanResultUtil.isScanResultForPskSaeTransitionNetwork(input)); + } + + /** + * Test that a PSK network is not detected as transition mode + */ + @Test + public void testPskNotInTransitionModeCheck() { + final String ssid = "WPA2-Network"; + String caps = "[WPA2-FT/PSK+PSK][ESS][WPS]"; + + ScanResult input = new ScanResult(WifiSsid.createFromAsciiEncoded(ssid), ssid, + "ab:cd:01:ef:45:89", 1245, 0, caps, -78, 2450, 1025, 22, 33, 20, 0, + 0, true); + + input.informationElements = new InformationElement[] { + createIE(InformationElement.EID_SSID, ssid.getBytes(StandardCharsets.UTF_8)) + }; + + assertFalse(ScanResultUtil.isScanResultForPskSaeTransitionNetwork(input)); + } + + /** + * Test that an SAE network is not detected as transition mode + */ + @Test + public void testSaeNotInTransitionModeCheck() { + final String ssid = "WPA3-Network"; + String caps = "[WPA2-FT/SAE+SAE][ESS][WPS]"; + + ScanResult input = new ScanResult(WifiSsid.createFromAsciiEncoded(ssid), ssid, + "ab:cd:01:ef:45:89", 1245, 0, caps, -78, 2450, 1025, 22, 33, 20, 0, + 0, true); + + input.informationElements = new InformationElement[] { + createIE(InformationElement.EID_SSID, ssid.getBytes(StandardCharsets.UTF_8)) + }; + + assertFalse(ScanResultUtil.isScanResultForPskSaeTransitionNetwork(input)); + } + private static InformationElement createIE(int id, byte[] bytes) { InformationElement ie = new InformationElement(); ie.id = id; |