summaryrefslogtreecommitdiff
path: root/wifi/java
diff options
context:
space:
mode:
authorJimmy Chen <jimmycmchen@google.com>2020-12-11 15:59:43 +0800
committerJimmy Chen <jimmycmchen@google.com>2020-12-22 13:54:14 +0800
commit8d0bb8682d18edeb765d633112af3901b211bfd6 (patch)
treea0f838b6bbf8a44cf64fd9f6be06cc12853bba23 /wifi/java
parent2a9790b42e054c11c5a73a012cf31f836219f4a9 (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.java88
-rw-r--r--wifi/java/android/net/wifi/WifiConfiguration.java50
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 */