From patchwork Wed Nov 8 06:49:08 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Vinayak Yadawad X-Patchwork-Id: 742834 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 5C65BC4332F for ; Wed, 8 Nov 2023 06:49:21 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230467AbjKHGtW (ORCPT ); Wed, 8 Nov 2023 01:49:22 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:43492 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229566AbjKHGtV (ORCPT ); Wed, 8 Nov 2023 01:49:21 -0500 Received: from mail-pg1-x52c.google.com (mail-pg1-x52c.google.com [IPv6:2607:f8b0:4864:20::52c]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 66F0E1B5 for ; Tue, 7 Nov 2023 22:49:19 -0800 (PST) Received: by mail-pg1-x52c.google.com with SMTP id 41be03b00d2f7-5bdb0be3591so1654154a12.2 for ; Tue, 07 Nov 2023 22:49:19 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=broadcom.com; s=google; t=1699426159; x=1700030959; darn=vger.kernel.org; h=mime-version:message-id:date:subject:cc:to:from:from:to:cc:subject :date:message-id:reply-to; bh=7oVHHhdaMqS1H8blCRWicVGXUlG0u2YinqoxLo0sK40=; b=fFO0H07+u5go2DzCBoRf5uL2Pe4za0FM5cAc6ja50RSYL3p1DezsWZzIyqKyNzAM+j RekqJeDX3iuZx7ch7nIYuEPCZn1M/mTzqjwkDOPR2v2XmbWDGhRHsK6cAzAmjb1aUsov HjN+mrlsfgWxf6TyWJLj+zSWAa6izimz6Cars= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1699426159; x=1700030959; h=mime-version:message-id:date:subject:cc:to:from:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=7oVHHhdaMqS1H8blCRWicVGXUlG0u2YinqoxLo0sK40=; b=Fbx+hVU+dUlH2ijS6W0rWI6JBi7AOa3ZcZUcDX0Gr6z7pxb1ton3vpJftSpScoQLNu U5ua7XjIiAvoRBbw2mT+bUNlbToy9oSEvkF+t9qBrSkXia98WVUJTooIWQPCUo/mlAui OGaOIpgHVt9j8+/81l1k6FiI3O5S0T6uM/T8mX8xloFymburZRXMPTgJkCUfidMdZopw kYwjuusua2XzLqsR9ZL23vUb+72vW6tKFNNXQR9L7AYrUK7lqoY/Shm4+mT/ONEIQ3iJ ZE7cA8k2fWrfTun13hBuQIx1j15uSw9dOlXqKLhljblleTD4Y1oV41H/GNIwnTlIPgr4 WHAA== X-Gm-Message-State: AOJu0Yy5lEFIhfI3Vpk9SAIAC7m6lFYzSAweo1TWGzgfqIoVSftie8Dl Rz8Obkz1l7rOOtqHNwH988cImQ== X-Google-Smtp-Source: AGHT+IErj/VqnUnbwml+vb92G7ecgoBoj9tQvDT1fjrv6L2sPNZTFT/xN5eLdsR4T717FneyxIZa4g== X-Received: by 2002:a05:6a20:914b:b0:181:bc16:48de with SMTP id x11-20020a056a20914b00b00181bc1648demr1338586pzc.31.1699426158712; Tue, 07 Nov 2023 22:49:18 -0800 (PST) Received: from ibnvda0196.ibn.broadcom.net ([192.19.252.250]) by smtp.gmail.com with ESMTPSA id h4-20020a170902748400b001cc52ca2dfbsm932686pll.120.2023.11.07.22.49.16 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Tue, 07 Nov 2023 22:49:18 -0800 (PST) From: Vinayak Yadawad To: johannes@sipsolutions.net Cc: linux-wireless@vger.kernel.org, jithu.jance@broadcom.com, Vinayak Yadawad Subject: [PATCH v2 1/1] wifi: nl80211: Extend del pmksa support for SAE and OWE security Date: Wed, 8 Nov 2023 12:19:08 +0530 Message-Id: <083b63a2e6f5ae42e11e4044350a28cea8d462b7.1699426085.git.vinayak.yadawad@broadcom.com> X-Mailer: git-send-email 2.32.0 MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: linux-wireless@vger.kernel.org Current handling of del pmksa with SSID is limited to FILS security. In the current change the del pmksa support is extended to SAE/OWE security offloads as well. For OWE/SAE offloads, the PMK is generated and cached at driver/FW, so user app needs the capability to request cache deletion based on SSID for drivers supporting SAE/OWE offload. --- v1->v2: Addressed review comments for indentation Signed-off-by: Vinayak Yadawad --- net/wireless/nl80211.c | 27 ++++++++++++++++++++------- 1 file changed, 20 insertions(+), 7 deletions(-) diff --git a/net/wireless/nl80211.c b/net/wireless/nl80211.c index 569234bc2be6..8dc1c800f171 100644 --- a/net/wireless/nl80211.c +++ b/net/wireless/nl80211.c @@ -12183,24 +12183,37 @@ static int nl80211_setdel_pmksa(struct sk_buff *skb, struct genl_info *info) memset(&pmksa, 0, sizeof(struct cfg80211_pmksa)); - if (!info->attrs[NL80211_ATTR_PMKID]) + if ((info->genlhdr->cmd == NL80211_CMD_SET_PMKSA) && + (!info->attrs[NL80211_ATTR_PMKID])) return -EINVAL; - pmksa.pmkid = nla_data(info->attrs[NL80211_ATTR_PMKID]); + if (info->attrs[NL80211_ATTR_PMKID]) + pmksa.pmkid = nla_data(info->attrs[NL80211_ATTR_PMKID]); if (info->attrs[NL80211_ATTR_MAC]) { pmksa.bssid = nla_data(info->attrs[NL80211_ATTR_MAC]); - } else if (info->attrs[NL80211_ATTR_SSID] && - info->attrs[NL80211_ATTR_FILS_CACHE_ID] && - (info->genlhdr->cmd == NL80211_CMD_DEL_PMKSA || + } else if (info->attrs[NL80211_ATTR_SSID]) { + /* SSID based pmksa flush suppported only for FILS, + * OWE/SAE OFFLOAD cases + */ + if (info->attrs[NL80211_ATTR_FILS_CACHE_ID] && + (info->genlhdr->cmd == NL80211_CMD_DEL_PMKSA || info->attrs[NL80211_ATTR_PMK])) { + pmksa.cache_id = + nla_data(info->attrs[NL80211_ATTR_FILS_CACHE_ID]); + } else if ((info->genlhdr->cmd == NL80211_CMD_DEL_PMKSA) && + (!wiphy_ext_feature_isset( + &rdev->wiphy, NL80211_EXT_FEATURE_SAE_OFFLOAD) && + (!wiphy_ext_feature_isset( + &rdev->wiphy,NL80211_EXT_FEATURE_OWE_OFFLOAD)))){ + return -EINVAL; + } pmksa.ssid = nla_data(info->attrs[NL80211_ATTR_SSID]); pmksa.ssid_len = nla_len(info->attrs[NL80211_ATTR_SSID]); - pmksa.cache_id = - nla_data(info->attrs[NL80211_ATTR_FILS_CACHE_ID]); } else { return -EINVAL; } + if (info->attrs[NL80211_ATTR_PMK]) { pmksa.pmk = nla_data(info->attrs[NL80211_ATTR_PMK]); pmksa.pmk_len = nla_len(info->attrs[NL80211_ATTR_PMK]);