From patchwork Tue Nov 7 06:40:18 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Vinayak Yadawad X-Patchwork-Id: 742568 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 81D5BC4332F for ; Tue, 7 Nov 2023 06:40:32 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231420AbjKGGkd (ORCPT ); Tue, 7 Nov 2023 01:40:33 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:57280 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229558AbjKGGkc (ORCPT ); Tue, 7 Nov 2023 01:40:32 -0500 Received: from mail-pf1-x42a.google.com (mail-pf1-x42a.google.com [IPv6:2607:f8b0:4864:20::42a]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 80CD6E8 for ; Mon, 6 Nov 2023 22:40:29 -0800 (PST) Received: by mail-pf1-x42a.google.com with SMTP id d2e1a72fcca58-6b77ab73c6fso4189532b3a.1 for ; Mon, 06 Nov 2023 22:40:29 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=broadcom.com; s=google; t=1699339229; x=1699944029; darn=vger.kernel.org; h=mime-version:message-id:date:subject:cc:to:from:from:to:cc:subject :date:message-id:reply-to; bh=uUdEB3gmq57FMEy9xNM0XPQ5CHFr00XI048nC+QIEtc=; b=cLMU9cAxfr5eEGGJszF2xRTaokjuDDAD3Ia5W/PqHBUq4wm6hfL2H4sA/FOOnKVdwF VpeOZBuJuBp8XZkF497svyp73OTGnVJl3tYbh0JHL65lIwF/+7x/so4JQC0iKxhhjytI wzQoCEeQnbrl/T+S0H86P1l8QpEGZobnSRhkI= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1699339229; x=1699944029; h=mime-version:message-id:date:subject:cc:to:from:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=uUdEB3gmq57FMEy9xNM0XPQ5CHFr00XI048nC+QIEtc=; b=g5wNLgyAADjhmToTt0EYH8feWGKFEFuejFv/CipGJkqN5NYlqBFvPFwhJ/ebCZwbW+ Jp9wuJTNusWqEG2yKKCXJK29yyem4BI+j0A0y0zpCtJvOlGH+2eI92N5JEX1hrXWqUW9 66Gj+DG0eGNnQb0TBxk/Gq5n2OoSnnZm7BNYpT6kRel+J105OEQPtTyA40TL0xXC5IRI BBMhqFsj1/uRGgGYrm6ce3XkgYge00fPYgkxoRSJ8d1CiXianbpy1888eIuPThsRv0GT Do/07OY5/j+ErUN25UYH58mlEBKD7MTRc+bI69BEtPru6Wof/rhUV7JRHZ9oY/tF8ZQw VQgQ== X-Gm-Message-State: AOJu0YyBMwfZIvasK3KGCQP0t8v/xalRti9Dv+31GAhwGRki2s4tEyW0 2gQgFeTYrgVbPT0mETxx6bxN1Q== X-Google-Smtp-Source: AGHT+IGUPINRcarNT1mkV1Oyghdprz13lVvTSy2Cq3fN7nrEpj41G4Li8LjLlxDGdJQCIKS7DxLb/g== X-Received: by 2002:a05:6a00:1304:b0:6c2:e10:42e3 with SMTP id j4-20020a056a00130400b006c20e1042e3mr2165337pfu.8.1699339228778; Mon, 06 Nov 2023 22:40:28 -0800 (PST) Received: from ibnvda0196.ibn.broadcom.net ([192.19.252.250]) by smtp.gmail.com with ESMTPSA id c26-20020a62e81a000000b006b8bb35e313sm6528522pfi.103.2023.11.06.22.40.26 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Mon, 06 Nov 2023 22:40:27 -0800 (PST) From: Vinayak Yadawad To: johannes@sipsolutions.net Cc: linux-wireless@vger.kernel.org, jithu.jance@broadcom.com, Vinayak Yadawad Subject: [PATCH 1/1] wifi:nl80211: Extend del pmksa support for SAE and OWE security Date: Tue, 7 Nov 2023 12:10:18 +0530 Message-Id: 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. 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]);