diff options
author | Jimmy Chen <jimmycmchen@google.com> | 2020-12-11 15:59:43 +0800 |
---|---|---|
committer | Jimmy Chen <jimmycmchen@google.com> | 2020-12-22 13:54:14 +0800 |
commit | 8d0bb8682d18edeb765d633112af3901b211bfd6 (patch) | |
tree | a0f838b6bbf8a44cf64fd9f6be06cc12853bba23 /wifi/java | |
parent | 2a9790b42e054c11c5a73a012cf31f836219f4a9 (diff) |
wifi: add getSecurityType and createSecurityParamsBySecurityType methods
For backup/restore, it needs to know security type and create a security
params from the security type.
Bug: 162685856
Test: atest FrameworksWifiApiTes
Change-Id: I2a52a288157d7875074f8e20218d564c363b568f
Diffstat (limited to 'wifi/java')
-rw-r--r-- | wifi/java/android/net/wifi/SecurityParams.java | 88 | ||||
-rw-r--r-- | wifi/java/android/net/wifi/WifiConfiguration.java | 50 |
2 files changed, 77 insertions, 61 deletions
diff --git a/wifi/java/android/net/wifi/SecurityParams.java b/wifi/java/android/net/wifi/SecurityParams.java index 0ab6f572fba3..8ee2ea046cfb 100644 --- a/wifi/java/android/net/wifi/SecurityParams.java +++ b/wifi/java/android/net/wifi/SecurityParams.java @@ -192,6 +192,15 @@ public class SecurityParams { } /** + * Get the security type of this params. + * + * @return The security type defined in {@link WifiConfiguration}. + */ + public @SecurityType int getSecurityType() { + return mSecurityType; + } + + /** * Check the security type of this params. * * @param type the testing security type. @@ -563,9 +572,64 @@ public class SecurityParams { } /** + * Create a params according to the security type. + * + * @param securityType One of the following security types: + * {@link WifiConfiguration#SECURITY_TYPE_OPEN}, + * {@link WifiConfiguration#SECURITY_TYPE_WEP}, + * {@link WifiConfiguration#SECURITY_TYPE_PSK}, + * {@link WifiConfiguration#SECURITY_TYPE_EAP}, + * {@link WifiConfiguration#SECURITY_TYPE_SAE}, + * {@link WifiConfiguration#SECURITY_TYPE_OWE}, + * {@link WifiConfiguration#SECURITY_TYPE_WAPI_PSK}, + * {@link WifiConfiguration#SECURITY_TYPE_WAPI_CERT}, + * {@link WifiConfiguration#SECURITY_TYPE_EAP_WPA3_ENTERPRISE}, + * {@link WifiConfiguration#SECURITY_TYPE_EAP_WPA3_ENTERPRISE_192_BIT}, + * + * @return the corresponding security params if the security type is valid; + * otherwise, throw IllegalArgumentException. + */ + public static @NonNull SecurityParams createSecurityParamsBySecurityType( + @WifiConfiguration.SecurityType int securityType) { + switch (securityType) { + case WifiConfiguration.SECURITY_TYPE_OPEN: + return createOpenParams(); + case WifiConfiguration.SECURITY_TYPE_WEP: + return createWepParams(); + case WifiConfiguration.SECURITY_TYPE_PSK: + return createWpaWpa2PersonalParams(); + case WifiConfiguration.SECURITY_TYPE_EAP: + return createWpaWpa2EnterpriseParams(); + case WifiConfiguration.SECURITY_TYPE_SAE: + return createWpa3PersonalParams(); + // The value of {@link WifiConfiguration.SECURITY_TYPE_EAP_SUITE_B} is the same as + // {@link #WifiConfiguration.SECURITY_TYPE_EAP_WPA3_ENTERPRISE_192_BIT}, remove it + // to avoid duplicate case label errors. + case WifiConfiguration.SECURITY_TYPE_EAP_WPA3_ENTERPRISE_192_BIT: + return createWpa3Enterprise192BitParams(); + case WifiConfiguration.SECURITY_TYPE_OWE: + return createEnhancedOpenParams(); + case WifiConfiguration.SECURITY_TYPE_WAPI_PSK: + return createWapiPskParams(); + case WifiConfiguration.SECURITY_TYPE_WAPI_CERT: + return createWapiCertParams(); + case WifiConfiguration.SECURITY_TYPE_EAP_WPA3_ENTERPRISE: + return createWpa3EnterpriseParams(); + case WifiConfiguration.SECURITY_TYPE_OSEN: + return createOsenParams(); + case WifiConfiguration.SECURITY_TYPE_PASSPOINT_R1_R2: + return SecurityParams.createPasspointParams(PASSPOINT_R2); + case WifiConfiguration.SECURITY_TYPE_PASSPOINT_R3: + return SecurityParams.createPasspointParams(PASSPOINT_R3); + default: + throw new IllegalArgumentException("unknown security type " + securityType); + } + } + + /** * Create EAP security params. */ - public static @NonNull SecurityParams createWpaWpa2EnterpriseParams() { + private static @NonNull SecurityParams createWpaWpa2EnterpriseParams() { SecurityParams params = new SecurityParams(); params.mSecurityType = WifiConfiguration.SECURITY_TYPE_EAP; @@ -586,7 +650,7 @@ public class SecurityParams { /** * Create Passpoint security params. */ - public static @NonNull SecurityParams createPasspointParams(@PasspointRelease int release) { + private static @NonNull SecurityParams createPasspointParams(@PasspointRelease int release) { SecurityParams params = new SecurityParams(); switch (release) { case PASSPOINT_R1: @@ -616,7 +680,7 @@ public class SecurityParams { /** * Create Enhanced Open params. */ - public static @NonNull SecurityParams createEnhancedOpenParams() { + private static @NonNull SecurityParams createEnhancedOpenParams() { SecurityParams params = new SecurityParams(); params.mSecurityType = WifiConfiguration.SECURITY_TYPE_OWE; @@ -639,7 +703,7 @@ public class SecurityParams { /** * Create Open params. */ - public static @NonNull SecurityParams createOpenParams() { + private static @NonNull SecurityParams createOpenParams() { SecurityParams params = new SecurityParams(); params.mSecurityType = WifiConfiguration.SECURITY_TYPE_OPEN; @@ -653,7 +717,7 @@ public class SecurityParams { /** * Create OSEN params. */ - public static @NonNull SecurityParams createOsenParams() { + private static @NonNull SecurityParams createOsenParams() { SecurityParams params = new SecurityParams(); params.mSecurityType = WifiConfiguration.SECURITY_TYPE_OSEN; @@ -672,7 +736,7 @@ public class SecurityParams { /** * Create WAPI-CERT params. */ - public static @NonNull SecurityParams createWapiCertParams() { + private static @NonNull SecurityParams createWapiCertParams() { SecurityParams params = new SecurityParams(); params.mSecurityType = WifiConfiguration.SECURITY_TYPE_WAPI_CERT; @@ -689,7 +753,7 @@ public class SecurityParams { /** * Create WAPI-PSK params. */ - public static @NonNull SecurityParams createWapiPskParams() { + private static @NonNull SecurityParams createWapiPskParams() { SecurityParams params = new SecurityParams(); params.mSecurityType = WifiConfiguration.SECURITY_TYPE_WAPI_PSK; @@ -706,7 +770,7 @@ public class SecurityParams { /** * Create WEP params. */ - public static @NonNull SecurityParams createWepParams() { + private static @NonNull SecurityParams createWepParams() { SecurityParams params = new SecurityParams(); params.mSecurityType = WifiConfiguration.SECURITY_TYPE_WEP; @@ -730,7 +794,7 @@ public class SecurityParams { /** * Create WPA3 Enterprise 192-bit params. */ - public static @NonNull SecurityParams createWpa3Enterprise192BitParams() { + private static @NonNull SecurityParams createWpa3Enterprise192BitParams() { SecurityParams params = new SecurityParams(); params.mSecurityType = WifiConfiguration.SECURITY_TYPE_EAP_WPA3_ENTERPRISE_192_BIT; @@ -758,7 +822,7 @@ public class SecurityParams { /** * Create WPA3 Enterprise params. */ - public static @NonNull SecurityParams createWpa3EnterpriseParams() { + private static @NonNull SecurityParams createWpa3EnterpriseParams() { SecurityParams params = new SecurityParams(); params.mSecurityType = WifiConfiguration.SECURITY_TYPE_EAP_WPA3_ENTERPRISE; @@ -780,7 +844,7 @@ public class SecurityParams { /** * Create WPA3 Personal params. */ - public static @NonNull SecurityParams createWpa3PersonalParams() { + private static @NonNull SecurityParams createWpa3PersonalParams() { SecurityParams params = new SecurityParams(); params.mSecurityType = WifiConfiguration.SECURITY_TYPE_SAE; @@ -803,7 +867,7 @@ public class SecurityParams { /** * Create WPA/WPA2 Personal params. */ - public static @NonNull SecurityParams createWpaWpa2PersonalParams() { + private static @NonNull SecurityParams createWpaWpa2PersonalParams() { SecurityParams params = new SecurityParams(); params.mSecurityType = WifiConfiguration.SECURITY_TYPE_PSK; diff --git a/wifi/java/android/net/wifi/WifiConfiguration.java b/wifi/java/android/net/wifi/WifiConfiguration.java index ba4a54f9a489..d0e1204e7fbd 100644 --- a/wifi/java/android/net/wifi/WifiConfiguration.java +++ b/wifi/java/android/net/wifi/WifiConfiguration.java @@ -605,55 +605,7 @@ public class WifiConfiguration implements Parcelable { if (mSecurityParamsList.stream().anyMatch(params -> params.isSecurityType(securityType))) { throw new IllegalArgumentException("duplicate security type " + securityType); } - SecurityParams params = null; - switch (securityType) { - case SECURITY_TYPE_OPEN: - params = SecurityParams.createOpenParams(); - break; - case SECURITY_TYPE_WEP: - params = SecurityParams.createWepParams(); - break; - case SECURITY_TYPE_PSK: - params = SecurityParams.createWpaWpa2PersonalParams(); - break; - case SECURITY_TYPE_EAP: - params = SecurityParams.createWpaWpa2EnterpriseParams(); - break; - case SECURITY_TYPE_SAE: - params = SecurityParams.createWpa3PersonalParams(); - break; - // The value of {@link SECURITY_TYPE_EAP_SUITE_B} is the same as - // {@link #SECURITY_TYPE_EAP_WPA3_ENTERPRISE_192_BIT}, remove it to avoid - // duplicate case label errors. - case SECURITY_TYPE_EAP_WPA3_ENTERPRISE_192_BIT: - params = SecurityParams.createWpa3Enterprise192BitParams(); - break; - case SECURITY_TYPE_OWE: - params = SecurityParams.createEnhancedOpenParams(); - break; - case SECURITY_TYPE_WAPI_PSK: - params = SecurityParams.createWapiPskParams(); - break; - case SECURITY_TYPE_WAPI_CERT: - params = SecurityParams.createWapiCertParams(); - break; - case SECURITY_TYPE_EAP_WPA3_ENTERPRISE: - params = SecurityParams.createWpa3EnterpriseParams(); - break; - case SECURITY_TYPE_OSEN: - params = SecurityParams.createOsenParams(); - break; - case SECURITY_TYPE_PASSPOINT_R1_R2: - params = SecurityParams.createPasspointParams(SecurityParams.PASSPOINT_R2); - break; - case SECURITY_TYPE_PASSPOINT_R3: - params = SecurityParams.createPasspointParams(SecurityParams.PASSPOINT_R3); - break; - default: - throw new IllegalArgumentException("unknown security type " + securityType); - } - - addSecurityParams(params); + addSecurityParams(SecurityParams.createSecurityParamsBySecurityType(securityType)); } /** @hide */ |