wifi: migrate security params setup to new security params design

This change replaces legacy fields accesses by security params setup.
Wifi service still uses legacy fields to fulfill functionalities, ex.
scan result matching, SAE auto-upgrade.

Bug: 162685856
Test: atest FrameworksWifiTests
Change-Id: I1116966cb982d238c66862bffcf55c37fc60af28
diff --git a/service/java/com/android/server/wifi/ClientModeImpl.java b/service/java/com/android/server/wifi/ClientModeImpl.java
index 4b30351..057dfa1 100644
--- a/service/java/com/android/server/wifi/ClientModeImpl.java
+++ b/service/java/com/android/server/wifi/ClientModeImpl.java
@@ -3365,10 +3365,7 @@
 
                     mTargetWifiConfiguration = config;
                     /* Check for FILS configuration again after updating the config */
-                    if (config.allowedKeyManagement.get(WifiConfiguration.KeyMgmt.FILS_SHA256)
-                            || config.allowedKeyManagement.get(
-                            WifiConfiguration.KeyMgmt.FILS_SHA384)) {
-
+                    if (config.isFilsSha256Enabled() || config.isFilsSha384Enabled()) {
                         boolean isIpClientStarted = startIpClient(config, true);
                         if (isIpClientStarted) {
                             mIpClientWithPreConnection = true;
@@ -5662,14 +5659,11 @@
      */
     private void updateAllowedKeyManagementSchemesFromScanResult(
             WifiConfiguration config, ScanResult scanResult) {
-        if (isFilsSha256Supported()
-                && ScanResultUtil.isScanResultForFilsSha256Network(scanResult)) {
-            config.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.FILS_SHA256);
-        }
-        if (isFilsSha384Supported()
-                && ScanResultUtil.isScanResultForFilsSha384Network(scanResult)) {
-            config.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.FILS_SHA384);
-        }
+        config.enableFils(
+                isFilsSha256Supported()
+                && ScanResultUtil.isScanResultForFilsSha256Network(scanResult),
+                isFilsSha384Supported()
+                && ScanResultUtil.isScanResultForFilsSha384Network(scanResult));
     }
     /**
      * Update wifi configuration based on the matching scan result.
@@ -5680,8 +5674,7 @@
     private void updateWifiConfigFromMatchingScanResult(WifiConfiguration config,
             ScanResult scanResult) {
         updateAllowedKeyManagementSchemesFromScanResult(config, scanResult);
-        if (config.allowedKeyManagement.get(WifiConfiguration.KeyMgmt.FILS_SHA256)
-                || config.allowedKeyManagement.get(WifiConfiguration.KeyMgmt.FILS_SHA384)) {
+        if (config.isFilsSha256Enabled() || config.isFilsSha384Enabled()) {
             config.enterpriseConfig.setFieldValue(WifiEnterpriseConfig.EAP_ERP, "1");
         }
     }
@@ -5700,8 +5693,8 @@
 
         setTargetBssid(config, bssid);
 
-        if (isWpa3SaeUpgradeEnabled() && config.allowedKeyManagement.get(
-                WifiConfiguration.KeyMgmt.WPA_PSK)) {
+        if (isWpa3SaeUpgradeEnabled() && config.isSecurityType(
+                WifiConfiguration.SECURITY_TYPE_PSK)) {
             isFrameworkWpa3SaeUpgradePossible = true;
         }
 
@@ -5713,6 +5706,9 @@
             config.allowedAuthAlgorithms.clear();
             // Note: KeyMgmt.WPA2_PSK is already enabled, enable SAE as well
             config.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.SAE);
+            if (!config.isSecurityType(WifiConfiguration.SECURITY_TYPE_SAE)) {
+                config.addSecurityParams(WifiConfiguration.SECURITY_TYPE_SAE);
+            }
             isFrameworkWpa3SaeUpgradePossible = false;
         }
         // Check if network selection selected a good WPA3 candidate AP for a WPA2
@@ -5765,9 +5761,7 @@
         }
 
         if (isFrameworkWpa3SaeUpgradePossible && canUpgradePskToSae
-                && !(config.allowedKeyManagement.get(WifiConfiguration.KeyMgmt.FILS_SHA256)
-                            || config.allowedKeyManagement.get(
-                            WifiConfiguration.KeyMgmt.FILS_SHA384))) {
+                && !(config.isFilsSha256Enabled() || config.isFilsSha384Enabled())) {
             // Upgrade legacy WPA/WPA2 connection to WPA3
             if (mVerboseLoggingEnabled) {
                 Log.d(getTag(), "Upgrade legacy WPA/WPA2 connection to WPA3");
diff --git a/service/java/com/android/server/wifi/DppManager.java b/service/java/com/android/server/wifi/DppManager.java
index b0eaff3..93c943e 100644
--- a/service/java/com/android/server/wifi/DppManager.java
+++ b/service/java/com/android/server/wifi/DppManager.java
@@ -220,11 +220,11 @@
         int securityAkm;
 
         // Currently support either SAE mode or PSK mode
-        if (selectedNetwork.allowedKeyManagement.get(WifiConfiguration.KeyMgmt.SAE)) {
+        if (selectedNetwork.isSecurityType(WifiConfiguration.SECURITY_TYPE_SAE)) {
             // SAE
             password = selectedNetwork.preSharedKey;
             securityAkm = DppAkm.SAE;
-        } else if (selectedNetwork.allowedKeyManagement.get(WifiConfiguration.KeyMgmt.WPA_PSK)) {
+        } else if (selectedNetwork.isSecurityType(WifiConfiguration.SECURITY_TYPE_PSK)) {
             if (selectedNetwork.preSharedKey.matches(String.format("[0-9A-Fa-f]{%d}", 64))) {
                 // PSK
                 psk = selectedNetwork.preSharedKey;
diff --git a/service/java/com/android/server/wifi/NetworkListStoreData.java b/service/java/com/android/server/wifi/NetworkListStoreData.java
index 878a643..ccdd09f 100644
--- a/service/java/com/android/server/wifi/NetworkListStoreData.java
+++ b/service/java/com/android/server/wifi/NetworkListStoreData.java
@@ -287,9 +287,6 @@
 
         configuration.convertLegacyFieldsToSecurityParamsIfNeeded();
 
-        if (configuration.allowedKeyManagement.get(WifiConfiguration.KeyMgmt.SAE)) {
-            fixSaeNetworkSecurityBits(configuration);
-        }
         // b/153435438: Added to deal with badly formed WifiConfiguration from apps.
         if (configuration.preSharedKey != null && !configuration.needsPreSharedKey()) {
             Log.e(TAG, "preSharedKey set with an invalid KeyMgmt, resetting KeyMgmt to WPA_PSK");
@@ -326,36 +323,5 @@
         }
         return configuration;
     }
-
-    private void fixSaeNetworkSecurityBits(WifiConfiguration saeNetwork) {
-        // SAE saved networks Auth Algorithm set to OPEN need to be have this field cleared.
-        if (saeNetwork.allowedAuthAlgorithms.get(WifiConfiguration.AuthAlgorithm.OPEN)) {
-            saeNetwork.allowedAuthAlgorithms.clear();
-        }
-        // SAE saved networks Pairwise Cipher with TKIP enabled need to be have this bit
-        // cleared.
-        if (saeNetwork.allowedPairwiseCiphers.get(WifiConfiguration.PairwiseCipher.TKIP)) {
-            saeNetwork.allowedPairwiseCiphers.clear(WifiConfiguration.PairwiseCipher.TKIP);
-        }
-        // SAE saved networks Protocols with WPA enabled need to be have this bit cleared.
-        if (saeNetwork.allowedProtocols.get(WifiConfiguration.Protocol.WPA)) {
-            saeNetwork.allowedProtocols.clear(WifiConfiguration.Protocol.WPA);
-        }
-        // SAE saved networks Group Ciphers with legacy ciphers enabled, need to be have these
-        // bits cleared.
-        if (saeNetwork.allowedGroupCiphers.get(WifiConfiguration.GroupCipher.WEP40)) {
-            saeNetwork.allowedGroupCiphers.clear(WifiConfiguration.GroupCipher.WEP40);
-        }
-        if (saeNetwork.allowedGroupCiphers.get(WifiConfiguration.GroupCipher.WEP104)) {
-            saeNetwork.allowedGroupCiphers.clear(WifiConfiguration.GroupCipher.WEP104);
-        }
-        if (saeNetwork.allowedGroupCiphers.get(WifiConfiguration.GroupCipher.TKIP)) {
-            saeNetwork.allowedGroupCiphers.clear(WifiConfiguration.GroupCipher.TKIP);
-        }
-        saeNetwork.allowedPairwiseCiphers.set(WifiConfiguration.PairwiseCipher.GCMP_128);
-        saeNetwork.allowedPairwiseCiphers.set(WifiConfiguration.PairwiseCipher.GCMP_256);
-        saeNetwork.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.GCMP_128);
-        saeNetwork.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.GCMP_256);
-    }
 }
 
diff --git a/service/java/com/android/server/wifi/ScanResultMatchInfo.java b/service/java/com/android/server/wifi/ScanResultMatchInfo.java
index 909e01b..f29893e 100644
--- a/service/java/com/android/server/wifi/ScanResultMatchInfo.java
+++ b/service/java/com/android/server/wifi/ScanResultMatchInfo.java
@@ -62,7 +62,7 @@
             return WifiConfiguration.SECURITY_TYPE_WAPI_CERT;
         } else if (WifiConfigurationUtil.isConfigForEapNetwork(config)) {
             return WifiConfiguration.SECURITY_TYPE_EAP;
-        } else if (WifiConfigurationUtil.isConfigForEapSuiteBNetwork(config)) {
+        } else if (WifiConfigurationUtil.isConfigForWpa3Enterprise192BitNetwork(config)) {
             return WifiConfiguration.SECURITY_TYPE_EAP_WPA3_ENTERPRISE_192_BIT;
         } else if (WifiConfigurationUtil.isConfigForWepNetwork(config)) {
             return WifiConfiguration.SECURITY_TYPE_WEP;
diff --git a/service/java/com/android/server/wifi/SupplicantStaIfaceCallbackV1_2Impl.java b/service/java/com/android/server/wifi/SupplicantStaIfaceCallbackV1_2Impl.java
index 973e11a..f516489 100644
--- a/service/java/com/android/server/wifi/SupplicantStaIfaceCallbackV1_2Impl.java
+++ b/service/java/com/android/server/wifi/SupplicantStaIfaceCallbackV1_2Impl.java
@@ -179,11 +179,10 @@
         }
 
         // Set up key management: SAE or PSK
-        if (securityAkm == DppAkm.SAE || securityAkm == DppAkm.PSK_SAE) {
-            newWifiConfiguration.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.SAE);
-            newWifiConfiguration.requirePmf = true;
-        } else if (securityAkm == DppAkm.PSK) {
-            newWifiConfiguration.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.WPA_PSK);
+        if (securityAkm == DppAkm.SAE) {
+            newWifiConfiguration.setSecurityParams(WifiConfiguration.SECURITY_TYPE_SAE);
+        } else if (securityAkm == DppAkm.PSK_SAE || securityAkm == DppAkm.PSK) {
+            newWifiConfiguration.setSecurityParams(WifiConfiguration.SECURITY_TYPE_PSK);
         } else {
             // No other AKMs are currently supported
             onDppFailure(DppFailureCode.NOT_SUPPORTED);
@@ -193,9 +192,6 @@
         // Set up default values
         newWifiConfiguration.creatorName = mContext.getPackageManager()
                 .getNameForUid(Process.WIFI_UID);
-        newWifiConfiguration.allowedAuthAlgorithms.set(WifiConfiguration.AuthAlgorithm.OPEN);
-        newWifiConfiguration.allowedPairwiseCiphers.set(WifiConfiguration.PairwiseCipher.CCMP);
-        newWifiConfiguration.allowedProtocols.set(WifiConfiguration.Protocol.RSN);
         newWifiConfiguration.status = WifiConfiguration.Status.ENABLED;
 
         mStaIfaceHal.getDppCallback().onSuccessConfigReceived(newWifiConfiguration);
diff --git a/service/java/com/android/server/wifi/SupplicantStaNetworkHal.java b/service/java/com/android/server/wifi/SupplicantStaNetworkHal.java
index 78a2f92..fa125ef 100644
--- a/service/java/com/android/server/wifi/SupplicantStaNetworkHal.java
+++ b/service/java/com/android/server/wifi/SupplicantStaNetworkHal.java
@@ -211,39 +211,18 @@
             /** allowedKeyManagement */
             if (getKeyMgmt()) {
                 BitSet keyMgmtMask = supplicantToWifiConfigurationKeyMgmtMask(mKeyMgmtMask);
-                config.allowedKeyManagement = removeFastTransitionFlags(keyMgmtMask);
-                config.allowedKeyManagement = removeSha256KeyMgmtFlags(config.allowedKeyManagement);
-            }
-            /** allowedProtocols */
-            if (getProto()) {
-                config.allowedProtocols =
-                        supplicantToWifiConfigurationProtoMask(mProtoMask);
-            }
-            /** allowedAuthAlgorithms */
-            if (getAuthAlg()) {
-                config.allowedAuthAlgorithms =
-                        supplicantToWifiConfigurationAuthAlgMask(mAuthAlgMask);
-            }
-            /** allowedGroupCiphers */
-            if (getGroupCipher()) {
-                config.allowedGroupCiphers =
-                        supplicantToWifiConfigurationGroupCipherMask(mGroupCipherMask);
-            }
-            /** allowedPairwiseCiphers */
-            if (getPairwiseCipher()) {
-                config.allowedPairwiseCiphers =
-                        supplicantToWifiConfigurationPairwiseCipherMask(mPairwiseCipherMask);
-            }
-            /** allowedPairwiseCiphers */
-            if (getGroupMgmtCipher()) {
-                config.allowedGroupManagementCiphers =
-                        supplicantToWifiConfigurationGroupMgmtCipherMask(mGroupMgmtCipherMask);
+                keyMgmtMask = removeFastTransitionFlags(keyMgmtMask);
+                keyMgmtMask = removeSha256KeyMgmtFlags(keyMgmtMask);
+                config.setSecurityParams(keyMgmtMask);
+                config.enableFils(
+                        keyMgmtMask.get(WifiConfiguration.KeyMgmt.FILS_SHA256),
+                        keyMgmtMask.get(WifiConfiguration.KeyMgmt.FILS_SHA384));
             }
 
             /** PSK pass phrase */
             config.preSharedKey = null;
             if (getPskPassphrase() && !TextUtils.isEmpty(mPskPassphrase)) {
-                if (config.allowedKeyManagement.get(WifiConfiguration.KeyMgmt.WAPI_PSK)) {
+                if (config.isSecurityType(WifiConfiguration.SECURITY_TYPE_WAPI_PSK)) {
                     config.preSharedKey = mPskPassphrase;
                 } else {
                     config.preSharedKey = NativeUtil.addEnclosingQuotes(mPskPassphrase);
@@ -261,7 +240,7 @@
             }
 
             /** WAPI Cert Suite */
-            if (config.allowedKeyManagement.get(WifiConfiguration.KeyMgmt.WAPI_CERT)) {
+            if (config.isSecurityType(WifiConfiguration.SECURITY_TYPE_WAPI_CERT)) {
                 if (config.enterpriseConfig == null) {
                     return false;
                 }
@@ -362,13 +341,13 @@
             // For PSK, this can either be quoted ASCII passphrase or hex string for raw psk.
             // For SAE, password must be a quoted ASCII string
             if (config.preSharedKey != null) {
-                if (config.allowedKeyManagement.get(WifiConfiguration.KeyMgmt.WAPI_PSK)) {
+                if (config.isSecurityType(WifiConfiguration.SECURITY_TYPE_WAPI_PSK)) {
                     if (!setPskPassphrase(config.preSharedKey)) {
                         Log.e(TAG, "failed to set wapi psk passphrase");
                         return false;
                     }
                 } else if (config.preSharedKey.startsWith("\"")) {
-                    if (config.allowedKeyManagement.get(WifiConfiguration.KeyMgmt.SAE)) {
+                    if (config.isSecurityType(WifiConfiguration.SECURITY_TYPE_SAE)) {
                         /* WPA3 case, field is SAE Password */
                         if (!setSaePassword(
                                 NativeUtil.removeEnclosingQuotes(config.preSharedKey))) {
@@ -383,7 +362,7 @@
                         }
                     }
                 } else {
-                    if (config.allowedKeyManagement.get(WifiConfiguration.KeyMgmt.SAE)) {
+                    if (config.isSecurityType(WifiConfiguration.SECURITY_TYPE_SAE)) {
                         return false;
                     }
                     if (!setPsk(NativeUtil.hexStringToByteArray(config.preSharedKey))) {
diff --git a/service/java/com/android/server/wifi/WifiConfigManager.java b/service/java/com/android/server/wifi/WifiConfigManager.java
index f1fb9d9..ed62773 100644
--- a/service/java/com/android/server/wifi/WifiConfigManager.java
+++ b/service/java/com/android/server/wifi/WifiConfigManager.java
@@ -1062,6 +1062,12 @@
             internalConfig.roamingConsortiumIds = externalConfig.roamingConsortiumIds.clone();
         }
 
+        // Copy over all the security params if set.
+        if (externalConfig.getSecurityParamsList() != null
+                && !externalConfig.getSecurityParamsList().isEmpty()) {
+            internalConfig.setSecurityParams(externalConfig.getSecurityParamsList());
+        }
+
         // Copy over all the auth/protocol/key mgmt parameters if set.
         if (externalConfig.allowedAuthAlgorithms != null
                 && !externalConfig.allowedAuthAlgorithms.isEmpty()) {
@@ -1149,25 +1155,6 @@
      * @param configuration provided WifiConfiguration object.
      */
     private void setDefaultsInWifiConfiguration(WifiConfiguration configuration) {
-        configuration.allowedProtocols.set(WifiConfiguration.Protocol.RSN);
-        configuration.allowedProtocols.set(WifiConfiguration.Protocol.WPA);
-
-        configuration.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.WPA_PSK);
-        configuration.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.WPA_EAP);
-
-        configuration.allowedPairwiseCiphers.set(WifiConfiguration.PairwiseCipher.GCMP_256);
-        configuration.allowedPairwiseCiphers.set(WifiConfiguration.PairwiseCipher.CCMP);
-        configuration.allowedPairwiseCiphers.set(WifiConfiguration.PairwiseCipher.TKIP);
-
-        configuration.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.GCMP_256);
-        configuration.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.CCMP);
-        configuration.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.TKIP);
-        configuration.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.WEP40);
-        configuration.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.WEP104);
-
-        configuration.allowedGroupManagementCiphers
-                .set(WifiConfiguration.GroupMgmtCipher.BIP_GMAC_256);
-
         configuration.setIpAssignment(IpConfiguration.IpAssignment.DHCP);
         configuration.setProxySettings(IpConfiguration.ProxySettings.NONE);
 
@@ -1196,13 +1183,15 @@
         // First set defaults in the new configuration created.
         setDefaultsInWifiConfiguration(newInternalConfig);
 
+        // Convert legacy fields to new security params
+        externalConfig.convertLegacyFieldsToSecurityParamsIfNeeded();
+
         // Copy over all the public elements from the provided configuration.
         mergeWithInternalWifiConfiguration(newInternalConfig, externalConfig);
 
         // Copy over the hidden configuration parameters. These are the only parameters used by
         // system apps to indicate some property about the network being added.
         // These are only copied over for network additions and ignored for network updates.
-        newInternalConfig.requirePmf = externalConfig.requirePmf;
         newInternalConfig.noInternetAccessExpected = externalConfig.noInternetAccessExpected;
         newInternalConfig.ephemeral = externalConfig.ephemeral;
         newInternalConfig.osu = externalConfig.osu;
@@ -2661,7 +2650,7 @@
      */
     private void attemptNetworkLinking(WifiConfiguration config) {
         // Only link WPA_PSK config.
-        if (!config.allowedKeyManagement.get(WifiConfiguration.KeyMgmt.WPA_PSK)) {
+        if (!config.isSecurityType(WifiConfiguration.SECURITY_TYPE_PSK)) {
             return;
         }
         ScanDetailCache scanDetailCache = getScanDetailCacheForNetwork(config.networkId);
@@ -2679,7 +2668,7 @@
             }
             // Network Selector will be allowed to dynamically jump from a linked configuration
             // to another, hence only link configurations that have WPA_PSK security type.
-            if (!linkConfig.allowedKeyManagement.get(WifiConfiguration.KeyMgmt.WPA_PSK)) {
+            if (!linkConfig.isSecurityType(WifiConfiguration.SECURITY_TYPE_PSK)) {
                 continue;
             }
             ScanDetailCache linkScanDetailCache =
diff --git a/service/java/com/android/server/wifi/WifiConfigurationUtil.java b/service/java/com/android/server/wifi/WifiConfigurationUtil.java
index 9dd4c77..9b767cb 100644
--- a/service/java/com/android/server/wifi/WifiConfigurationUtil.java
+++ b/service/java/com/android/server/wifi/WifiConfigurationUtil.java
@@ -91,58 +91,57 @@
      * Helper method to check if the provided |config| corresponds to a PSK network or not.
      */
     public static boolean isConfigForPskNetwork(WifiConfiguration config) {
-        return config.allowedKeyManagement.get(WifiConfiguration.KeyMgmt.WPA_PSK);
+        return config.isSecurityType(WifiConfiguration.SECURITY_TYPE_PSK);
     }
 
     /**
      * Helper method to check if the provided |config| corresponds to a WAPI PSK network or not.
      */
     public static boolean isConfigForWapiPskNetwork(WifiConfiguration config) {
-        return config.allowedKeyManagement.get(WifiConfiguration.KeyMgmt.WAPI_PSK);
+        return config.isSecurityType(WifiConfiguration.SECURITY_TYPE_WAPI_PSK);
     }
 
     /**
      * Helper method to check if the provided |config| corresponds to a WAPI CERT network or not.
      */
     public static boolean isConfigForWapiCertNetwork(WifiConfiguration config) {
-        return config.allowedKeyManagement.get(WifiConfiguration.KeyMgmt.WAPI_CERT);
+        return config.isSecurityType(WifiConfiguration.SECURITY_TYPE_WAPI_CERT);
     }
 
     /**
      * Helper method to check if the provided |config| corresponds to an SAE network or not.
      */
     public static boolean isConfigForSaeNetwork(WifiConfiguration config) {
-        return config.allowedKeyManagement.get(WifiConfiguration.KeyMgmt.SAE);
+        return config.isSecurityType(WifiConfiguration.SECURITY_TYPE_SAE);
     }
 
     /**
      * Helper method to check if the provided |config| corresponds to an OWE network or not.
      */
     public static boolean isConfigForOweNetwork(WifiConfiguration config) {
-        return config.allowedKeyManagement.get(WifiConfiguration.KeyMgmt.OWE);
+        return config.isSecurityType(WifiConfiguration.SECURITY_TYPE_OWE);
     }
 
     /**
      * Helper method to check if the provided |config| corresponds to a EAP network or not.
+     * TODO: b/175928875, add a method for Wpa3Enterprise.
      */
     public static boolean isConfigForEapNetwork(WifiConfiguration config) {
-        return (config.allowedKeyManagement.get(WifiConfiguration.KeyMgmt.WPA_EAP)
-                || config.allowedKeyManagement.get(WifiConfiguration.KeyMgmt.IEEE8021X));
+        return config.isSecurityType(WifiConfiguration.SECURITY_TYPE_EAP);
     }
 
     /**
      * Helper method to check if the provided |config| corresponds to a EAP Suite-B network or not.
      */
-    public static boolean isConfigForEapSuiteBNetwork(WifiConfiguration config) {
-        return config.allowedKeyManagement.get(WifiConfiguration.KeyMgmt.SUITE_B_192);
+    public static boolean isConfigForWpa3Enterprise192BitNetwork(WifiConfiguration config) {
+        return config.isSecurityType(WifiConfiguration.SECURITY_TYPE_EAP_WPA3_ENTERPRISE_192_BIT);
     }
 
     /**
      * Helper method to check if the provided |config| corresponds to a WEP network or not.
      */
     public static boolean isConfigForWepNetwork(WifiConfiguration config) {
-        return (config.allowedKeyManagement.get(WifiConfiguration.KeyMgmt.NONE)
-                && hasAnyValidWepKey(config.wepKeys));
+        return config.isSecurityType(WifiConfiguration.SECURITY_TYPE_WEP);
     }
 
     /**
@@ -152,7 +151,7 @@
     public static boolean isConfigForOpenNetwork(WifiConfiguration config) {
         return (!(isConfigForWepNetwork(config) || isConfigForPskNetwork(config)
                 || isConfigForEapNetwork(config) || isConfigForSaeNetwork(config)
-                || isConfigForEapSuiteBNetwork(config)));
+                || isConfigForWpa3Enterprise192BitNetwork(config)));
     }
 
     /**
@@ -653,38 +652,18 @@
         if (!validateKeyMgmt(config.allowedKeyManagement)) {
             return false;
         }
-        if (config.allowedKeyManagement.get(WifiConfiguration.KeyMgmt.NONE)
+        if (config.isSecurityType(WifiConfiguration.SECURITY_TYPE_WEP)
                 && config.wepKeys != null
                 && !validateWepKeys(config.wepKeys, config.wepTxKeyIndex, isAdd)) {
             return false;
         }
-        if (config.allowedKeyManagement.get(WifiConfiguration.KeyMgmt.WPA_PSK)
+        if (config.isSecurityType(WifiConfiguration.SECURITY_TYPE_PSK)
                 && !validatePassword(config.preSharedKey, isAdd, false)) {
             return false;
         }
-        if (config.allowedKeyManagement.get(WifiConfiguration.KeyMgmt.OWE)) {
-            // PMF mandatory for OWE networks
-            if (!config.requirePmf) {
-                Log.e(TAG, "PMF must be enabled for OWE networks");
-                return false;
-            }
-        }
-        if (config.allowedKeyManagement.get(WifiConfiguration.KeyMgmt.SAE)) {
-            // PMF mandatory for WPA3-Personal networks
-            if (!config.requirePmf) {
-                Log.e(TAG, "PMF must be enabled for SAE networks");
-                return false;
-            }
-            if (!validatePassword(config.preSharedKey, isAdd, true)) {
-                return false;
-            }
-        }
-        if (config.allowedKeyManagement.get(WifiConfiguration.KeyMgmt.SUITE_B_192)) {
-            // PMF mandatory for WPA3-Enterprise networks
-            if (!config.requirePmf) {
-                Log.e(TAG, "PMF must be enabled for Suite-B 192-bit networks");
-                return false;
-            }
+        if (config.isSecurityType(WifiConfiguration.SECURITY_TYPE_SAE)
+                && !validatePassword(config.preSharedKey, isAdd, true)) {
+            return false;
         }
         // b/153435438: Added to deal with badly formed WifiConfiguration from apps.
         if (config.preSharedKey != null && !config.needsPreSharedKey()) {
@@ -817,30 +796,13 @@
         if (!validateKeyMgmt(config.allowedKeyManagement)) {
             return false;
         }
-        if (config.allowedKeyManagement.get(WifiConfiguration.KeyMgmt.WPA_PSK)
+        if (config.isSecurityType(WifiConfiguration.SECURITY_TYPE_PSK)
                 && !validatePassword(config.preSharedKey, true, false)) {
             return false;
         }
-        if (config.allowedKeyManagement.get(WifiConfiguration.KeyMgmt.OWE)) {
-            // PMF mandatory for OWE networks
-            if (!config.requirePmf) {
-                return false;
-            }
-        }
-        if (config.allowedKeyManagement.get(WifiConfiguration.KeyMgmt.SAE)) {
-            // PMF mandatory for WPA3-Personal networks
-            if (!config.requirePmf) {
-                return false;
-            }
-            if (!validatePassword(config.preSharedKey, true, true)) {
-                return false;
-            }
-        }
-        if (config.allowedKeyManagement.get(WifiConfiguration.KeyMgmt.SUITE_B_192)) {
-            // PMF mandatory for WPA3-Enterprise networks
-            if (!config.requirePmf) {
-                return false;
-            }
+        if (config.isSecurityType(WifiConfiguration.SECURITY_TYPE_SAE)
+                && !validatePassword(config.preSharedKey, true, true)) {
+            return false;
         }
         // TBD: Validate some enterprise params as well in the future here.
         return true;
@@ -890,10 +852,9 @@
         }
         pnoNetwork.flags |= WifiScanner.PnoSettings.PnoNetwork.FLAG_A_BAND;
         pnoNetwork.flags |= WifiScanner.PnoSettings.PnoNetwork.FLAG_G_BAND;
-        if (config.allowedKeyManagement.get(WifiConfiguration.KeyMgmt.WPA_PSK)) {
+        if (config.isSecurityType(WifiConfiguration.SECURITY_TYPE_PSK)) {
             pnoNetwork.authBitField |= WifiScanner.PnoSettings.PnoNetwork.AUTH_CODE_PSK;
-        } else if (config.allowedKeyManagement.get(WifiConfiguration.KeyMgmt.WPA_EAP)
-                || config.allowedKeyManagement.get(WifiConfiguration.KeyMgmt.IEEE8021X)) {
+        } else if (config.isSecurityType(WifiConfiguration.SECURITY_TYPE_EAP)) {
             pnoNetwork.authBitField |= WifiScanner.PnoSettings.PnoNetwork.AUTH_CODE_EAPOL;
         } else {
             pnoNetwork.authBitField |= WifiScanner.PnoSettings.PnoNetwork.AUTH_CODE_OPEN;
diff --git a/service/java/com/android/server/wifi/WifiKeyStore.java b/service/java/com/android/server/wifi/WifiKeyStore.java
index 814f521..1dd281f 100644
--- a/service/java/com/android/server/wifi/WifiKeyStore.java
+++ b/service/java/com/android/server/wifi/WifiKeyStore.java
@@ -282,7 +282,7 @@
 
         // For WPA3-Enterprise 192-bit networks, set the SuiteBCipher field based on the
         // CA certificate type. Suite-B requires SHA384, reject other certs.
-        if (config.allowedKeyManagement.get(WifiConfiguration.KeyMgmt.SUITE_B_192)) {
+        if (config.isSecurityType(WifiConfiguration.SECURITY_TYPE_EAP_WPA3_ENTERPRISE_192_BIT)) {
             // Read the CA certificates, and initialize
             String[] caAliases = config.enterpriseConfig.getCaCertificateAliases();
 
@@ -337,8 +337,9 @@
             }
 
             if (clientCertType == caCertType) {
-                config.allowedSuiteBCiphers.clear();
-                config.allowedSuiteBCiphers.set(clientCertType);
+                config.enableSuiteBCiphers(
+                        clientCertType == WifiConfiguration.SuiteBCipher.ECDHE_ECDSA,
+                        clientCertType == WifiConfiguration.SuiteBCipher.ECDHE_RSA);
             } else {
                 Log.e(TAG, "Client certificate for Suite-B is incompatible with the CA "
                         + "certificate");
diff --git a/service/java/com/android/server/wifi/WifiMetrics.java b/service/java/com/android/server/wifi/WifiMetrics.java
index 934805a..e788207 100644
--- a/service/java/com/android/server/wifi/WifiMetrics.java
+++ b/service/java/com/android/server/wifi/WifiMetrics.java
@@ -1255,8 +1255,7 @@
                     mConfigSsid = config.SSID;
                     // Get AuthType information from config (We do this again from ScanResult after
                     // associating with BSSID)
-                    if (config.allowedKeyManagement != null
-                            && config.allowedKeyManagement.get(WifiConfiguration.KeyMgmt.NONE)) {
+                    if (config.isSecurityType(WifiConfiguration.SECURITY_TYPE_OPEN)) {
                         mRouterFingerPrint.mRouterFingerPrintProto.authentication =
                                 WifiMetricsProto.RouterFingerPrint.AUTH_OPEN;
                     } else if (config.isEnterprise()) {
@@ -4106,23 +4105,24 @@
             mWifiLogProto.numPasspointNetworks = 0;
 
             for (WifiConfiguration config : networks) {
-                if (config.allowedKeyManagement.get(WifiConfiguration.KeyMgmt.NONE)) {
+                if (config.isSecurityType(WifiConfiguration.SECURITY_TYPE_OPEN)) {
                     mWifiLogProto.numOpenNetworks++;
-                } else if (config.allowedKeyManagement.get(WifiConfiguration.KeyMgmt.OWE)) {
+                } else if (config.isSecurityType(WifiConfiguration.SECURITY_TYPE_OWE)) {
                     mWifiLogProto.numEnhancedOpenNetworks++;
-                } else if (config.allowedKeyManagement.get(WifiConfiguration.KeyMgmt.WAPI_PSK)) {
+                } else if (config.isSecurityType(WifiConfiguration.SECURITY_TYPE_WAPI_PSK)) {
                     mWifiLogProto.numWapiPersonalNetworks++;
                 } else if (config.isEnterprise()) {
-                    if (config.allowedKeyManagement.get(WifiConfiguration.KeyMgmt.SUITE_B_192)) {
+                    if (config.isSecurityType(
+                            WifiConfiguration.SECURITY_TYPE_EAP_WPA3_ENTERPRISE_192_BIT)) {
                         mWifiLogProto.numWpa3EnterpriseNetworks++;
-                    } else if (config.allowedKeyManagement.get(
-                            WifiConfiguration.KeyMgmt.WAPI_CERT)) {
+                    } else if (config.isSecurityType(
+                            WifiConfiguration.SECURITY_TYPE_WAPI_CERT)) {
                         mWifiLogProto.numWapiEnterpriseNetworks++;
                     } else {
                         mWifiLogProto.numLegacyEnterpriseNetworks++;
                     }
                 } else {
-                    if (config.allowedKeyManagement.get(WifiConfiguration.KeyMgmt.SAE)) {
+                    if (config.isSecurityType(WifiConfiguration.SECURITY_TYPE_SAE)) {
                         mWifiLogProto.numWpa3PersonalNetworks++;
                     } else {
                         mWifiLogProto.numLegacyPersonalNetworks++;
diff --git a/service/java/com/android/server/wifi/hotspot2/OsuNetworkConnection.java b/service/java/com/android/server/wifi/hotspot2/OsuNetworkConnection.java
index b7915fb..6fb51a1 100644
--- a/service/java/com/android/server/wifi/hotspot2/OsuNetworkConnection.java
+++ b/service/java/com/android/server/wifi/hotspot2/OsuNetworkConnection.java
@@ -191,11 +191,10 @@
         config.providerFriendlyName = friendlyName;
 
         if (TextUtils.isEmpty(nai)) {
-            config.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.NONE);
+            config.setSecurityParams(WifiConfiguration.SECURITY_TYPE_OPEN);
         } else {
             // Setup OSEN connection with Unauthenticated user TLS and WFA Root certs
-            config.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.OSEN);
-            config.allowedProtocols.set(WifiConfiguration.Protocol.OSEN);
+            config.setSecurityParams(WifiConfiguration.SECURITY_TYPE_OSEN);
             config.enterpriseConfig.setDomainSuffixMatch(nai);
             config.enterpriseConfig.setEapMethod(WifiEnterpriseConfig.Eap.UNAUTH_TLS);
             config.enterpriseConfig.setCaPath(WfaKeyStore.DEFAULT_WFA_CERT_DIR);
diff --git a/service/java/com/android/server/wifi/hotspot2/PasspointProvider.java b/service/java/com/android/server/wifi/hotspot2/PasspointProvider.java
index 3b83a7a..1736960 100644
--- a/service/java/com/android/server/wifi/hotspot2/PasspointProvider.java
+++ b/service/java/com/android/server/wifi/hotspot2/PasspointProvider.java
@@ -495,6 +495,11 @@
      */
     public WifiConfiguration getWifiConfig() {
         WifiConfiguration wifiConfig = new WifiConfiguration();
+
+        // TODO: b/175928647, Initialize PASSPOINT_R3 type if AP broadcasts MFPR
+        //       or configuration mandates R3 only.
+        wifiConfig.setSecurityParams(WifiConfiguration.SECURITY_TYPE_PASSPOINT_R1_R2);
+
         wifiConfig.FQDN = mConfig.getHomeSp().getFqdn();
         wifiConfig.setPasspointUniqueId(mConfig.getUniqueId());
         if (mConfig.getHomeSp().getRoamingConsortiumOis() != null) {
@@ -511,8 +516,6 @@
             }
         }
         wifiConfig.providerFriendlyName = mConfig.getHomeSp().getFriendlyName();
-        wifiConfig.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.WPA_EAP);
-        wifiConfig.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.IEEE8021X);
         int carrierId = mConfig.getCarrierId();
         if (carrierId == TelephonyManager.UNKNOWN_CARRIER_ID) {
             carrierId = mBestGuessCarrierId;
@@ -526,9 +529,6 @@
         wifiConfig.oemPaid = mConfig.isOemPaid();
         wifiConfig.oemPrivate = mConfig.isOemPrivate();
 
-        // Set RSN only to tell wpa_supplicant that this network is for Passpoint.
-        wifiConfig.allowedProtocols.set(WifiConfiguration.Protocol.RSN);
-
         WifiEnterpriseConfig enterpriseConfig = new WifiEnterpriseConfig();
         enterpriseConfig.setRealm(mConfig.getCredential().getRealm());
         enterpriseConfig.setDomainSuffixMatch(mConfig.getHomeSp().getFqdn());
diff --git a/service/java/com/android/server/wifi/util/ScanResultUtil.java b/service/java/com/android/server/wifi/util/ScanResultUtil.java
index 4cb3fa3..6619c01 100644
--- a/service/java/com/android/server/wifi/util/ScanResultUtil.java
+++ b/service/java/com/android/server/wifi/util/ScanResultUtil.java
@@ -184,14 +184,16 @@
         if (isScanResultForSaeNetwork(scanResult)) {
             config.setSecurityParams(WifiConfiguration.SECURITY_TYPE_SAE);
         } else if (isScanResultForWapiPskNetwork(scanResult)) {
-            config.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.WAPI_PSK);
+            config.setSecurityParams(WifiConfiguration.SECURITY_TYPE_WAPI_PSK);
         } else if (isScanResultForWapiCertNetwork(scanResult)) {
-            config.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.WAPI_CERT);
+            config.setSecurityParams(WifiConfiguration.SECURITY_TYPE_WAPI_CERT);
         } else if (isScanResultForPskNetwork(scanResult)) {
             config.setSecurityParams(WifiConfiguration.SECURITY_TYPE_PSK);
         } else if (isScanResultForEapSuiteBNetwork(scanResult)) {
             config.setSecurityParams(WifiConfiguration.SECURITY_TYPE_EAP_WPA3_ENTERPRISE_192_BIT);
         } else if (isScanResultForEapNetwork(scanResult)) {
+            // TODO: b/175928875, add support for WPA3_ENTERPRISE type
+            //       (isScanResultForEapNetwork + MFPR from AP).
             config.setSecurityParams(WifiConfiguration.SECURITY_TYPE_EAP);
         } else if (isScanResultForWepNetwork(scanResult)) {
             config.setSecurityParams(WifiConfiguration.SECURITY_TYPE_WEP);
diff --git a/service/tests/wifitests/src/com/android/server/wifi/ClientModeImplTest.java b/service/tests/wifitests/src/com/android/server/wifi/ClientModeImplTest.java
index 6841388..930c800 100644
--- a/service/tests/wifitests/src/com/android/server/wifi/ClientModeImplTest.java
+++ b/service/tests/wifitests/src/com/android/server/wifi/ClientModeImplTest.java
@@ -4438,16 +4438,9 @@
     public void testWpa3UpgradeOffload() throws Exception {
         initializeAndAddNetworkAndVerifySuccess();
 
-        WifiConfiguration config = mock(WifiConfiguration.class);
+        WifiConfiguration config = new WifiConfiguration();
         config.SSID = sSSID;
-        BitSet allowedKeyManagement = mock(BitSet.class);
-        BitSet allowedAuthAlgorithms = mock(BitSet.class);
-        config.allowedKeyManagement = allowedKeyManagement;
-        config.allowedAuthAlgorithms = allowedAuthAlgorithms;
-        when(config.allowedKeyManagement.get(eq(WifiConfiguration.KeyMgmt.WPA_PSK))).thenReturn(
-                true);
-        when(config.getNetworkSelectionStatus())
-                .thenReturn(new WifiConfiguration.NetworkSelectionStatus());
+        config.setSecurityParams(WifiConfiguration.SECURITY_TYPE_PSK);
         when(mWifiConfigManager.getConfiguredNetworkWithoutMasking(0)).thenReturn(config);
         mResources.setBoolean(R.bool.config_wifiSaeUpgradeEnabled, true);
         mResources.setBoolean(R.bool.config_wifiSaeUpgradeOffloadEnabled, true);
@@ -4455,8 +4448,7 @@
         mCmi.sendMessage(ClientModeImpl.CMD_START_CONNECT, 0, 0, sBSSID);
         mLooper.dispatchAll();
 
-        verify(allowedKeyManagement).set(eq(WifiConfiguration.KeyMgmt.SAE));
-        verify(allowedAuthAlgorithms).clear();
+        assertTrue(config.isSecurityType(WifiConfiguration.SECURITY_TYPE_SAE));
     }
 
     /**
@@ -4509,20 +4501,9 @@
     public void testWpa3UpgradeWithSaeCandidate() throws Exception {
         initializeAndAddNetworkAndVerifySuccess();
 
-        WifiConfiguration config = mock(WifiConfiguration.class);
+        WifiConfiguration config = spy(new WifiConfiguration());
         config.SSID = sSSID;
-        BitSet allowedKeyManagement = mock(BitSet.class);
-        BitSet allowedAuthAlgorithms = mock(BitSet.class);
-        BitSet allowedProtocols = mock(BitSet.class);
-        BitSet allowedPairwiseCiphers = mock(BitSet.class);
-        BitSet allowedGroupCiphers = mock(BitSet.class);
-        config.allowedKeyManagement = allowedKeyManagement;
-        config.allowedAuthAlgorithms = allowedAuthAlgorithms;
-        config.allowedProtocols = allowedProtocols;
-        config.allowedPairwiseCiphers = allowedPairwiseCiphers;
-        config.allowedGroupCiphers = allowedGroupCiphers;
-        when(config.allowedKeyManagement.get(eq(WifiConfiguration.KeyMgmt.WPA_PSK)))
-                .thenReturn(true);
+        config.setSecurityParams(WifiConfiguration.SECURITY_TYPE_PSK);
         WifiConfiguration.NetworkSelectionStatus networkSelectionStatus =
                 mock(WifiConfiguration.NetworkSelectionStatus.class);
         when(config.getNetworkSelectionStatus()).thenReturn(networkSelectionStatus);
@@ -4545,7 +4526,7 @@
         mCmi.sendMessage(ClientModeImpl.CMD_START_CONNECT, 0, 0, sBSSID);
         mLooper.dispatchAll();
 
-        verify(config).setSecurityParams(eq(WifiConfiguration.SECURITY_TYPE_SAE));
+        assertTrue(config.isSecurityType(WifiConfiguration.SECURITY_TYPE_SAE));
     }
 
     /**
@@ -4558,20 +4539,9 @@
     public void testWpa3UpgradeWithSaeCandidateAndPskApInRange() throws Exception {
         initializeAndAddNetworkAndVerifySuccess();
 
-        WifiConfiguration config = mock(WifiConfiguration.class);
+        WifiConfiguration config = spy(new WifiConfiguration());
         config.SSID = sSSID;
-        BitSet allowedKeyManagement = mock(BitSet.class);
-        BitSet allowedAuthAlgorithms = mock(BitSet.class);
-        BitSet allowedProtocols = mock(BitSet.class);
-        BitSet allowedPairwiseCiphers = mock(BitSet.class);
-        BitSet allowedGroupCiphers = mock(BitSet.class);
-        config.allowedKeyManagement = allowedKeyManagement;
-        config.allowedAuthAlgorithms = allowedAuthAlgorithms;
-        config.allowedProtocols = allowedProtocols;
-        config.allowedPairwiseCiphers = allowedPairwiseCiphers;
-        config.allowedGroupCiphers = allowedGroupCiphers;
-        when(config.allowedKeyManagement.get(eq(WifiConfiguration.KeyMgmt.WPA_PSK)))
-                .thenReturn(true);
+        config.setSecurityParams(WifiConfiguration.SECURITY_TYPE_PSK);
         WifiConfiguration.NetworkSelectionStatus networkSelectionStatus =
                 mock(WifiConfiguration.NetworkSelectionStatus.class);
         when(config.getNetworkSelectionStatus()).thenReturn(networkSelectionStatus);
@@ -4617,7 +4587,7 @@
         mCmi.sendMessage(ClientModeImpl.CMD_START_CONNECT, 0, 0, sBSSID);
         mLooper.dispatchAll();
 
-        verify(config, never()).setSecurityParams(eq(WifiConfiguration.SECURITY_TYPE_SAE));
+        assertFalse(config.isSecurityType(WifiConfiguration.SECURITY_TYPE_SAE));
     }
 
     /**
@@ -4631,20 +4601,9 @@
     public void testWpa3UpgradeWithNoCandidate() throws Exception {
         initializeAndAddNetworkAndVerifySuccess();
 
-        WifiConfiguration config = mock(WifiConfiguration.class);
+        WifiConfiguration config = spy(new WifiConfiguration());
         config.SSID = sSSID;
-        BitSet allowedKeyManagement = mock(BitSet.class);
-        BitSet allowedAuthAlgorithms = mock(BitSet.class);
-        BitSet allowedProtocols = mock(BitSet.class);
-        BitSet allowedPairwiseCiphers = mock(BitSet.class);
-        BitSet allowedGroupCiphers = mock(BitSet.class);
-        config.allowedKeyManagement = allowedKeyManagement;
-        config.allowedAuthAlgorithms = allowedAuthAlgorithms;
-        config.allowedProtocols = allowedProtocols;
-        config.allowedPairwiseCiphers = allowedPairwiseCiphers;
-        config.allowedGroupCiphers = allowedGroupCiphers;
-        when(config.allowedKeyManagement.get(eq(WifiConfiguration.KeyMgmt.WPA_PSK)))
-                .thenReturn(true);
+        config.setSecurityParams(WifiConfiguration.SECURITY_TYPE_PSK);
         WifiConfiguration.NetworkSelectionStatus networkSelectionStatus =
                 mock(WifiConfiguration.NetworkSelectionStatus.class);
         when(config.getNetworkSelectionStatus()).thenReturn(networkSelectionStatus);
@@ -4674,7 +4633,7 @@
         mCmi.sendMessage(ClientModeImpl.CMD_START_CONNECT, 0, 0, sBSSID);
         mLooper.dispatchAll();
 
-        verify(config).setSecurityParams(eq(WifiConfiguration.SECURITY_TYPE_SAE));
+        assertTrue(config.isSecurityType(WifiConfiguration.SECURITY_TYPE_SAE));
     }
 
     private static ScanResult.InformationElement createIE(int id, byte[] bytes) {
diff --git a/service/tests/wifitests/src/com/android/server/wifi/ConfigurationMapTest.java b/service/tests/wifitests/src/com/android/server/wifi/ConfigurationMapTest.java
index d9601ef..188b0c7 100644
--- a/service/tests/wifitests/src/com/android/server/wifi/ConfigurationMapTest.java
+++ b/service/tests/wifitests/src/com/android/server/wifi/ConfigurationMapTest.java
@@ -292,8 +292,7 @@
         WifiConfiguration config = WifiConfigurationTestUtil.createOpenNetwork();
         ScanResult scanResult = createScanResultForNetwork(config);
         // Change the network security type and the old scan result should not match now.
-        config.allowedKeyManagement.clear();
-        config.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.WPA_PSK);
+        config.setSecurityParams(WifiConfiguration.SECURITY_TYPE_PSK);
         mConfigs.put(config);
         assertNull(mConfigs.getByScanResultForCurrentUser(scanResult));
     }
diff --git a/service/tests/wifitests/src/com/android/server/wifi/DppManagerTest.java b/service/tests/wifitests/src/com/android/server/wifi/DppManagerTest.java
index 968cb84..6ca8ff4 100644
--- a/service/tests/wifitests/src/com/android/server/wifi/DppManagerTest.java
+++ b/service/tests/wifitests/src/com/android/server/wifi/DppManagerTest.java
@@ -208,7 +208,7 @@
         selectedNetwork.SSID = "\"Test_SSID\"";
         selectedNetwork.networkId = TEST_NETWORK_ID;
         selectedNetwork.preSharedKey = "\"secretPassword\"";
-        selectedNetwork.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.WPA_PSK);
+        selectedNetwork.setSecurityParams(WifiConfiguration.SECURITY_TYPE_PSK);
 
         when(mWifiConfigManager.getConfiguredNetworkWithoutMasking(anyInt())).thenReturn(
                 selectedNetwork);
@@ -256,7 +256,7 @@
         selectedNetwork.SSID = "\"Test_SSID\"";
         selectedNetwork.networkId = TEST_NETWORK_ID;
         selectedNetwork.preSharedKey = "\"secretPassword\"";
-        selectedNetwork.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.WPA_PSK);
+        selectedNetwork.setSecurityParams(WifiConfiguration.SECURITY_TYPE_PSK);
 
         when(mWifiConfigManager.getConfiguredNetworkWithoutMasking(anyInt())).thenReturn(
                 selectedNetwork);
@@ -302,7 +302,7 @@
         selectedNetwork.SSID = TEST_SSID;
         selectedNetwork.networkId = TEST_NETWORK_ID;
         selectedNetwork.preSharedKey = TEST_PASSWORD;
-        selectedNetwork.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.WPA_PSK);
+        selectedNetwork.setSecurityParams(WifiConfiguration.SECURITY_TYPE_PSK);
 
         when(mWifiConfigManager.getConfiguredNetworkWithoutMasking(anyInt())).thenReturn(
                 selectedNetwork);
@@ -327,7 +327,7 @@
         selectedNetwork.SSID = TEST_SSID;
         selectedNetwork.networkId = TEST_NETWORK_ID;
         selectedNetwork.preSharedKey = TEST_PASSWORD;
-        selectedNetwork.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.SAE);
+        selectedNetwork.setSecurityParams(WifiConfiguration.SECURITY_TYPE_SAE);
 
         when(mWifiConfigManager.getConfiguredNetworkWithoutMasking(anyInt())).thenReturn(
                 selectedNetwork);
@@ -351,7 +351,7 @@
         WifiConfiguration selectedNetwork = new WifiConfiguration();
         selectedNetwork.SSID = TEST_SSID;
         selectedNetwork.networkId = TEST_NETWORK_ID;
-        selectedNetwork.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.NONE);
+        selectedNetwork.setSecurityParams(WifiConfiguration.SECURITY_TYPE_OPEN);
 
         when(mWifiConfigManager.getConfiguredNetworkWithoutMasking(anyInt())).thenReturn(
                 selectedNetwork);
@@ -375,7 +375,7 @@
         WifiConfiguration selectedNetwork = new WifiConfiguration();
         selectedNetwork.SSID = TEST_SSID;
         selectedNetwork.networkId = TEST_NETWORK_ID;
-        selectedNetwork.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.WPA_EAP);
+        selectedNetwork.setSecurityParams(WifiConfiguration.SECURITY_TYPE_EAP);
 
         when(mWifiConfigManager.getConfiguredNetworkWithoutMasking(anyInt())).thenReturn(
                 selectedNetwork);
@@ -413,7 +413,7 @@
         selectedNetwork.SSID = TEST_SSID;
         selectedNetwork.networkId = 1;
         selectedNetwork.preSharedKey = TEST_PASSWORD;
-        selectedNetwork.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.SAE);
+        selectedNetwork.setSecurityParams(WifiConfiguration.SECURITY_TYPE_SAE);
 
         when(mWifiConfigManager.getConfiguredNetworkWithoutMasking(anyInt())).thenReturn(
                 selectedNetwork);
@@ -466,7 +466,7 @@
         selectedNetwork.SSID = TEST_SSID;
         selectedNetwork.networkId = 1;
         selectedNetwork.preSharedKey = TEST_PASSWORD;
-        selectedNetwork.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.SAE);
+        selectedNetwork.setSecurityParams(WifiConfiguration.SECURITY_TYPE_SAE);
 
         when(mWifiConfigManager.getConfiguredNetworkWithoutMasking(anyInt())).thenReturn(
                 selectedNetwork);
@@ -529,7 +529,7 @@
         selectedNetwork.SSID = TEST_SSID;
         selectedNetwork.networkId = TEST_NETWORK_ID;
         selectedNetwork.preSharedKey = TEST_PASSWORD;
-        selectedNetwork.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.SAE);
+        selectedNetwork.setSecurityParams(WifiConfiguration.SECURITY_TYPE_SAE);
 
         // Generate a progress event
         dppEventCallback.onProgress(AUTHENTICATION_SUCCESS);
@@ -560,7 +560,7 @@
         selectedNetwork.SSID = TEST_SSID;
         selectedNetwork.networkId = TEST_NETWORK_ID;
         selectedNetwork.preSharedKey = TEST_PASSWORD;
-        selectedNetwork.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.SAE);
+        selectedNetwork.setSecurityParams(WifiConfiguration.SECURITY_TYPE_SAE);
 
         when(mWifiConfigManager.getConfiguredNetworkWithoutMasking(anyInt())).thenReturn(
                 selectedNetwork);
@@ -845,7 +845,7 @@
         selectedNetwork.SSID = TEST_SSID;
         selectedNetwork.networkId = 1;
         selectedNetwork.preSharedKey = TEST_PASSWORD;
-        selectedNetwork.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.SAE);
+        selectedNetwork.setSecurityParams(WifiConfiguration.SECURITY_TYPE_SAE);
 
         when(mWifiConfigManager.getConfiguredNetworkWithoutMasking(anyInt())).thenReturn(
                 selectedNetwork);
@@ -902,7 +902,7 @@
         selectedNetwork.SSID = TEST_SSID;
         selectedNetwork.networkId = TEST_NETWORK_ID;
         selectedNetwork.preSharedKey = TEST_PASSWORD;
-        selectedNetwork.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.SAE);
+        selectedNetwork.setSecurityParams(WifiConfiguration.SECURITY_TYPE_SAE);
 
         when(mWifiConfigManager.getConfiguredNetworkWithoutMasking(anyInt())).thenReturn(
                 selectedNetwork);
diff --git a/service/tests/wifitests/src/com/android/server/wifi/SupplicantStaIfaceHalTest.java b/service/tests/wifitests/src/com/android/server/wifi/SupplicantStaIfaceHalTest.java
index 4967464..23bd988 100644
--- a/service/tests/wifitests/src/com/android/server/wifi/SupplicantStaIfaceHalTest.java
+++ b/service/tests/wifitests/src/com/android/server/wifi/SupplicantStaIfaceHalTest.java
@@ -1116,7 +1116,7 @@
         executeAndValidateInitializationSequence();
         assertNotNull(mISupplicantStaIfaceCallback);
         executeAndValidateConnectSequenceWithKeyMgmt(
-                0, false, WifiConfiguration.KeyMgmt.WPA_PSK, null);
+                0, false, WifiConfiguration.SECURITY_TYPE_PSK, null);
 
         int reasonCode = 3;
         mISupplicantStaIfaceCallback.onDisconnected(
@@ -1149,7 +1149,7 @@
         executeAndValidateInitializationSequence();
         assertNotNull(mISupplicantStaIfaceCallback);
         executeAndValidateConnectSequenceWithKeyMgmt(
-                0, false, WifiConfiguration.KeyMgmt.WPA_EAP, null);
+                0, false, WifiConfiguration.SECURITY_TYPE_EAP, null);
 
         int reasonCode = 3;
         mISupplicantStaIfaceCallback.onDisconnected(
@@ -1188,7 +1188,7 @@
         executeAndValidateInitializationSequence();
         assertNotNull(mISupplicantStaIfaceCallback);
         executeAndValidateConnectSequenceWithKeyMgmt(
-                0, false, WifiConfiguration.KeyMgmt.WPA_EAP, null);
+                0, false, WifiConfiguration.SECURITY_TYPE_EAP, null);
 
         int reasonCode = 3;
         mISupplicantStaIfaceCallback.onStateChanged(
@@ -1216,7 +1216,7 @@
         assertNotNull(mISupplicantStaIfaceCallback);
 
         executeAndValidateConnectSequenceWithKeyMgmt(SUPPLICANT_NETWORK_ID, false,
-                WifiConfiguration.KeyMgmt.SAE, null);
+                WifiConfiguration.SECURITY_TYPE_SAE, null);
 
         mISupplicantStaIfaceCallback.onStateChanged(
                 ISupplicantStaIfaceCallback.State.ASSOCIATING,
@@ -1241,7 +1241,7 @@
         assertNotNull(mISupplicantStaIfaceCallback);
 
         executeAndValidateConnectSequenceWithKeyMgmt(SUPPLICANT_NETWORK_ID, false,
-                WifiConfiguration.KeyMgmt.NONE, "97CA326539");
+                WifiConfiguration.SECURITY_TYPE_WEP, "97CA326539");
 
         mISupplicantStaIfaceCallback.onStateChanged(
                 ISupplicantStaIfaceCallback.State.ASSOCIATING,
@@ -1943,7 +1943,7 @@
         long testStartSeconds = PMK_CACHE_EXPIRATION_IN_SEC / 2;
         WifiConfiguration config = new WifiConfiguration();
         config.networkId = testFrameworkNetworkId;
-        config.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.WPA_EAP);
+        config.setSecurityParams(WifiConfiguration.SECURITY_TYPE_EAP);
         PmkCacheStoreData pmkCacheData =
                 new PmkCacheStoreData(PMK_CACHE_EXPIRATION_IN_SEC, new ArrayList<Byte>(),
                         MacAddress.fromBytes(CONNECTED_MAC_ADDRESS_BYTES));
@@ -1978,7 +1978,7 @@
         long testStartSeconds = PMK_CACHE_EXPIRATION_IN_SEC / 2;
         WifiConfiguration config = new WifiConfiguration();
         config.networkId = testFrameworkNetworkId;
-        config.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.WPA_EAP);
+        config.setSecurityParams(WifiConfiguration.SECURITY_TYPE_EAP);
         when(mClock.getElapsedSinceBootMillis()).thenReturn(testStartSeconds * 1000L);
 
         setupMocksForHalV1_3();
@@ -2005,7 +2005,7 @@
         long testStartSeconds = PMK_CACHE_EXPIRATION_IN_SEC / 2;
         WifiConfiguration config = new WifiConfiguration();
         config.networkId = testFrameworkNetworkId;
-        config.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.WPA_PSK);
+        config.setSecurityParams(WifiConfiguration.SECURITY_TYPE_PSK);
         PmkCacheStoreData pmkCacheData =
                 new PmkCacheStoreData(PMK_CACHE_EXPIRATION_IN_SEC, new ArrayList<Byte>(),
                         MacAddress.fromBytes(CONNECTED_MAC_ADDRESS_BYTES));
@@ -2036,7 +2036,7 @@
         long testStartSeconds = PMK_CACHE_EXPIRATION_IN_SEC / 2;
         WifiConfiguration config = new WifiConfiguration();
         config.networkId = testFrameworkNetworkId;
-        config.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.WPA_EAP);
+        config.setSecurityParams(WifiConfiguration.SECURITY_TYPE_EAP);
         PmkCacheStoreData pmkCacheData =
                 new PmkCacheStoreData(PMK_CACHE_EXPIRATION_IN_SEC, new ArrayList<Byte>(),
                         MacAddress.fromBytes(CONNECTED_MAC_ADDRESS_BYTES));
@@ -2064,7 +2064,7 @@
         long testStartSeconds = PMK_CACHE_EXPIRATION_IN_SEC / 2;
         WifiConfiguration config = new WifiConfiguration();
         config.networkId = testFrameworkNetworkId;
-        config.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.WPA_EAP);
+        config.setSecurityParams(WifiConfiguration.SECURITY_TYPE_EAP);
         PmkCacheStoreData pmkCacheData =
                 new PmkCacheStoreData(PMK_CACHE_EXPIRATION_IN_SEC, new ArrayList<Byte>(),
                         MacAddress.fromBytes(CONNECTED_MAC_ADDRESS_BYTES));
@@ -2094,7 +2094,7 @@
         long testStartSeconds = PMK_CACHE_EXPIRATION_IN_SEC / 2;
         WifiConfiguration config = new WifiConfiguration();
         config.networkId = testFrameworkNetworkId;
-        config.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.WPA_EAP);
+        config.setSecurityParams(WifiConfiguration.SECURITY_TYPE_EAP);
         // Assume we have a PMK cache with a different MAC address.
         final byte[] previouisConnectedMacAddressBytes =
                 {0x00, 0x01, 0x02, 0x03, 0x04, 0x09};
@@ -2782,7 +2782,7 @@
     private WifiConfiguration executeAndValidateConnectSequence(
             final int newFrameworkNetworkId, final boolean haveExistingNetwork) throws Exception {
         return executeAndValidateConnectSequenceWithKeyMgmt(newFrameworkNetworkId,
-                haveExistingNetwork, WifiConfiguration.KeyMgmt.WPA_PSK, null);
+                haveExistingNetwork, WifiConfiguration.SECURITY_TYPE_PSK, null);
     }
 
     /**
@@ -2790,17 +2790,17 @@
      *
      * @param newFrameworkNetworkId Framework Network Id of the new network to connect.
      * @param haveExistingNetwork Removes the existing network.
-     * @param keyMgmt Key management of the new network.
+     * @param securityType The security type.
      * @param wepKey if configurations are for a WEP network else null.
      * @return the WifiConfiguration object of the new network to connect.
      */
     private WifiConfiguration executeAndValidateConnectSequenceWithKeyMgmt(
             final int newFrameworkNetworkId, final boolean haveExistingNetwork,
-            int keyMgmt, String wepKey) throws Exception {
+            int securityType, String wepKey) throws Exception {
         setupMocksForConnectSequence(haveExistingNetwork);
         WifiConfiguration config = new WifiConfiguration();
+        config.setSecurityParams(securityType);
         config.networkId = newFrameworkNetworkId;
-        config.allowedKeyManagement.set(keyMgmt);
         config.wepKeys[0] = wepKey;
         config.wepTxKeyIndex = 0;
         assertTrue(mDut.connectToNetwork(WLAN0_IFACE_NAME, config));
diff --git a/service/tests/wifitests/src/com/android/server/wifi/WifiConfigManagerTest.java b/service/tests/wifitests/src/com/android/server/wifi/WifiConfigManagerTest.java
index a3abad2..37531d1 100644
--- a/service/tests/wifitests/src/com/android/server/wifi/WifiConfigManagerTest.java
+++ b/service/tests/wifitests/src/com/android/server/wifi/WifiConfigManagerTest.java
@@ -2177,9 +2177,7 @@
         verifyAddNetworkHasEverConnectedFalse(pskNetwork);
         verifyUpdateNetworkAfterConnectHasEverConnectedTrue(pskNetwork.networkId);
 
-        assertFalse(pskNetwork.allowedKeyManagement.get(WifiConfiguration.KeyMgmt.IEEE8021X));
-        pskNetwork.allowedKeyManagement.clear();
-        pskNetwork.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.SAE);
+        pskNetwork.setSecurityParams(WifiConfiguration.SECURITY_TYPE_SAE);
         pskNetwork.requirePmf = true;
         verifyUpdateNetworkWithCredentialChangeHasEverConnectedFalse(pskNetwork);
     }
@@ -2260,28 +2258,6 @@
     }
 
     /**
-     * Verifies that hasEverConnected is cleared when a network config |requirePMF| is
-     * updated.
-     */
-    @Test
-    public void testUpdateRequirePMFClearsHasEverConnected() {
-        WifiConfiguration pskNetwork = WifiConfigurationTestUtil.createPskNetwork();
-        verifyAddNetworkHasEverConnectedFalse(pskNetwork);
-        verifyUpdateNetworkAfterConnectHasEverConnectedTrue(pskNetwork.networkId);
-
-        assertFalse(pskNetwork.requirePmf);
-        pskNetwork.requirePmf = true;
-
-        NetworkUpdateResult result =
-                verifyUpdateNetworkToWifiConfigManagerWithoutIpChange(pskNetwork);
-        WifiConfiguration retrievedNetwork =
-                mWifiConfigManager.getConfiguredNetwork(result.getNetworkId());
-        assertFalse("Updating network credentials config must clear hasEverConnected.",
-                retrievedNetwork.getNetworkSelectionStatus().hasEverConnected());
-        assertTrue(result.hasCredentialChanged());
-    }
-
-    /**
      * Verifies that hasEverConnected is cleared when a network config |enterpriseConfig| is
      * updated.
      */
@@ -4205,6 +4181,7 @@
         // successfully.
         WifiConfiguration network1 = new WifiConfiguration();
         network1.SSID = ssid;
+        network1.convertLegacyFieldsToSecurityParamsIfNeeded();
         NetworkUpdateResult result = addNetworkToWifiConfigManager(network1);
         assertTrue(result.getNetworkId() != WifiConfiguration.INVALID_NETWORK_ID);
         assertTrue(result.isNewNetwork());
@@ -4219,6 +4196,7 @@
         // didn't add a new duplicate network.
         WifiConfiguration network2 = new WifiConfiguration();
         network2.SSID = ssid;
+        network2.convertLegacyFieldsToSecurityParamsIfNeeded();
         result = addNetworkToWifiConfigManager(network2);
         assertTrue(result.getNetworkId() != WifiConfiguration.INVALID_NETWORK_ID);
         assertFalse(result.isNewNetwork());
@@ -4241,7 +4219,7 @@
         // successfully.
         WifiConfiguration network1 = new WifiConfiguration();
         network1.SSID = ssid;
-        network1.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.WPA_PSK);
+        network1.setSecurityParams(WifiConfiguration.SECURITY_TYPE_PSK);
         network1.preSharedKey = "\"test_blah\"";
         NetworkUpdateResult result = addNetworkToWifiConfigManager(network1);
         assertTrue(result.getNetworkId() != WifiConfiguration.INVALID_NETWORK_ID);
@@ -4257,7 +4235,7 @@
         // does add a new network.
         WifiConfiguration network2 = new WifiConfiguration();
         network2.SSID = ssid;
-        network2.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.NONE);
+        network2.setSecurityParams(WifiConfiguration.SECURITY_TYPE_OPEN);
         result = addNetworkToWifiConfigManager(network2);
         assertTrue(result.getNetworkId() != WifiConfiguration.INVALID_NETWORK_ID);
         assertTrue(result.isNewNetwork());
@@ -5234,30 +5212,6 @@
      * WifiConfigManager.
      */
     private void setDefaults(WifiConfiguration configuration) {
-        if (configuration.allowedProtocols.isEmpty()) {
-            configuration.allowedProtocols.set(WifiConfiguration.Protocol.RSN);
-            configuration.allowedProtocols.set(WifiConfiguration.Protocol.WPA);
-        }
-        if (configuration.allowedKeyManagement.isEmpty()) {
-            configuration.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.WPA_PSK);
-            configuration.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.WPA_EAP);
-        }
-        if (configuration.allowedPairwiseCiphers.isEmpty()) {
-            configuration.allowedPairwiseCiphers.set(WifiConfiguration.PairwiseCipher.GCMP_256);
-            configuration.allowedPairwiseCiphers.set(WifiConfiguration.PairwiseCipher.CCMP);
-            configuration.allowedPairwiseCiphers.set(WifiConfiguration.PairwiseCipher.TKIP);
-        }
-        if (configuration.allowedGroupCiphers.isEmpty()) {
-            configuration.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.GCMP_256);
-            configuration.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.CCMP);
-            configuration.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.TKIP);
-            configuration.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.WEP40);
-            configuration.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.WEP104);
-        }
-        if (configuration.allowedGroupManagementCiphers.isEmpty()) {
-            configuration.allowedGroupManagementCiphers
-                    .set(WifiConfiguration.GroupMgmtCipher.BIP_GMAC_256);
-        }
         if (configuration.getIpAssignment() == IpConfiguration.IpAssignment.UNASSIGNED) {
             configuration.setIpAssignment(IpConfiguration.IpAssignment.DHCP);
         }
