wifi setting: Add psk length check

Frameworks move psk ascii password length check from API level to
framework internal. Add the check code in Setting side to avoid breaking
the unit test.

Bug: 223513510
Test: atest -c WifiUtilsTest
Change-Id: I7c78eb367fdcbbc11bbb7169ba8f2edc720ad071
This commit is contained in:
Les Lee
2022-03-09 16:28:30 +08:00
parent a92e6d8987
commit 3bb2a81042

View File

@@ -41,6 +41,8 @@ public class WifiUtils extends com.android.settingslib.wifi.WifiUtils {
private static final int SSID_ASCII_MIN_LENGTH = 1;
private static final int SSID_ASCII_MAX_LENGTH = 32;
private static final int PSK_PASSPHRASE_ASCII_MIN_LENGTH = 8;
private static final int PSK_PASSPHRASE_ASCII_MAX_LENGTH = 63;
public static boolean isSSIDTooLong(String ssid) {
if (TextUtils.isEmpty(ssid)) {
@@ -62,6 +64,13 @@ public class WifiUtils extends com.android.settingslib.wifi.WifiUtils {
public static boolean isHotspotPasswordValid(String password, int securityType) {
final SoftApConfiguration.Builder configBuilder = new SoftApConfiguration.Builder();
try {
if (securityType == SoftApConfiguration.SECURITY_TYPE_WPA2_PSK
|| securityType == SoftApConfiguration.SECURITY_TYPE_WPA3_SAE_TRANSITION) {
if (password.length() < PSK_PASSPHRASE_ASCII_MIN_LENGTH
|| password.length() > PSK_PASSPHRASE_ASCII_MAX_LENGTH) {
return false;
}
}
configBuilder.setPassphrase(password, securityType);
} catch (IllegalArgumentException e) {
return false;