From patchwork Tue Feb 14 09:24:19 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Hector Martin X-Patchwork-Id: 56797 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:eb09:0:0:0:0:0 with SMTP id s9csp2863157wrn; Tue, 14 Feb 2023 01:29:48 -0800 (PST) X-Google-Smtp-Source: AK7set8hIBltJIywiHKaxwErc1T5gFvPCDdB0LuEd+meryVRtgQIGl85PKLkve87x6vlVHb3padp X-Received: by 2002:a17:903:22c3:b0:199:2a4f:be84 with SMTP id y3-20020a17090322c300b001992a4fbe84mr2190102plg.58.1676366988617; Tue, 14 Feb 2023 01:29:48 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1676366988; cv=none; d=google.com; s=arc-20160816; b=URPcr46YOHLosOBnvjNnrTTrh+FJXBpVdRMowgqgfsYLtxm3wfYLrXrIPIlncNL1Si A3r/nd9876uxfFFb3HehX/awe5fwKPQJ1g+KvLQ5N65j4p45YWJ7drkvEPYpKSdGjEql D/yPEoNj6KD51aeYQAL6v6lBDaD6jn0xkOnx6nFGoO4/m0pzaippqeJx1C47zn0m1nSX v9gwBAp58EvG+PvMuOwdpo+qO7/901cCULwkkFmWfsG7FjBOzR8j/a+k4ZuBHIMLVHqZ Vfc1jDKy2UEskY5DP/veRmIUwyerV3kEFefYxP9VE3Z7EdWfZTa2hxw0rNmw8zfvZo81 jA6A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=xLdIv0tNOy8SLaCVYhh+Z9TtP/VXA/oGS1lGu8ApYYg=; b=mBxVREU4KPJpw8dEY0ruGBwU7q7gSx2g+hD0KEV+XNtdP4a8EtFCSj6C7EV2FIDPGv xXb1v7jD6mdSrjhCj0L9F4/icWFhfTAsitlCQqT8D7cO7kg0esNhHihUMsGCzaPlnRbB G9gYU0tbfwdJthSSO3H66sDZU9SHBfsluOd4Y22LReMHJ3WMDFsB4dAb6jhgCtiSnGPz cOiSZOrUYmxFWjrmIcMwYE8nFrWHk6wvyCr92uKRxaZv0F5DqQWsbRfCRu8g3fEIbugH BUjpdCUMprnSQuXd9IYidUVS00A0zAtIyJKOG7tAQYrLqhG0mARf8XTpTnF7u/HliGz3 pg7A== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@marcan.st header.s=default header.b=CL+9PZ+7; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=marcan.st Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id f17-20020a170902f39100b0019a9d960a57si5078848ple.293.2023.02.14.01.29.36; Tue, 14 Feb 2023 01:29:48 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@marcan.st header.s=default header.b=CL+9PZ+7; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=marcan.st Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232322AbjBNJ0t (ORCPT + 99 others); Tue, 14 Feb 2023 04:26:49 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:33430 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231186AbjBNJ0S (ORCPT ); Tue, 14 Feb 2023 04:26:18 -0500 Received: from mail.marcansoft.com (marcansoft.com [212.63.210.85]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 06C6A244BC; Tue, 14 Feb 2023 01:25:57 -0800 (PST) Received: from [127.0.0.1] (localhost [127.0.0.1]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) (Authenticated sender: sendonly@marcansoft.com) by mail.marcansoft.com (Postfix) with ESMTPSA id 2F137423CD; Tue, 14 Feb 2023 09:25:50 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=marcan.st; s=default; t=1676366756; bh=sNsHpSeG7aIfT4zedGW0Q+9YV78TXq/I5hsq0+8G9b4=; h=From:To:Cc:Subject:Date:In-Reply-To:References; b=CL+9PZ+7gefzYNYYX5jBOp3LYvnPh+b01iiKTOUylbD97uMJYDtSI062VgnvVXGu6 6Cc6AUN/dxvRZN08M1HQK3KzvMiPwDxY2B8BRhS+A1+nWoLPfk0u6VFDe4SpOnx/i9 HwH83JGlw8hCdq//W4tTcVcEEYRoenZKTDx1J5l6ndqBRsXvVssogIjIV/IuSmLwmk c1PrAIpRr/XBr7F4pr/6MGxLOKKzVyqvyu+HAQwRGD4bxdj9iA4XT4B5bYKwfSFSGr 7oqNLeBIaqHfpsixeubQh3QV2e4o1362GhPicCEt2d9eCv2kfvf4UjRoAUc1wdhVp3 hgyGKNEaVOTKA== From: Hector Martin To: Arend van Spriel , Franky Lin , Hante Meuleman , Kalle Valo , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni Cc: Sven Peter , Alyssa Rosenzweig , Linus Walleij , asahi@lists.linux.dev, linux-wireless@vger.kernel.org, brcm80211-dev-list.pdl@broadcom.com, SHA-cyfmac-dev-list@infineon.com, netdev@vger.kernel.org, linux-kernel@vger.kernel.org, Hector Martin , Arend van Spriel Subject: [PATCH 06/10] brcmfmac: cfg80211: Pass the PMK in binary instead of hex Date: Tue, 14 Feb 2023 18:24:19 +0900 Message-Id: <20230214092423.15175-6-marcan@marcan.st> X-Mailer: git-send-email 2.35.1 In-Reply-To: <20230214091651.10178-1-marcan@marcan.st> References: <20230214091651.10178-1-marcan@marcan.st> MIME-Version: 1.0 X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,SPF_HELO_NONE,SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1757798191130321604?= X-GMAIL-MSGID: =?utf-8?q?1757798191130321604?= Apparently the hex passphrase mechanism does not work on newer chips/firmware (e.g. BCM4387). It seems there was a simple way of passing it in binary all along, so use that and avoid the hexification. OpenBSD has been doing it like this from the beginning, so this should work on all chips. Also clear the structure before setting the PMK. This was leaking uninitialized stack contents to the device. Reviewed-by: Linus Walleij Reviewed-by: Arend van Spriel Signed-off-by: Hector Martin --- .../wireless/broadcom/brcm80211/brcmfmac/cfg80211.c | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c index f3450b4db156..18e6699d4024 100644 --- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c +++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c @@ -1686,13 +1686,14 @@ static int brcmf_set_pmk(struct brcmf_if *ifp, const u8 *pmk_data, u16 pmk_len) { struct brcmf_pub *drvr = ifp->drvr; struct brcmf_wsec_pmk_le pmk; - int i, err; + int err; + + memset(&pmk, 0, sizeof(pmk)); - /* convert to firmware key format */ - pmk.key_len = cpu_to_le16(pmk_len << 1); - pmk.flags = cpu_to_le16(BRCMF_WSEC_PASSPHRASE); - for (i = 0; i < pmk_len; i++) - snprintf(&pmk.key[2 * i], 3, "%02x", pmk_data[i]); + /* pass pmk directly */ + pmk.key_len = cpu_to_le16(pmk_len); + pmk.flags = cpu_to_le16(0); + memcpy(pmk.key, pmk_data, pmk_len); /* store psk in firmware */ err = brcmf_fil_cmd_data_set(ifp, BRCMF_C_SET_WSEC_PMK,