diff --git a/service/tests/wifitests/src/com/android/server/wifi/WifiConfigurationTestUtil.java b/service/tests/wifitests/src/com/android/server/wifi/WifiConfigurationTestUtil.java
index 01138a1..198c465 100644
--- a/service/tests/wifitests/src/com/android/server/wifi/WifiConfigurationTestUtil.java
+++ b/service/tests/wifitests/src/com/android/server/wifi/WifiConfigurationTestUtil.java
@@ -145,9 +145,12 @@
         WifiConfiguration config = generateWifiConfig(networkId, uid, ssid, shared, enabled, fqdn,
                 providerFriendlyName);
 
-        if ((security == SECURITY_NONE) || ((security & SECURITY_WEP) != 0)) {
+        if (security == SECURITY_NONE) {
             config.addSecurityParams(WifiConfiguration.SECURITY_TYPE_OPEN);
         } else {
+            if ((security & SECURITY_WEP) != 0) {
+                config.addSecurityParams(WifiConfiguration.SECURITY_TYPE_WEP);
+            }
             if ((security & SECURITY_PSK) != 0) {
                 config.addSecurityParams(WifiConfiguration.SECURITY_TYPE_PSK);
             }
@@ -178,6 +181,7 @@
 
             if ((security & SECURITY_WAPI_CERT) != 0) {
                 config.addSecurityParams(WifiConfiguration.SECURITY_TYPE_WAPI_CERT);
+                config.enterpriseConfig.setEapMethod(WifiEnterpriseConfig.Eap.WAPI_CERT);
             }
 
         }
@@ -534,23 +538,23 @@
      */
     public static String getScanResultCapsForNetwork(WifiConfiguration configuration) {
         String caps;
-        if (configuration.allowedKeyManagement.get(WifiConfiguration.KeyMgmt.WPA_PSK)) {
+        if (configuration.isSecurityType(WifiConfiguration.SECURITY_TYPE_PSK)) {
             caps = "[RSN-PSK-CCMP]";
-        } else if (configuration.allowedKeyManagement.get(WifiConfiguration.KeyMgmt.WPA_EAP)
-                || configuration.allowedKeyManagement.get(WifiConfiguration.KeyMgmt.IEEE8021X)) {
+        } else if (configuration.isSecurityType(WifiConfiguration.SECURITY_TYPE_EAP)) {
             caps = "[RSN-EAP-CCMP]";
-        } else if (configuration.allowedKeyManagement.get(WifiConfiguration.KeyMgmt.NONE)
+        } else if (configuration.isSecurityType(WifiConfiguration.SECURITY_TYPE_WEP)
                 && WifiConfigurationUtil.hasAnyValidWepKey(configuration.wepKeys)) {
             caps = "[WEP]";
-        } else if (configuration.allowedKeyManagement.get(WifiConfiguration.KeyMgmt.SAE)) {
+        } else if (configuration.isSecurityType(WifiConfiguration.SECURITY_TYPE_SAE)) {
             caps = "[RSN-SAE-CCMP]";
-        } else if (configuration.allowedKeyManagement.get(WifiConfiguration.KeyMgmt.OWE)) {
+        } else if (configuration.isSecurityType(WifiConfiguration.SECURITY_TYPE_OWE)) {
             caps = "[RSN-OWE-CCMP]";
-        } else if (configuration.allowedKeyManagement.get(WifiConfiguration.KeyMgmt.SUITE_B_192)) {
+        } else if (configuration.isSecurityType(
+                WifiConfiguration.SECURITY_TYPE_EAP_WPA3_ENTERPRISE_192_BIT)) {
             caps = "[RSN-SUITE-B-192-CCMP]";
-        } else if (configuration.allowedKeyManagement.get(WifiConfiguration.KeyMgmt.WAPI_PSK)) {
+        } else if (configuration.isSecurityType(WifiConfiguration.SECURITY_TYPE_WAPI_PSK)) {
             caps = "[WAPI-WAPI-PSK-SMS4]";
-        } else if (configuration.allowedKeyManagement.get(WifiConfiguration.KeyMgmt.WAPI_CERT)) {
+        } else if (configuration.isSecurityType(WifiConfiguration.SECURITY_TYPE_WAPI_CERT)) {
             caps = "[WAPI-WAPI-CERT-SMS4]";
         } else {
             caps = "[]";
@@ -725,10 +729,7 @@
         assertEquals(expected.hiddenSSID, actual.hiddenSSID);
         assertEquals(expected.requirePmf, actual.requirePmf);
         assertEquals(expected.allowedKeyManagement, actual.allowedKeyManagement);
-        assertEquals(expected.allowedProtocols, actual.allowedProtocols);
-        assertEquals(expected.allowedAuthAlgorithms, actual.allowedAuthAlgorithms);
-        assertEquals(expected.allowedGroupCiphers, actual.allowedGroupCiphers);
-        assertEquals(expected.allowedPairwiseCiphers, actual.allowedPairwiseCiphers);
+        /* security params are static to the security type, no need to check them anymore */
         assertWifiEnterpriseConfigEqualForConfigStore(
                 expected.enterpriseConfig, actual.enterpriseConfig);
     }
diff --git a/service/tests/wifitests/src/com/android/server/wifi/WifiConfigurationUtilTest.java b/service/tests/wifitests/src/com/android/server/wifi/WifiConfigurationUtilTest.java
index 119d6fa..37bfa59 100644
--- a/service/tests/wifitests/src/com/android/server/wifi/WifiConfigurationUtilTest.java
+++ b/service/tests/wifitests/src/com/android/server/wifi/WifiConfigurationUtilTest.java
@@ -601,45 +601,6 @@
     }
 
     /**
-     * Verify that the validate method fails to validate WifiConfiguration with malformed sae
-     * string.
-     */
-    @Test
-    public void testValidateNegativeCases_SaeMissingPmf() {
-        WifiConfiguration config = WifiConfigurationTestUtil.createSaeNetwork();
-        assertTrue(WifiConfigurationUtil.validate(config, WifiConfigurationUtil.VALIDATE_FOR_ADD));
-
-        config.requirePmf = false;
-        assertFalse(WifiConfigurationUtil.validate(config, WifiConfigurationUtil.VALIDATE_FOR_ADD));
-    }
-
-    /**
-     * Verify that the validate method fails to validate WifiConfiguration with malformed owe
-     * string.
-     */
-    @Test
-    public void testValidateNegativeCases_OweMissingPmf() {
-        WifiConfiguration config = WifiConfigurationTestUtil.createOweNetwork();
-        assertTrue(WifiConfigurationUtil.validate(config, WifiConfigurationUtil.VALIDATE_FOR_ADD));
-
-        config.requirePmf = false;
-        assertFalse(WifiConfigurationUtil.validate(config, WifiConfigurationUtil.VALIDATE_FOR_ADD));
-    }
-
-    /**
-     * Verify that the validate method fails to validate WifiConfiguration with malformed suiteb
-     * string.
-     */
-    @Test
-    public void testValidateNegativeCases_SuitebMissingPmf() {
-        WifiConfiguration config = WifiConfigurationTestUtil.createEapSuiteBNetwork();
-        assertTrue(WifiConfigurationUtil.validate(config, WifiConfigurationUtil.VALIDATE_FOR_ADD));
-
-        config.requirePmf = false;
-        assertFalse(WifiConfigurationUtil.validate(config, WifiConfigurationUtil.VALIDATE_FOR_ADD));
-    }
-
-    /**
      * Verify that the validate method successfully validates good WifiNetworkSpecifier with
      * only ssid pattern set.
      */
diff --git a/service/tests/wifitests/src/com/android/server/wifi/WifiNetworkFactoryTest.java b/service/tests/wifitests/src/com/android/server/wifi/WifiNetworkFactoryTest.java
index 80dca9e..cb8424a 100644
--- a/service/tests/wifitests/src/com/android/server/wifi/WifiNetworkFactoryTest.java
+++ b/service/tests/wifitests/src/com/android/server/wifi/WifiNetworkFactoryTest.java
@@ -753,7 +753,7 @@
         Pair<MacAddress, MacAddress> bssidPatternMatch =
                 Pair.create(WifiManager.ALL_ZEROS_MAC_ADDRESS, WifiManager.ALL_ZEROS_MAC_ADDRESS);
         WifiConfiguration wifiConfiguration = new WifiConfiguration();
-        wifiConfiguration.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.WPA_PSK);
+        wifiConfiguration.setSecurityParams(WifiConfiguration.SECURITY_TYPE_PSK);
         wifiConfiguration.preSharedKey = TEST_WPA_PRESHARED_KEY;
         attachWifiNetworkSpecifierAndAppInfo(
                 ssidPatternMatch, bssidPatternMatch, wifiConfiguration, TEST_UID_1,
@@ -795,7 +795,7 @@
         Pair<MacAddress, MacAddress> bssidPatternMatch =
                 Pair.create(WifiManager.ALL_ZEROS_MAC_ADDRESS, WifiManager.ALL_ZEROS_MAC_ADDRESS);
         WifiConfiguration wifiConfiguration = new WifiConfiguration();
-        wifiConfiguration.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.WPA_PSK);
+        wifiConfiguration.setSecurityParams(WifiConfiguration.SECURITY_TYPE_PSK);
         wifiConfiguration.preSharedKey = TEST_WPA_PRESHARED_KEY;
         attachWifiNetworkSpecifierAndAppInfo(
                 ssidPatternMatch, bssidPatternMatch, wifiConfiguration, TEST_UID_1,
@@ -837,7 +837,7 @@
         Pair<MacAddress, MacAddress> bssidPatternMatch =
                 Pair.create(WifiManager.ALL_ZEROS_MAC_ADDRESS, WifiManager.ALL_ZEROS_MAC_ADDRESS);
         WifiConfiguration wifiConfiguration = new WifiConfiguration();
-        wifiConfiguration.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.NONE);
+        wifiConfiguration.setSecurityParams(WifiConfiguration.SECURITY_TYPE_OPEN);
         wifiConfiguration.preSharedKey = TEST_WPA_PRESHARED_KEY;
         attachWifiNetworkSpecifierAndAppInfo(
                 ssidPatternMatch, bssidPatternMatch, wifiConfiguration, TEST_UID_1,
@@ -880,7 +880,7 @@
         Pair<MacAddress, MacAddress> bssidPatternMatch =
                 Pair.create(MacAddress.fromString(TEST_BSSID_1), MacAddress.BROADCAST_ADDRESS);
         WifiConfiguration wifiConfiguration = new WifiConfiguration();
-        wifiConfiguration.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.WPA_PSK);
+        wifiConfiguration.setSecurityParams(WifiConfiguration.SECURITY_TYPE_PSK);
         wifiConfiguration.preSharedKey = TEST_WPA_PRESHARED_KEY;
         attachWifiNetworkSpecifierAndAppInfo(
                 ssidPatternMatch, bssidPatternMatch, wifiConfiguration, TEST_UID_1,
@@ -923,7 +923,7 @@
                 Pair.create(MacAddress.fromString(TEST_BSSID_1_2_OUI),
                         MacAddress.fromString(TEST_BSSID_OUI_MASK));
         WifiConfiguration wifiConfiguration = new WifiConfiguration();
-        wifiConfiguration.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.WPA_EAP);
+        wifiConfiguration.setSecurityParams(WifiConfiguration.SECURITY_TYPE_EAP);
         wifiConfiguration.preSharedKey = TEST_WPA_PRESHARED_KEY;
         attachWifiNetworkSpecifierAndAppInfo(
                 ssidPatternMatch, bssidPatternMatch, wifiConfiguration, TEST_UID_1,
@@ -967,7 +967,7 @@
         Pair<MacAddress, MacAddress> bssidPatternMatch =
                 Pair.create(WifiManager.ALL_ZEROS_MAC_ADDRESS, WifiManager.ALL_ZEROS_MAC_ADDRESS);
         WifiConfiguration wifiConfiguration = new WifiConfiguration();
-        wifiConfiguration.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.WPA_PSK);
+        wifiConfiguration.setSecurityParams(WifiConfiguration.SECURITY_TYPE_PSK);
         wifiConfiguration.preSharedKey = TEST_WPA_PRESHARED_KEY;
         attachWifiNetworkSpecifierAndAppInfo(
                 ssidPatternMatch, bssidPatternMatch, wifiConfiguration, TEST_UID_1,
@@ -1013,7 +1013,7 @@
         Pair<MacAddress, MacAddress> bssidPatternMatch =
                 Pair.create(WifiManager.ALL_ZEROS_MAC_ADDRESS, WifiManager.ALL_ZEROS_MAC_ADDRESS);
         WifiConfiguration wifiConfiguration = new WifiConfiguration();
-        wifiConfiguration.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.WPA_PSK);
+        wifiConfiguration.setSecurityParams(WifiConfiguration.SECURITY_TYPE_PSK);
         wifiConfiguration.preSharedKey = TEST_WPA_PRESHARED_KEY;
         attachWifiNetworkSpecifierAndAppInfo(
                 ssidPatternMatch, bssidPatternMatch, wifiConfiguration, TEST_UID_1,
@@ -1052,7 +1052,7 @@
         Pair<MacAddress, MacAddress> bssidPatternMatch =
                 Pair.create(WifiManager.ALL_ZEROS_MAC_ADDRESS, WifiManager.ALL_ZEROS_MAC_ADDRESS);
         WifiConfiguration wifiConfiguration = new WifiConfiguration();
-        wifiConfiguration.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.WPA_PSK);
+        wifiConfiguration.setSecurityParams(WifiConfiguration.SECURITY_TYPE_PSK);
         wifiConfiguration.preSharedKey = TEST_WPA_PRESHARED_KEY;
         attachWifiNetworkSpecifierAndAppInfo(
                 ssidPatternMatch, bssidPatternMatch, wifiConfiguration, TEST_UID_1,
@@ -1275,7 +1275,7 @@
                 Pair.create(MacAddress.fromString(matchingScanResult.BSSID),
                         MacAddress.BROADCAST_ADDRESS);
         WifiConfiguration wifiConfiguration = new WifiConfiguration();
-        wifiConfiguration.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.WPA_PSK);
+        wifiConfiguration.setSecurityParams(WifiConfiguration.SECURITY_TYPE_PSK);
         wifiConfiguration.preSharedKey = TEST_WPA_PRESHARED_KEY;
         attachWifiNetworkSpecifierAndAppInfo(
                 ssidPatternMatch, bssidPatternMatch, wifiConfiguration, TEST_UID_1,
@@ -1324,7 +1324,7 @@
         Pair<MacAddress, MacAddress> bssidPatternMatch =
                 Pair.create(WifiManager.ALL_ZEROS_MAC_ADDRESS, WifiManager.ALL_ZEROS_MAC_ADDRESS);
         WifiConfiguration wifiConfiguration = new WifiConfiguration();
-        wifiConfiguration.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.WPA_PSK);
+        wifiConfiguration.setSecurityParams(WifiConfiguration.SECURITY_TYPE_PSK);
         wifiConfiguration.preSharedKey = TEST_WPA_PRESHARED_KEY;
         attachWifiNetworkSpecifierAndAppInfo(
                 ssidPatternMatch, bssidPatternMatch, wifiConfiguration, TEST_UID_1,
@@ -1386,7 +1386,7 @@
                 Pair.create(MacAddress.fromString(matchingScanResult.BSSID),
                         MacAddress.BROADCAST_ADDRESS);
         WifiConfiguration wifiConfiguration = new WifiConfiguration();
-        wifiConfiguration.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.WPA_PSK);
+        wifiConfiguration.setSecurityParams(WifiConfiguration.SECURITY_TYPE_PSK);
         wifiConfiguration.preSharedKey = TEST_WPA_PRESHARED_KEY;
         attachWifiNetworkSpecifierAndAppInfo(
                 ssidPatternMatch, bssidPatternMatch, wifiConfiguration, TEST_UID_1,
@@ -1448,7 +1448,7 @@
                 Pair.create(MacAddress.fromString(matchingScanResult.BSSID),
                         MacAddress.BROADCAST_ADDRESS);
         WifiConfiguration wifiConfiguration = new WifiConfiguration();
-        wifiConfiguration.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.WPA_PSK);
+        wifiConfiguration.setSecurityParams(WifiConfiguration.SECURITY_TYPE_PSK);
         wifiConfiguration.preSharedKey = TEST_WPA_PRESHARED_KEY;
         attachWifiNetworkSpecifierAndAppInfo(
                 ssidPatternMatch, bssidPatternMatch, wifiConfiguration, TEST_UID_1,
@@ -2822,7 +2822,7 @@
         Pair<MacAddress, MacAddress> bssidPatternMatch =
                 Pair.create(WifiManager.ALL_ZEROS_MAC_ADDRESS, WifiManager.ALL_ZEROS_MAC_ADDRESS);
         WifiConfiguration wifiConfiguration = new WifiConfiguration();
-        wifiConfiguration.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.WPA_PSK);
+        wifiConfiguration.setSecurityParams(WifiConfiguration.SECURITY_TYPE_PSK);
         wifiConfiguration.preSharedKey = TEST_WPA_PRESHARED_KEY;
         attachWifiNetworkSpecifierAndAppInfo(
                 ssidPatternMatch, bssidPatternMatch, wifiConfiguration, TEST_UID_1,