[SAE] Add support to add SAE Authentication algorithm

Add support to add SAE Authentication algorithm in the
framework (public API), and in the Supplicant HAL.

Bug: 147253259
Test: Manual connection to SAE, PSK, OWE and Open APs
Test: atest WifiConfigurationTest
Change-Id: I853e816be1ba618d61ac0fcb4b116879baba4be2
diff --git a/current.txt b/current.txt
index 921a103..b24fab8 100644
--- a/current.txt
+++ b/current.txt
@@ -655,7 +655,7 @@
 a64467bae843569f0d465c5be7f0c7a5b987985b55a3ef4794dd5afc68538650 android.hardware.wifi.supplicant@1.3::ISupplicant
 c72cb37b3f66ef65aeb5c6438a3fbe17bbe847fdf62d1a76eafd7f3a8a526105 android.hardware.wifi.supplicant@1.3::ISupplicantStaIface
 342a8e12db4dca643f2755eb4167e8f103d96502053a25a1f51f42107a4530f1 android.hardware.wifi.supplicant@1.3::ISupplicantStaIfaceCallback
-5477f8bafb29548875622fa83f1c0a29cee641acee613315eb747731001f4aff android.hardware.wifi.supplicant@1.3::ISupplicantStaNetwork
+8835e9799cddf7c239f60beff467cbdf164331f70a8b6c06ed78982d7810d835 android.hardware.wifi.supplicant@1.3::ISupplicantStaNetwork
 91015479f5a0fba9872e98d3cca4680995de64f42ae71461b4b7e5acc5a196ab android.hardware.wifi.supplicant@1.3::types
 d9044563a5ac5a17a239303b8dec1e51167761ac46e965f61e31654cc034d31b android.hardware.radio@1.5::types
 afa2d6cf4c0ba4b8482d5bcc097594ad5bc49be0bf3003034f75955cdaf66045 android.hardware.radio@1.5::IRadio
diff --git a/wifi/supplicant/1.3/ISupplicantStaNetwork.hal b/wifi/supplicant/1.3/ISupplicantStaNetwork.hal
index c18bffc..e579d24 100644
--- a/wifi/supplicant/1.3/ISupplicantStaNetwork.hal
+++ b/wifi/supplicant/1.3/ISupplicantStaNetwork.hal
@@ -26,14 +26,14 @@
  */
 interface ISupplicantStaNetwork extends @1.2::ISupplicantStaNetwork {
     /**
-     * Possble mask of values for Proto param.
+     * Possible mask of values for Proto param.
      */
     enum ProtoMask : @1.0::ISupplicantStaNetwork.ProtoMask {
         WAPI = 1 << 2,
     };
 
     /**
-     * Possble mask of values for KeyMgmt param.
+     * Possible mask of values for KeyMgmt param.
      */
     enum KeyMgmtMask : @1.2::ISupplicantStaNetwork.KeyMgmtMask {
         /*
@@ -47,7 +47,7 @@
     };
 
     /**
-     * Possble mask of values for PairwiseCipher param.
+     * Possible mask of values for PairwiseCipher param.
      */
     enum PairwiseCipherMask : @1.2::ISupplicantStaNetwork.PairwiseCipherMask {
         /**
@@ -57,7 +57,7 @@
     };
 
     /**
-     * Possble mask of values for GroupCipher param.
+     * Possible mask of values for GroupCipher param.
      */
     enum GroupCipherMask : @1.2::ISupplicantStaNetwork.GroupCipherMask {
         /**
@@ -67,6 +67,13 @@
     };
 
     /**
+     * Possible mask of values for AuthAlg param.
+     */
+    enum AuthAlgMask : @1.0::ISupplicantStaNetwork.AuthAlgMask {
+        SAE = 1 << 4,
+    };
+
+    /**
      * Set OCSP (Online Certificate Status Protocol) type for this network.
      *
      * @param ocspType value to set.
@@ -236,4 +243,29 @@
      *         |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
      */
     setPmkCache(vec<uint8_t> serializedEntry) generates (SupplicantStatus status);
+
+    /**
+     * Set auth alg mask for the network.
+     *
+     * @param authAlgMask value to set.
+     *        Combination of |ProtoMask| values.
+     * @return status Status of the operation.
+     *         Possible status codes:
+     *         |SupplicantStatusCode.SUCCESS|,
+     *         |SupplicantStatusCode.FAILURE_ARGS_INVALID|,
+     *         |SupplicantStatusCode.FAILURE_UNKNOWN|,
+     *         |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
+     */
+    setAuthAlg_1_3(bitfield<AuthAlgMask> authAlgMask) generates (SupplicantStatus status);
+
+    /**
+     * Get the auth alg mask set for the network.
+     *
+     * @return status Status of the operation.
+     *         Possible status codes:
+     *         |SupplicantStatusCode.SUCCESS|,
+     *         |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
+     * @return authAlgMask Combination of |AuthAlgMask| values.
+     */
+    getAuthAlg_1_3() generates (SupplicantStatus status, bitfield<AuthAlgMask> authAlgMask);
 };