Ver código fonte

qcacmn: Add support for new key mgmt

Add support for FILS, OWE & DPP key mgmt.

Change-Id: I51b899e86a0d29051af55c422e64764d762767d3
Crs-Fixed: 2243109
Ashok Ponnaiah 7 anos atrás
pai
commit
c6d591092d

+ 6 - 0
umac/cmn_services/crypto/inc/wlan_crypto_global_def.h

@@ -165,6 +165,12 @@ typedef enum wlan_crypto_key_mgmt {
 	WLAN_CRYPTO_KEY_MGMT_OSEN                  = 15,
 	WLAN_CRYPTO_KEY_MGMT_IEEE8021X_SUITE_B     = 16,
 	WLAN_CRYPTO_KEY_MGMT_IEEE8021X_SUITE_B_192 = 17,
+	WLAN_CRYPTO_KEY_MGMT_FILS_SHA256           = 18,
+	WLAN_CRYPTO_KEY_MGMT_FILS_SHA384           = 19,
+	WLAN_CRYPTO_KEY_MGMT_FT_FILS_SHA256        = 20,
+	WLAN_CRYPTO_KEY_MGMT_FT_FILS_SHA384        = 21,
+	WLAN_CRYPTO_KEY_MGMT_OWE                   = 22,
+	WLAN_CRYPTO_KEY_MGMT_DPP                   = 23,
 } wlan_crypto_key_mgmt;
 
 /**

+ 11 - 3
umac/cmn_services/crypto/src/wlan_crypto_def_i.h

@@ -247,9 +247,17 @@ static inline void wlan_crypto_put_be64(u8 *a, u64 val)
 					WLAN_RSN_SEL(12)
 #define RSN_AUTH_KEY_MGMT_FT_802_1X_SUITE_B_192\
 					WLAN_RSN_SEL(13)
-
-#define RSN_AUTH_KEY_MGMT_CCKM  WLAN_RSN_CCKM_AKM
-#define RSN_AUTH_KEY_MGMT_OSEN  (0x019a6f50)
+#define RSN_AUTH_KEY_MGMT_FILS_SHA256   WLAN_RSN_SEL(14)
+#define RSN_AUTH_KEY_MGMT_FILS_SHA384   WLAN_RSN_SEL(15)
+#define RSN_AUTH_KEY_MGMT_FT_FILS_SHA256\
+					WLAN_RSN_SEL(16)
+#define RSN_AUTH_KEY_MGMT_FT_FILS_SHA384\
+					WLAN_RSN_SEL(17)
+#define RSN_AUTH_KEY_MGMT_OWE           WLAN_RSN_SEL(18)
+
+#define RSN_AUTH_KEY_MGMT_CCKM          (WLAN_RSN_CCKM_AKM)
+#define RSN_AUTH_KEY_MGMT_OSEN          (0x019a6f50)
+#define RSN_AUTH_KEY_MGMT_DPP           (WLAN_RSN_DPP_AKM)
 
 #define RSN_CIPHER_SUITE_NONE           WLAN_RSN_SEL(WLAN_CSE_NONE)
 #define RSN_CIPHER_SUITE_WEP40          WLAN_RSN_SEL(WLAN_CSE_WEP40)

+ 24 - 0
umac/cmn_services/crypto/src/wlan_crypto_global_api.c

@@ -1838,6 +1838,18 @@ wlan_crypto_rsn_keymgmt_to_suite(uint32_t keymgmt)
 		return RSN_AUTH_KEY_MGMT_CCKM;
 	case WLAN_CRYPTO_KEY_MGMT_OSEN:
 		return RSN_AUTH_KEY_MGMT_OSEN;
+	case WLAN_CRYPTO_KEY_MGMT_FILS_SHA256:
+		return RSN_AUTH_KEY_MGMT_FILS_SHA256;
+	case WLAN_CRYPTO_KEY_MGMT_FILS_SHA384:
+		return RSN_AUTH_KEY_MGMT_FILS_SHA384;
+	case WLAN_CRYPTO_KEY_MGMT_FT_FILS_SHA256:
+		return RSN_AUTH_KEY_MGMT_FT_FILS_SHA256;
+	case WLAN_CRYPTO_KEY_MGMT_FT_FILS_SHA384:
+		return RSN_AUTH_KEY_MGMT_FT_FILS_SHA384;
+	case WLAN_CRYPTO_KEY_MGMT_OWE:
+		return RSN_AUTH_KEY_MGMT_OWE;
+	case WLAN_CRYPTO_KEY_MGMT_DPP:
+		return RSN_AUTH_KEY_MGMT_DPP;
 	}
 
 	return status;
@@ -1978,6 +1990,18 @@ static int32_t wlan_crypto_rsn_suite_to_keymgmt(uint8_t *sel)
 		return WLAN_CRYPTO_KEY_MGMT_CCKM;
 	case RSN_AUTH_KEY_MGMT_OSEN:
 		return WLAN_CRYPTO_KEY_MGMT_OSEN;
+	case RSN_AUTH_KEY_MGMT_FILS_SHA256:
+		return WLAN_CRYPTO_KEY_MGMT_FILS_SHA256;
+	case RSN_AUTH_KEY_MGMT_FILS_SHA384:
+		return WLAN_CRYPTO_KEY_MGMT_FILS_SHA384;
+	case RSN_AUTH_KEY_MGMT_FT_FILS_SHA256:
+		return WLAN_CRYPTO_KEY_MGMT_FT_FILS_SHA256;
+	case RSN_AUTH_KEY_MGMT_FT_FILS_SHA384:
+		return WLAN_CRYPTO_KEY_MGMT_FT_FILS_SHA384;
+	case RSN_AUTH_KEY_MGMT_OWE:
+		return WLAN_CRYPTO_KEY_MGMT_OWE;
+	case RSN_AUTH_KEY_MGMT_DPP:
+		return WLAN_CRYPTO_KEY_MGMT_DPP;
 	}
 
 	return status;