|
@@ -127,6 +127,9 @@ uint8_t csr_rsn_oui[][CSR_RSN_OUI_SIZE] = {
|
|
|
{0x00, 0x00, 0x00, 0x00},
|
|
|
{0x00, 0x00, 0x00, 0x00},
|
|
|
#endif
|
|
|
+#define ENUM_OSEN 21
|
|
|
+ /* OSEN RSN */
|
|
|
+ {0x50, 0x6F, 0x9A, 0x01},
|
|
|
|
|
|
/* define new oui here, update #define CSR_OUI_***_INDEX */
|
|
|
};
|
|
@@ -2127,6 +2130,7 @@ bool csr_is_profile_rsn(struct csr_roam_profile *pProfile)
|
|
|
case eCSR_AUTH_TYPE_FT_FILS_SHA256:
|
|
|
case eCSR_AUTH_TYPE_FT_FILS_SHA384:
|
|
|
case eCSR_AUTH_TYPE_DPP_RSN:
|
|
|
+ case eCSR_AUTH_TYPE_OSEN:
|
|
|
fRSNProfile = true;
|
|
|
break;
|
|
|
|
|
@@ -2994,6 +2998,23 @@ static bool csr_is_auth_wpa_sae(struct mac_context *mac,
|
|
|
}
|
|
|
#endif
|
|
|
|
|
|
+/*
|
|
|
+ * csr_is_auth_osen() - check whether oui is osen rsn
|
|
|
+ * @mac: Global MAC context
|
|
|
+ * @all_suites: pointer to all supported akm suites
|
|
|
+ * @suite_count: all supported akm suites count
|
|
|
+ * @oui: Oui needs to be matched
|
|
|
+ *
|
|
|
+ * Return: True if OUI is OSEN, false otherwise
|
|
|
+ */
|
|
|
+static bool csr_is_auth_osen(tpAniSirGlobal mac,
|
|
|
+ u8 all_suites[][CSR_RSN_OUI_SIZE],
|
|
|
+ u8 suite_count, u8 oui[])
|
|
|
+{
|
|
|
+ return csr_is_oui_match(mac, all_suites, suite_count,
|
|
|
+ csr_rsn_oui[ENUM_OSEN], oui);
|
|
|
+}
|
|
|
+
|
|
|
#ifndef WLAN_CONV_CRYPTO_IE_SUPPORT
|
|
|
static bool csr_is_auth_wpa(struct mac_context *mac,
|
|
|
uint8_t AllSuites[][CSR_WPA_OUI_SIZE],
|
|
@@ -3304,9 +3325,16 @@ static bool csr_get_rsn_information(struct mac_context *mac_ctx,
|
|
|
csr_check_sae_auth(mac_ctx, authsuites, c_auth_suites,
|
|
|
authentication, auth_type, i, &neg_authtype);
|
|
|
|
|
|
+ if (neg_authtype == eCSR_AUTH_TYPE_UNKNOWN &&
|
|
|
+ csr_is_auth_osen(mac_ctx, authsuites,
|
|
|
+ c_auth_suites, authentication)) {
|
|
|
+ if (eCSR_AUTH_TYPE_OSEN == auth_type->authType[i])
|
|
|
+ neg_authtype = eCSR_AUTH_TYPE_OSEN;
|
|
|
+ }
|
|
|
if ((neg_authtype == eCSR_AUTH_TYPE_UNKNOWN) &&
|
|
|
csr_is_auth_dpp_rsn(mac_ctx, authsuites,
|
|
|
- c_auth_suites, authentication)) {
|
|
|
+ c_auth_suites,
|
|
|
+ authentication)) {
|
|
|
if (eCSR_AUTH_TYPE_DPP_RSN == auth_type->authType[i])
|
|
|
neg_authtype = eCSR_AUTH_TYPE_DPP_RSN;
|
|
|
}
|