Search Linux Wireless

Re: [PATCH 5/6] cfg80211: add support for SAE authentication offload

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 1/4/2019 7:11 AM, Chi-Hsien Lin wrote:
From: Chung-Hsien Hsu <stanley.hsu@xxxxxxxxxxx>

Let drivers advertise support for station-mode SAE authentication
offload with a new NL80211_EXT_FEATURE_SAE_OFFLOAD flag.

When touching nl80211 api I prefer 'nl80211:' prefix instead of 'cfg80211:'.

Signed-off-by: Chung-Hsien Hsu <stanley.hsu@xxxxxxxxxxx>
Signed-off-by: Chi-Hsien Lin <chi-hsien.lin@xxxxxxxxxxx>
---
  include/linux/ieee80211.h    |  1 +
  include/net/cfg80211.h       |  5 +++++
  include/uapi/linux/nl80211.h | 16 ++++++++++++++++
  net/wireless/nl80211.c       | 14 ++++++++++++++
  4 files changed, 36 insertions(+)

diff --git a/include/linux/ieee80211.h b/include/linux/ieee80211.h
index 3b04e72315e1..37d3e655e547 100644
--- a/include/linux/ieee80211.h
+++ b/include/linux/ieee80211.h
@@ -2596,6 +2596,7 @@ enum ieee80211_key_len {
  #define FILS_ERP_MAX_RRK_LEN		64
#define PMK_MAX_LEN 64
+#define SAE_PASSWORD_MAX_LEN		128
/* Public action codes (IEEE Std 802.11-2016, 9.6.8.1, Table 9-307) */
  enum ieee80211_pub_actioncode {
diff --git a/include/net/cfg80211.h b/include/net/cfg80211.h
index e0c41eb1c860..5809dac97b33 100644
--- a/include/net/cfg80211.h
+++ b/include/net/cfg80211.h
@@ -740,6 +740,9 @@ struct survey_info {
   *	CFG80211_MAX_WEP_KEYS WEP keys
   * @wep_tx_key: key index (0..3) of the default TX static WEP key
   * @psk: PSK (for devices supporting 4-way-handshake offload)
+ * @sae_pwd: password for SAE authentication (for devices supporting SAE
+ *	offload)
+ * @sae_pwd_len: length of SAE password (for devices supporting SAE offload)
   */
  struct cfg80211_crypto_settings {
  	u32 wpa_versions;
@@ -755,6 +758,8 @@ struct cfg80211_crypto_settings {
  	struct key_params *wep_keys;
  	int wep_tx_key;
  	const u8 *psk;
+	const u8 *sae_pwd;
+	u16 sae_pwd_len;

Not really need u16 as max length is defined earlier as 128.

  };
/**
diff --git a/include/uapi/linux/nl80211.h b/include/uapi/linux/nl80211.h
index 12762afb3a07..4840aaed39ba 100644
--- a/include/uapi/linux/nl80211.h
+++ b/include/uapi/linux/nl80211.h
@@ -235,6 +235,15 @@
   */
/**
+ * DOC: SAE authentication offload
+ *
+ * By setting @NL80211_EXT_FEATURE_SAE_OFFLOAD flag drivers can indicate they
+ * support offloading SAE authentication for WPA3-Personal networks. In
+ * %NL80211_CMD_CONNECT the password for SAE should be specified using
+ * %NL80211_ATTR_SAE_PASSWORD.
+ */
+
+/**
   * enum nl80211_commands - supported nl80211 commands
   *
   * @NL80211_CMD_UNSPEC: unspecified command to catch errors
@@ -2288,6 +2297,9 @@ enum nl80211_commands {
   *
   * @NL80211_ATTR_FTM_RESPONDER_STATS: Nested attribute with FTM responder
   *	statistics, see &enum nl80211_ftm_responder_stats.
+ * @NL80211_ATTR_SAE_PASSWORD: attribute for passing SAE password material. It
+ *	is used with %NL80211_CMD_CONNECT to provide password for offloading
+ *	SAE authentication for WPA3-Personal networks.
   *
   * @NL80211_ATTR_TIMEOUT: Timeout for the given operation in milliseconds (u32),
   *	if the attribute is not given no timeout is requested. Note that 0 is an
@@ -2743,6 +2755,7 @@ enum nl80211_attrs {
  	NL80211_ATTR_FTM_RESPONDER,
NL80211_ATTR_FTM_RESPONDER_STATS,
+	NL80211_ATTR_SAE_PASSWORD,

Marcel already commented on this. These enumerations are ABI. You should also change the nl80211_policy to assure the max length SAE_PASSWORD_MAX_LEN is not exceeded.

Gr. AvS



[Index of Archives]     [Linux Host AP]     [ATH6KL]     [Linux Wireless Personal Area Network]     [Linux Bluetooth]     [Wireless Regulations]     [Linux Netdev]     [Kernel Newbies]     [Linux Kernel]     [IDE]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite Hiking]     [MIPS Linux]     [ARM Linux]     [Linux RAID]

  Powered by Linux