diff options
author | Yu <jiung.yu@samsung.com> | 2019-07-25 13:24:57 +0900 |
---|---|---|
committer | Yu <jiung.yu@samsung.com> | 2019-07-25 16:25:49 +0900 |
commit | 744ba68df7010ee6a3a962daad47d106998c15fa (patch) | |
tree | 0fcda6e592325ed7c4c746cd72486f61f7ab9694 /gsupplicant | |
parent | 4f366734bb8b2be1b7f5aba9974947220af53716 (diff) | |
download | connman-744ba68df7010ee6a3a962daad47d106998c15fa.tar.gz connman-744ba68df7010ee6a3a962daad47d106998c15fa.tar.bz2 connman-744ba68df7010ee6a3a962daad47d106998c15fa.zip |
Add OWE security mode support
Change-Id: I03ab90b8ab78e489d1ef70fbec57f10576860a57
Signed-off-by: Yu jiung <jiung.yu@samsung.com>
Diffstat (limited to 'gsupplicant')
-rw-r--r-- | gsupplicant/gsupplicant.h | 2 | ||||
-rw-r--r-- | gsupplicant/supplicant.c | 20 |
2 files changed, 20 insertions, 2 deletions
diff --git a/gsupplicant/gsupplicant.h b/gsupplicant/gsupplicant.h index 155f8464..b9e99a44 100644 --- a/gsupplicant/gsupplicant.h +++ b/gsupplicant/gsupplicant.h @@ -71,6 +71,7 @@ extern "C" { #define G_SUPPLICANT_KEYMGMT_WPS (1 << 9) #if defined TIZEN_EXT #define G_SUPPLICANT_KEYMGMT_SAE (1 << 10) +#define G_SUPPLICANT_KEYMGMT_OWE (1 << 22) #endif #define G_SUPPLICANT_PROTO_WPA (1 << 0) @@ -123,6 +124,7 @@ typedef enum { G_SUPPLICANT_SECURITY_FT_PSK, G_SUPPLICANT_SECURITY_FT_IEEE8021X, G_SUPPLICANT_SECURITY_SAE, + G_SUPPLICANT_SECURITY_OWE, #endif } GSupplicantSecurity; diff --git a/gsupplicant/supplicant.c b/gsupplicant/supplicant.c index a7a7bd03..66644c8b 100644 --- a/gsupplicant/supplicant.c +++ b/gsupplicant/supplicant.c @@ -103,6 +103,7 @@ static struct strvalmap keymgmt_map[] = { { "wps", G_SUPPLICANT_KEYMGMT_WPS }, #if defined TIZEN_EXT { "sae", G_SUPPLICANT_KEYMGMT_SAE }, + { "owe", G_SUPPLICANT_KEYMGMT_OWE }, #endif { } }; @@ -257,6 +258,7 @@ struct g_supplicant_bss { unsigned int wps_capabilities; #if defined TIZEN_EXT dbus_bool_t sae; + dbus_bool_t owe; #endif }; @@ -457,6 +459,8 @@ static const char *security2string(GSupplicantSecurity security) return "ft_ieee8021x"; case G_SUPPLICANT_SECURITY_SAE: return "sae"; + case G_SUPPLICANT_SECURITY_OWE: + return "owe"; #endif } @@ -1655,6 +1659,7 @@ const char *g_supplicant_network_get_enc_mode(GSupplicantNetwork *network) if (network->best_bss->security == G_SUPPLICANT_SECURITY_PSK || #if defined TIZEN_EXT network->best_bss->security == G_SUPPLICANT_SECURITY_SAE || + network->best_bss->security == G_SUPPLICANT_SECURITY_OWE || #endif /* TIZEN_EXT */ network->best_bss->security == G_SUPPLICANT_SECURITY_IEEE8021X) { unsigned int pairwise; @@ -1684,7 +1689,8 @@ bool g_supplicant_network_get_rsn_mode(GSupplicantNetwork *network) return 0; #if defined TIZEN_EXT - if (network->best_bss->security == G_SUPPLICANT_SECURITY_SAE) + if (network->best_bss->security == G_SUPPLICANT_SECURITY_SAE || + network->best_bss->security == G_SUPPLICANT_SECURITY_OWE) return false; #endif /* TIZEN_EXT */ @@ -2497,6 +2503,8 @@ static void bss_compute_security(struct g_supplicant_bss *bss) #if defined TIZEN_EXT if (bss->keymgmt & G_SUPPLICANT_KEYMGMT_SAE) bss->sae = TRUE; + if (bss->keymgmt & G_SUPPLICANT_KEYMGMT_OWE) + bss->owe = TRUE; #endif if (bss->ieee8021x) @@ -2512,6 +2520,8 @@ static void bss_compute_security(struct g_supplicant_bss *bss) #if defined TIZEN_EXT else if (bss->sae) bss->security = G_SUPPLICANT_SECURITY_SAE; + else if (bss->owe) + bss->security = G_SUPPLICANT_SECURITY_OWE; #endif else if (bss->privacy) bss->security = G_SUPPLICANT_SECURITY_WEP; @@ -6174,7 +6184,8 @@ static void add_network_security_proto(DBusMessageIter *dict, #if defined TIZEN_EXT static void add_network_ieee80211w(DBusMessageIter *dict, GSupplicantSSID *ssid) { - if (ssid->security != G_SUPPLICANT_SECURITY_SAE) + if (ssid->security != G_SUPPLICANT_SECURITY_SAE + && ssid->security != G_SUPPLICANT_SECURITY_OWE) return; supplicant_dbus_dict_append_basic(dict, "ieee80211w", DBUS_TYPE_UINT32, @@ -6227,6 +6238,11 @@ static void add_network_security(DBusMessageIter *dict, GSupplicantSSID *ssid) key_mgmt = "SAE"; add_network_security_psk(dict, ssid); break; + case G_SUPPLICANT_SECURITY_OWE: + key_mgmt = "OWE"; + add_network_security_ciphers(dict, ssid); + add_network_security_proto(dict, ssid); + break; #endif } |