* [RFC 1/2] wiphy: add OweDisable driver quirk
@ 2024-10-22 19:09 James Prestwood
2024-10-22 19:09 ` [RFC 2/2] network: don't allow connection to OWE AKM if disabled James Prestwood
0 siblings, 1 reply; 2+ messages in thread
From: James Prestwood @ 2024-10-22 19:09 UTC (permalink / raw)
To: iwd; +Cc: James Prestwood
---
src/wiphy.c | 16 +++++++++++++++-
src/wiphy.h | 1 +
2 files changed, 16 insertions(+), 1 deletion(-)
diff --git a/src/wiphy.c b/src/wiphy.c
index cc0e6dd7..d57d657a 100644
--- a/src/wiphy.c
+++ b/src/wiphy.c
@@ -72,6 +72,7 @@ enum driver_flag {
DEFAULT_IF = 0x1,
FORCE_PAE = 0x2,
POWER_SAVE_DISABLE = 0x4,
+ OWE_DISABLE = 0x8,
};
struct driver_flag_name {
@@ -103,6 +104,7 @@ static const struct driver_flag_name driver_flag_names[] = {
{ "DefaultInterface", DEFAULT_IF },
{ "ForcePae", FORCE_PAE },
{ "PowerSaveDisable", POWER_SAVE_DISABLE },
+ { "OweDisable", OWE_DISABLE },
};
struct wiphy {
@@ -344,7 +346,8 @@ wpa2_personal:
if (info->akm_suites & IE_RSN_AKM_SUITE_PSK)
return IE_RSN_AKM_SUITE_PSK;
} else if (security == SECURITY_NONE) {
- if (info->akm_suites & IE_RSN_AKM_SUITE_OWE)
+ if (info->akm_suites & IE_RSN_AKM_SUITE_OWE &&
+ !wiphy_owe_disabled(wiphy))
return IE_RSN_AKM_SUITE_OWE;
}
@@ -721,6 +724,14 @@ bool wiphy_power_save_disabled(struct wiphy *wiphy)
return false;
}
+bool wiphy_owe_disabled(struct wiphy *wiphy)
+{
+ if (wiphy->driver_flags & OWE_DISABLE)
+ return true;
+
+ return false;
+}
+
const uint8_t *wiphy_get_extended_capabilities(struct wiphy *wiphy,
uint32_t iftype)
{
@@ -1355,6 +1366,9 @@ static void wiphy_print_basic_info(struct wiphy *wiphy)
if (wiphy->driver_flags & POWER_SAVE_DISABLE)
flags = l_strv_append(flags, "PowerSaveDisable");
+ if (wiphy->driver_flags & OWE_DISABLE)
+ flags = l_strv_append(flags, "OweDisable");
+
joined = l_strjoinv(flags, ' ');
l_info("\tDriver Flags: %s", joined);
diff --git a/src/wiphy.h b/src/wiphy.h
index fe7e9e49..a68e48c3 100644
--- a/src/wiphy.h
+++ b/src/wiphy.h
@@ -134,6 +134,7 @@ const char *wiphy_get_name(struct wiphy *wiphy);
bool wiphy_uses_default_if(struct wiphy *wiphy);
bool wiphy_control_port_enabled(struct wiphy *wiphy);
bool wiphy_power_save_disabled(struct wiphy *wiphy);
+bool wiphy_owe_disabled(struct wiphy *wiphy);
const uint8_t *wiphy_get_extended_capabilities(struct wiphy *wiphy,
uint32_t iftype);
const uint8_t *wiphy_get_rm_enabled_capabilities(struct wiphy *wiphy);
--
2.34.1
^ permalink raw reply related [flat|nested] 2+ messages in thread
* [RFC 2/2] network: don't allow connection to OWE AKM if disabled
2024-10-22 19:09 [RFC 1/2] wiphy: add OweDisable driver quirk James Prestwood
@ 2024-10-22 19:09 ` James Prestwood
0 siblings, 0 replies; 2+ messages in thread
From: James Prestwood @ 2024-10-22 19:09 UTC (permalink / raw)
To: iwd; +Cc: James Prestwood
---
src/network.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/src/network.c b/src/network.c
index 20d9a3dd..5a856fb4 100644
--- a/src/network.c
+++ b/src/network.c
@@ -911,6 +911,9 @@ int network_can_connect_bss(struct network *network, const struct scan_bss *bss)
return ret;
}
+ if (IE_AKM_IS_OWE(rsn.akm_suites) && wiphy_owe_disabled(wiphy))
+ return -EPERM;
+
if (!config || !config->have_transition_disable) {
if (band == BAND_FREQ_6_GHZ)
goto mfp_no_tkip;
--
2.34.1
^ permalink raw reply related [flat|nested] 2+ messages in thread
end of thread, other threads:[~2024-10-22 19:09 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-10-22 19:09 [RFC 1/2] wiphy: add OweDisable driver quirk James Prestwood
2024-10-22 19:09 ` [RFC 2/2] network: don't allow connection to OWE AKM if disabled James Prestwood
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox