From nobody Mon Jun 15 03:51:50 2026 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id D3722239E7D; Wed, 8 Apr 2026 03:09:26 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1775617766; cv=none; b=FnM0T5DQSOPxCeMZGL+OAPYM1eUW8296TZCracHogijKHd+ukGKgLzomKNaqzy9QDRL/dH9jviohlb5nPTKFc0+TvCrcGlEV7RF6xpD86pNAM1i/jp2ejcAxuH04HtvtWJdtev/GiEgD20ME/WmurF9Q0OHtkuqmSKhwVH3lsL4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1775617766; c=relaxed/simple; bh=clFqp8uYqEOC0hX7vhxXuHH5l5xR2disoNQCo5id2vo=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=Y7H4e8Gm9h+8MkmIRWb2L+9CRX2hEj8Y1DxDX84QlKxwumDDnxR0Bd5dF4Dupi30PCBmQrYMl/FqEF3MOwd3+JJ6CNi1vRJU/SjBnGYK+caxW7Lq0uc5vX2eDCtWpwg4Wa7xzdMighOOtYrZACSI4XuSfGaYYYlJ4p24Oh5JjG8= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=Y+pe85d2; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="Y+pe85d2" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 82F2AC19424; Wed, 8 Apr 2026 03:09:26 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1775617766; bh=clFqp8uYqEOC0hX7vhxXuHH5l5xR2disoNQCo5id2vo=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=Y+pe85d2drLC5E/x0gsZxx7ir5X8cA8UYTRDJdkV1lqkn4zQDAs4m3Ct1lRtjUekA eRMAFiCJ1nq1KMq61ppDrGgQLRr06h3eYNKCe1O+wHgsUew7143YcgwMGMo4JJYBCH W5F5/CMNINTTQIaXt25PHaU4sJ3JmsG3sawZnwzM43XzHsZaZnQaRJXc7PO6INmwIQ 8VCN4umerZ4bmlomV+CLDu9wE1ywre6H7hvQhCMZk47gIy8CkzfFRbAy82XJePxLIv wAX+EIXv4+SLzjWNc/rvCkhgGXviCefw77wyg9bIKc3llKOwxhntxKe3eWg65HtrRw GAqZR5BDrBcDw== From: Eric Biggers To: Johannes Berg , linux-wireless@vger.kernel.org Cc: linux-crypto@vger.kernel.org, linux-kernel@vger.kernel.org, Herbert Xu , Eric Biggers Subject: [PATCH wireless-next v2 1/6] wifi: ipw2x00: Rename michael_mic() to libipw_michael_mic() Date: Tue, 7 Apr 2026 20:06:46 -0700 Message-ID: <20260408030651.80336-2-ebiggers@kernel.org> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260408030651.80336-1-ebiggers@kernel.org> References: <20260408030651.80336-1-ebiggers@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Rename the driver-local michael_mic() function to libipw_michael_mic() to prevent a name conflict with the common michael_mic() function. Note that this code will be superseded later when libipw starts using the common michael_mic(). This commit just prevents a bisection hazard. Signed-off-by: Eric Biggers --- drivers/net/wireless/intel/ipw2x00/libipw_crypto_tkip.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/net/wireless/intel/ipw2x00/libipw_crypto_tkip.c b/driv= ers/net/wireless/intel/ipw2x00/libipw_crypto_tkip.c index c6b0de8d91aea..c2cd6808fd0fe 100644 --- a/drivers/net/wireless/intel/ipw2x00/libipw_crypto_tkip.c +++ b/drivers/net/wireless/intel/ipw2x00/libipw_crypto_tkip.c @@ -462,11 +462,11 @@ static int libipw_tkip_decrypt(struct sk_buff *skb, i= nt hdr_len, void *priv) skb_trim(skb, skb->len - 4); =20 return keyidx; } =20 -static int michael_mic(struct crypto_shash *tfm_michael, u8 *key, u8 *hdr, +static int libipw_michael_mic(struct crypto_shash *tfm_michael, u8 *key, u= 8 *hdr, u8 *data, size_t data_len, u8 *mic) { SHASH_DESC_ON_STACK(desc, tfm_michael); int err; =20 @@ -544,11 +544,11 @@ static int libipw_michael_mic_add(struct sk_buff *skb= , int hdr_len, return -1; } =20 michael_mic_hdr(skb, tkey->tx_hdr); pos =3D skb_put(skb, 8); - if (michael_mic(tkey->tx_tfm_michael, &tkey->key[16], tkey->tx_hdr, + if (libipw_michael_mic(tkey->tx_tfm_michael, &tkey->key[16], tkey->tx_hdr, skb->data + hdr_len, skb->len - 8 - hdr_len, pos)) return -1; =20 return 0; } @@ -582,11 +582,11 @@ static int libipw_michael_mic_verify(struct sk_buff *= skb, int keyidx, =20 if (!tkey->key_set) return -1; =20 michael_mic_hdr(skb, tkey->rx_hdr); - if (michael_mic(tkey->rx_tfm_michael, &tkey->key[24], tkey->rx_hdr, + if (libipw_michael_mic(tkey->rx_tfm_michael, &tkey->key[24], tkey->rx_hdr, skb->data + hdr_len, skb->len - 8 - hdr_len, mic)) return -1; if (memcmp(mic, skb->data + skb->len - 8, 8) !=3D 0) { struct ieee80211_hdr *hdr; hdr =3D (struct ieee80211_hdr *)skb->data; --=20 2.53.0 From nobody Mon Jun 15 03:51:50 2026 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 4C13E2C17B3; Wed, 8 Apr 2026 03:09:27 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1775617767; cv=none; b=S1mtthJEv0naufMk0Tv4u5sTIjbly04uY0t7t5iN688HMG/qzhmIgtKXns60b1sLEId0MpTHPjpYrkiEcFJC717Qun9W5vn1cbzEb5RRaqlMK0MVkQJZtXjn6souqvddmbokVRgmSfrRk3+xMamKux1iJtWxHNH+tTyiGdl2TL0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1775617767; c=relaxed/simple; bh=j4GlWJ+j9z7J/xL6Xs2UuoVzMpFWWK/XuOBq61TQ49U=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=o0nHRZk1ydsWaJNuCx41kRZc4A/pCbdBz30JMtlW42sm55CXMRyEQpW8R7cAxoA0FKAkMKrujZmY5wUPDQdxhPyyu3wLtb8TIMSAu/ghoBTLH184FizuI9NAttCW/oYj1N1+DMFleao1OaRRSLOQYsmNaJy/VqtFDc+qbL6eTGc= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=ehSY7s1G; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="ehSY7s1G" Received: by smtp.kernel.org (Postfix) with ESMTPSA id D3D70C2BCB1; Wed, 8 Apr 2026 03:09:26 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1775617767; bh=j4GlWJ+j9z7J/xL6Xs2UuoVzMpFWWK/XuOBq61TQ49U=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=ehSY7s1GIGvNT2l3mglh7zyjPM1AZPGLpaWhwio2SI16tzzzrp6JIGhgDpo5PUSZf ZEjoa5OAfxleo90tUf9ItaittSN42hrkSdPt+/8h+McDbW/mZfm+NDWP5AMcojUCqi O/Rqf9e701qvUvzTZj2Stp/S7GKBWwcFk5YF0+BzGhuvFwkD6Ankqv6J5Q+g9fL3S2 UPsnjEJRnI4Ia7UPtJutUqGu50S5PcXrx2QW1tzV5vLuviQuzysRPO3NbIa2+Fkp2F hwARFuqvUAS+/c9NwafdDQWr16XRfRJcTRDxxHDJHnsi5fRvdylYHLdQJmpsPGxmFA E5Jk/wPQ3UMMQ== From: Eric Biggers To: Johannes Berg , linux-wireless@vger.kernel.org Cc: linux-crypto@vger.kernel.org, linux-kernel@vger.kernel.org, Herbert Xu , Eric Biggers Subject: [PATCH wireless-next v2 2/6] wifi: mac80211, cfg80211: Export michael_mic() and move it to cfg80211 Date: Tue, 7 Apr 2026 20:06:47 -0700 Message-ID: <20260408030651.80336-3-ebiggers@kernel.org> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260408030651.80336-1-ebiggers@kernel.org> References: <20260408030651.80336-1-ebiggers@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Export michael_mic() so that the ath11k and ath12k drivers can call it. In addition, move it from mac80211 to cfg80211 so that the ipw2x00 drivers, which depend on cfg80211 but not mac80211, can also call it. Currently these drivers have their own local implementations of michael_mic() based on crypto_shash, which is redundant and inefficient. By consolidating all the Michael MIC code into cfg80211, we'll be able to remove the duplicate Michael MIC code in the crypto/ directory. Signed-off-by: Eric Biggers --- include/linux/ieee80211.h | 5 +++++ net/mac80211/Makefile | 1 - net/mac80211/michael.h | 22 ------------------- net/mac80211/wpa.c | 1 - net/wireless/Makefile | 2 +- .../michael.c =3D> wireless/michael-mic.c} | 5 ++++- 6 files changed, 10 insertions(+), 26 deletions(-) delete mode 100644 net/mac80211/michael.h rename net/{mac80211/michael.c =3D> wireless/michael-mic.c} (96%) diff --git a/include/linux/ieee80211.h b/include/linux/ieee80211.h index ffa8f9f77efe4..23f9df9be8372 100644 --- a/include/linux/ieee80211.h +++ b/include/linux/ieee80211.h @@ -1919,10 +1919,15 @@ enum ieee80211_radio_measurement_actioncode { #define FILS_ERP_MAX_RRK_LEN 64 =20 #define PMK_MAX_LEN 64 #define SAE_PASSWORD_MAX_LEN 128 =20 +#define MICHAEL_MIC_LEN 8 + +void michael_mic(const u8 *key, struct ieee80211_hdr *hdr, + const u8 *data, size_t data_len, u8 *mic); + /* Public action codes (IEEE Std 802.11-2016, 9.6.8.1, Table 9-307) */ enum ieee80211_pub_actioncode { WLAN_PUB_ACTION_20_40_BSS_COEX =3D 0, WLAN_PUB_ACTION_DSE_ENABLEMENT =3D 1, WLAN_PUB_ACTION_DSE_DEENABLEMENT =3D 2, diff --git a/net/mac80211/Makefile b/net/mac80211/Makefile index abf46c9512993..20c3135b73ea6 100644 --- a/net/mac80211/Makefile +++ b/net/mac80211/Makefile @@ -16,11 +16,10 @@ mac80211-y :=3D \ s1g.o \ ibss.o \ iface.o \ link.o \ rate.o \ - michael.o \ tkip.o \ aes_cmac.o \ aes_gmac.o \ fils_aead.o \ cfg.o \ diff --git a/net/mac80211/michael.h b/net/mac80211/michael.h deleted file mode 100644 index a7fdb8e84615a..0000000000000 --- a/net/mac80211/michael.h +++ /dev/null @@ -1,22 +0,0 @@ -/* SPDX-License-Identifier: GPL-2.0-only */ -/* - * Michael MIC implementation - optimized for TKIP MIC operations - * Copyright 2002-2003, Instant802 Networks, Inc. - */ - -#ifndef MICHAEL_H -#define MICHAEL_H - -#include -#include - -#define MICHAEL_MIC_LEN 8 - -struct michael_mic_ctx { - u32 l, r; -}; - -void michael_mic(const u8 *key, struct ieee80211_hdr *hdr, - const u8 *data, size_t data_len, u8 *mic); - -#endif /* MICHAEL_H */ diff --git a/net/mac80211/wpa.c b/net/mac80211/wpa.c index 64a57475ce506..724ec831a8857 100644 --- a/net/mac80211/wpa.c +++ b/net/mac80211/wpa.c @@ -16,11 +16,10 @@ #include #include #include =20 #include "ieee80211_i.h" -#include "michael.h" #include "tkip.h" #include "aes_ccm.h" #include "aes_cmac.h" #include "aes_gmac.h" #include "aes_gcm.h" diff --git a/net/wireless/Makefile b/net/wireless/Makefile index 62a83faf0e07d..a77fd5ba63686 100644 --- a/net/wireless/Makefile +++ b/net/wireless/Makefile @@ -6,11 +6,11 @@ obj-$(CONFIG_WEXT_CORE) +=3D wext-core.o obj-$(CONFIG_WEXT_PROC) +=3D wext-proc.o obj-$(CONFIG_WEXT_PRIV) +=3D wext-priv.o =20 cfg80211-y +=3D core.o sysfs.o radiotap.o util.o reg.o scan.o nl80211.o cfg80211-y +=3D mlme.o ibss.o sme.o chan.o ethtool.o mesh.o ap.o trace.o o= cb.o -cfg80211-y +=3D pmsr.o +cfg80211-y +=3D michael-mic.o pmsr.o cfg80211-$(CONFIG_OF) +=3D of.o cfg80211-$(CONFIG_CFG80211_DEBUGFS) +=3D debugfs.o cfg80211-$(CONFIG_CFG80211_WEXT) +=3D wext-compat.o wext-sme.o =20 CFLAGS_trace.o :=3D -I$(src) diff --git a/net/mac80211/michael.c b/net/wireless/michael-mic.c similarity index 96% rename from net/mac80211/michael.c rename to net/wireless/michael-mic.c index 8a1afc93e7499..50cdb67f0503d 100644 --- a/net/mac80211/michael.c +++ b/net/wireless/michael-mic.c @@ -6,11 +6,13 @@ #include #include #include #include =20 -#include "michael.h" +struct michael_mic_ctx { + u32 l, r; +}; =20 static void michael_block(struct michael_mic_ctx *mctx, u32 val) { mctx->l ^=3D val; mctx->r ^=3D rol32(mctx->l, 17); @@ -79,5 +81,6 @@ void michael_mic(const u8 *key, struct ieee80211_hdr *hdr, michael_block(&mctx, 0); =20 put_unaligned_le32(mctx.l, mic); put_unaligned_le32(mctx.r, mic + 4); } +EXPORT_SYMBOL_GPL(michael_mic); --=20 2.53.0 From nobody Mon Jun 15 03:51:50 2026 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 7B4D42D0C8F; Wed, 8 Apr 2026 03:09:27 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1775617767; cv=none; b=tgVRLQLeGEtq3As4VfJQs3ZY3tGGZfD45qB53fqiTDo5Zv0tRHQfGgxFRiKglJR/VOYogoCyB9mYiczs6gSqJt6XgJLU0E9U6ftQ0QsSRU5S03XPfFtizoUIXPv7eggW8xJkL4PYtEx9JLHy4HBOu3tDGOCVo8ZBFepBtyf3BPk= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1775617767; c=relaxed/simple; bh=RgZwGCynue4pUIjGrrs44lanwUV46ByTN/HsksNLlYI=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=CSihoG8PIYt27bLH7eCAMf+Dv8AjAu1QaN5JHDkNTWlkQecfxGX2IAc6tr4aGxkyN9xkJgQhtd9oI+rAZbbaRH3GCRFimQZ+grfoUODchAoj1g2L1gUeufcQcg8hCQwPX93CLCC8pom+njW+FanKVbl5FsCj9ElGjYjqCFOWZm4= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=IFkbyhc8; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="IFkbyhc8" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 30604C2BC9E; Wed, 8 Apr 2026 03:09:27 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1775617767; bh=RgZwGCynue4pUIjGrrs44lanwUV46ByTN/HsksNLlYI=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=IFkbyhc8u0sthu05qZKCkR7yWhz6RvesOqXsLi+LTw1xN38Ufx3zTab+6KuHgmDWj 7PIaUGdMBXxvmjIWWWjb3c+D/sBoC9/YGrqvNIxuF3tB329Ve87AxgldzjQLWnnRDY tc3y5GrumZvmqYC4bbfvRcSlb2A4VAedu05ywu55p+qnYd0Vg0xQ3OX80bVOBCmNWp t2CT7ICwd24QTikhfq6wqd1IZdajcA27o5hQPLUcjdq04TjwVkSpy7vdO5c3xQQIns eyhEVd8HvWnOIeUkpL2fZHU2PU0d7cGnGojzK/pxkVNDJDRcIAfH4UTtCJlTlGGx2R EuXsK3bI7C91Q== From: Eric Biggers To: Johannes Berg , linux-wireless@vger.kernel.org Cc: linux-crypto@vger.kernel.org, linux-kernel@vger.kernel.org, Herbert Xu , Eric Biggers Subject: [PATCH wireless-next v2 3/6] wifi: ath11k: Use michael_mic() from cfg80211 Date: Tue, 7 Apr 2026 20:06:48 -0700 Message-ID: <20260408030651.80336-4-ebiggers@kernel.org> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260408030651.80336-1-ebiggers@kernel.org> References: <20260408030651.80336-1-ebiggers@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Just use the michael_mic() function from cfg80211 instead of a local implementation of it using the crypto_shash API. Note: when the kernel is booted with fips=3D1, crypto_alloc_shash("michael_mic", 0, 0) always returned ERR_PTR(-ENOENT), because Michael MIC is not a "FIPS allowed" algorithm. For now, just preserve that behavior exactly, to ensure that TKIP is not allowed to be used in FIPS mode. This logic actually seems to disable the entire driver in FIPS mode and not just TKIP, but that was the existing behavior. Supporting this driver in FIPS mode, if anyone actually needs it there, should be a separate commit. Signed-off-by: Eric Biggers --- drivers/net/wireless/ath/ath11k/Kconfig | 1 - drivers/net/wireless/ath/ath11k/dp.c | 2 - drivers/net/wireless/ath/ath11k/dp_rx.c | 60 +++---------------------- drivers/net/wireless/ath/ath11k/peer.h | 1 - 4 files changed, 7 insertions(+), 57 deletions(-) diff --git a/drivers/net/wireless/ath/ath11k/Kconfig b/drivers/net/wireless= /ath/ath11k/Kconfig index 47dfd39caa89a..385513cfdc30e 100644 --- a/drivers/net/wireless/ath/ath11k/Kconfig +++ b/drivers/net/wireless/ath/ath11k/Kconfig @@ -1,10 +1,9 @@ # SPDX-License-Identifier: BSD-3-Clause-Clear config ATH11K tristate "Qualcomm Technologies 802.11ax chipset support" depends on MAC80211 && HAS_DMA - select CRYPTO_MICHAEL_MIC select ATH_COMMON select QCOM_QMI_HELPERS help This module adds support for Qualcomm Technologies 802.11ax family of chipsets. diff --git a/drivers/net/wireless/ath/ath11k/dp.c b/drivers/net/wireless/at= h/ath11k/dp.c index c940de285276d..bbb86f1651419 100644 --- a/drivers/net/wireless/ath/ath11k/dp.c +++ b/drivers/net/wireless/ath/ath11k/dp.c @@ -3,11 +3,10 @@ * Copyright (c) 2018-2019 The Linux Foundation. All rights reserved. * Copyright (c) 2021-2025 Qualcomm Innovation Center, Inc. All rights res= erved. * Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries. */ =20 -#include #include #include "core.h" #include "dp_tx.h" #include "hal_tx.h" #include "hif.h" @@ -37,11 +36,10 @@ void ath11k_dp_peer_cleanup(struct ath11k *ar, int vdev= _id, const u8 *addr) return; } =20 ath11k_peer_rx_tid_cleanup(ar, peer); peer->dp_setup_done =3D false; - crypto_free_shash(peer->tfm_mmic); spin_unlock_bh(&ab->base_lock); } =20 int ath11k_dp_peer_setup(struct ath11k *ar, int vdev_id, const u8 *addr) { diff --git a/drivers/net/wireless/ath/ath11k/dp_rx.c b/drivers/net/wireless= /ath/ath11k/dp_rx.c index 85defe11750d5..fe79109adc705 100644 --- a/drivers/net/wireless/ath/ath11k/dp_rx.c +++ b/drivers/net/wireless/ath/ath11k/dp_rx.c @@ -2,14 +2,14 @@ /* * Copyright (c) 2018-2019 The Linux Foundation. All rights reserved. * Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries. */ =20 +#include #include #include #include -#include #include "core.h" #include "debug.h" #include "debugfs_htt_stats.h" #include "debugfs_sta.h" #include "hal_desc.h" @@ -3180,96 +3180,50 @@ static void ath11k_dp_rx_frag_timer(struct timer_li= st *timer) } =20 int ath11k_peer_rx_frag_setup(struct ath11k *ar, const u8 *peer_mac, int v= dev_id) { struct ath11k_base *ab =3D ar->ab; - struct crypto_shash *tfm; struct ath11k_peer *peer; struct dp_rx_tid *rx_tid; int i; =20 - tfm =3D crypto_alloc_shash("michael_mic", 0, 0); - if (IS_ERR(tfm)) { - ath11k_warn(ab, "failed to allocate michael_mic shash: %ld\n", - PTR_ERR(tfm)); - return PTR_ERR(tfm); + if (fips_enabled) { + ath11k_warn(ab, "This driver is disabled due to FIPS\n"); + return -ENOENT; } =20 spin_lock_bh(&ab->base_lock); =20 peer =3D ath11k_peer_find(ab, vdev_id, peer_mac); if (!peer) { ath11k_warn(ab, "failed to find the peer to set up fragment info\n"); spin_unlock_bh(&ab->base_lock); - crypto_free_shash(tfm); return -ENOENT; } =20 for (i =3D 0; i <=3D IEEE80211_NUM_TIDS; i++) { rx_tid =3D &peer->rx_tid[i]; rx_tid->ab =3D ab; timer_setup(&rx_tid->frag_timer, ath11k_dp_rx_frag_timer, 0); skb_queue_head_init(&rx_tid->rx_frags); } =20 - peer->tfm_mmic =3D tfm; peer->dp_setup_done =3D true; spin_unlock_bh(&ab->base_lock); =20 return 0; } =20 -static int ath11k_dp_rx_h_michael_mic(struct crypto_shash *tfm, u8 *key, - struct ieee80211_hdr *hdr, u8 *data, - size_t data_len, u8 *mic) -{ - SHASH_DESC_ON_STACK(desc, tfm); - u8 mic_hdr[16] =3D {}; - u8 tid =3D 0; - int ret; - - if (!tfm) - return -EINVAL; - - desc->tfm =3D tfm; - - ret =3D crypto_shash_setkey(tfm, key, 8); - if (ret) - goto out; - - ret =3D crypto_shash_init(desc); - if (ret) - goto out; - - /* TKIP MIC header */ - memcpy(mic_hdr, ieee80211_get_DA(hdr), ETH_ALEN); - memcpy(mic_hdr + ETH_ALEN, ieee80211_get_SA(hdr), ETH_ALEN); - if (ieee80211_is_data_qos(hdr->frame_control)) - tid =3D ieee80211_get_tid(hdr); - mic_hdr[12] =3D tid; - - ret =3D crypto_shash_update(desc, mic_hdr, 16); - if (ret) - goto out; - ret =3D crypto_shash_update(desc, data, data_len); - if (ret) - goto out; - ret =3D crypto_shash_final(desc, mic); -out: - shash_desc_zero(desc); - return ret; -} - static int ath11k_dp_rx_h_verify_tkip_mic(struct ath11k *ar, struct ath11k= _peer *peer, struct sk_buff *msdu) { struct hal_rx_desc *rx_desc =3D (struct hal_rx_desc *)msdu->data; struct ieee80211_rx_status *rxs =3D IEEE80211_SKB_RXCB(msdu); struct ieee80211_key_conf *key_conf; struct ieee80211_hdr *hdr; u8 mic[IEEE80211_CCMP_MIC_LEN]; - int head_len, tail_len, ret; + int head_len, tail_len; size_t data_len; u32 hdr_len, hal_rx_desc_sz =3D ar->ab->hw_params.hal_desc_sz; u8 *key, *data; u8 key_idx; =20 @@ -3291,12 +3245,12 @@ static int ath11k_dp_rx_h_verify_tkip_mic(struct at= h11k *ar, struct ath11k_peer =20 data =3D msdu->data + head_len; data_len =3D msdu->len - head_len - tail_len; key =3D &key_conf->key[NL80211_TKIP_DATA_OFFSET_RX_MIC_KEY]; =20 - ret =3D ath11k_dp_rx_h_michael_mic(peer->tfm_mmic, key, hdr, data, data_l= en, mic); - if (ret || memcmp(mic, data + data_len, IEEE80211_CCMP_MIC_LEN)) + michael_mic(key, hdr, data, data_len, mic); + if (memcmp(mic, data + data_len, IEEE80211_CCMP_MIC_LEN)) goto mic_fail; =20 return 0; =20 mic_fail: diff --git a/drivers/net/wireless/ath/ath11k/peer.h b/drivers/net/wireless/= ath/ath11k/peer.h index 3ad2f3355b14f..f5ef1a27f8f25 100644 --- a/drivers/net/wireless/ath/ath11k/peer.h +++ b/drivers/net/wireless/ath/ath11k/peer.h @@ -27,11 +27,10 @@ struct ath11k_peer { struct rhash_head rhash_addr; =20 /* Info used in MMIC verification of * RX fragments */ - struct crypto_shash *tfm_mmic; u8 mcast_keyidx; u8 ucast_keyidx; u16 sec_type; u16 sec_type_grp; bool is_authorized; --=20 2.53.0 From nobody Mon Jun 15 03:51:50 2026 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id D611133F8B7; Wed, 8 Apr 2026 03:09:27 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1775617767; cv=none; b=JSp9pXCS8EOqVpZrHSuGxEgFDJwXRubqSoFJRDiIsRKO5ctvrIW9DpuOVElMv1EUnoDaBacKRdMDrIhIFo9dpjWAePxYMO9qH2HPJABWjSaXKokoi/aqcrFXDtpHCDfKNRF7zEBbhqV6AxHv9Me3HGD+/hH6fZanZ+5eQS0ekE8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1775617767; c=relaxed/simple; bh=r1pZY4VFvrZ1/2AdNJCx5jHyxAwHtVzSGed8n5oYQXc=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=TRW2xEDx7QkJbedhE1fKSHf0sW50txwIhM50as83ktDf2IpO8sTB0Ef2UmrXHnpCxO/B+77Swgh+BFpsQv5QDQCj/LtOEe6R4QMsfsBWd5yw5nE1WPBbEMVzhjOt7JvY9UB5PxP5LRBj+ME1f9uk4WkDAghQjmj3YqJF4zLxksU= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=fW82o2KT; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="fW82o2KT" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 81929C2BCB1; Wed, 8 Apr 2026 03:09:27 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1775617767; bh=r1pZY4VFvrZ1/2AdNJCx5jHyxAwHtVzSGed8n5oYQXc=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=fW82o2KTQs1MvGq6wLqrR2EwtVSmAB3fzqyx8887qv0VZkZVG45mr18TjJmKL1DFf jonEKLbroJoI7U9jIyG4dYOiy2/LoJLvOKpgvdtm29XJZb1sIbHUCDjDT7wEFYYwt4 YyW7pc1gcqjh7tZmgilRy9LOQn0OEBB9hqg7oNH5GkeIX+EMgqaCPhqpR1UNiCOd2u MnZbSSo1Ff21JIU4qffehjzYN84gGDKehQ4a4GSbkCTr2Q8T7cdWX0wJ1J8+z0euk3 ZTZ3HXMM+Z+a6apHlNqK3P/WEqq7DGIG5MlHPA6ECrHag8ZX+2lXiVDzzZbOs2PYjw gS6BHIqVv/ZaQ== From: Eric Biggers To: Johannes Berg , linux-wireless@vger.kernel.org Cc: linux-crypto@vger.kernel.org, linux-kernel@vger.kernel.org, Herbert Xu , Eric Biggers Subject: [PATCH wireless-next v2 4/6] wifi: ath12k: Use michael_mic() from cfg80211 Date: Tue, 7 Apr 2026 20:06:49 -0700 Message-ID: <20260408030651.80336-5-ebiggers@kernel.org> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260408030651.80336-1-ebiggers@kernel.org> References: <20260408030651.80336-1-ebiggers@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Just use the michael_mic() function from cfg80211 instead of a local implementation of it using the crypto_shash API. Note: when the kernel is booted with fips=3D1, crypto_alloc_shash("michael_mic", 0, 0) always returned ERR_PTR(-ENOENT), because Michael MIC is not a "FIPS allowed" algorithm. For now, just preserve that behavior exactly, to ensure that TKIP is not allowed to be used in FIPS mode. This logic actually seems to disable the entire driver in FIPS mode and not just TKIP, but that was the existing behavior. Supporting this driver in FIPS mode, if anyone actually needs it there, should be a separate commit. Signed-off-by: Eric Biggers --- drivers/net/wireless/ath/ath12k/Kconfig | 1 - drivers/net/wireless/ath/ath12k/dp.c | 2 - drivers/net/wireless/ath/ath12k/dp_peer.h | 1 - drivers/net/wireless/ath/ath12k/dp_rx.c | 55 ++----------------- drivers/net/wireless/ath/ath12k/dp_rx.h | 4 -- drivers/net/wireless/ath/ath12k/wifi7/dp_rx.c | 7 +-- 6 files changed, 8 insertions(+), 62 deletions(-) diff --git a/drivers/net/wireless/ath/ath12k/Kconfig b/drivers/net/wireless= /ath/ath12k/Kconfig index 1ea1af1b8f6c5..d39c075758bda 100644 --- a/drivers/net/wireless/ath/ath12k/Kconfig +++ b/drivers/net/wireless/ath/ath12k/Kconfig @@ -1,10 +1,9 @@ # SPDX-License-Identifier: BSD-3-Clause-Clear config ATH12K tristate "Qualcomm Technologies Wi-Fi 7 support (ath12k)" depends on MAC80211 && HAS_DMA && PCI - select CRYPTO_MICHAEL_MIC select QCOM_QMI_HELPERS select MHI_BUS select QRTR select QRTR_MHI select PCI_PWRCTRL_PWRSEQ if HAVE_PWRCTRL diff --git a/drivers/net/wireless/ath/ath12k/dp.c b/drivers/net/wireless/at= h/ath12k/dp.c index 1c82d927d27b2..90802ed1aa59f 100644 --- a/drivers/net/wireless/ath/ath12k/dp.c +++ b/drivers/net/wireless/ath/ath12k/dp.c @@ -2,11 +2,10 @@ /* * Copyright (c) 2018-2021 The Linux Foundation. All rights reserved. * Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries. */ =20 -#include #include "core.h" #include "dp_tx.h" #include "hif.h" #include "hal.h" #include "debug.h" @@ -39,11 +38,10 @@ void ath12k_dp_peer_cleanup(struct ath12k *ar, int vdev= _id, const u8 *addr) spin_unlock_bh(&dp->dp_lock); return; } =20 ath12k_dp_rx_peer_tid_cleanup(ar, peer); - crypto_free_shash(peer->dp_peer->tfm_mmic); peer->dp_peer->dp_setup_done =3D false; spin_unlock_bh(&dp->dp_lock); } =20 int ath12k_dp_peer_setup(struct ath12k *ar, int vdev_id, const u8 *addr) diff --git a/drivers/net/wireless/ath/ath12k/dp_peer.h b/drivers/net/wirele= ss/ath/ath12k/dp_peer.h index 20294ff095131..113b8040010fa 100644 --- a/drivers/net/wireless/ath/ath12k/dp_peer.h +++ b/drivers/net/wireless/ath/ath12k/dp_peer.h @@ -137,11 +137,10 @@ struct ath12k_dp_peer { =20 u16 sec_type_grp; u16 sec_type; =20 /* Info used in MMIC verification of * RX fragments */ - struct crypto_shash *tfm_mmic; struct ieee80211_key_conf *keys[WMI_MAX_KEY_INDEX + 1]; struct ath12k_dp_link_peer __rcu *link_peers[ATH12K_NUM_MAX_LINKS]; struct ath12k_reoq_buf reoq_bufs[IEEE80211_NUM_TIDS + 1]; struct ath12k_dp_rx_tid rx_tid[IEEE80211_NUM_TIDS + 1]; }; diff --git a/drivers/net/wireless/ath/ath12k/dp_rx.c b/drivers/net/wireless= /ath/ath12k/dp_rx.c index 59088ab407d05..250459facff36 100644 --- a/drivers/net/wireless/ath/ath12k/dp_rx.c +++ b/drivers/net/wireless/ath/ath12k/dp_rx.c @@ -2,14 +2,14 @@ /* * Copyright (c) 2018-2021 The Linux Foundation. All rights reserved. * Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries. */ =20 +#include #include #include #include -#include #include "core.h" #include "debug.h" #include "hw.h" #include "dp_rx.h" #include "dp_tx.h" @@ -1431,92 +1431,47 @@ static void ath12k_dp_rx_frag_timer(struct timer_li= st *timer) } =20 int ath12k_dp_rx_peer_frag_setup(struct ath12k *ar, const u8 *peer_mac, in= t vdev_id) { struct ath12k_base *ab =3D ar->ab; - struct crypto_shash *tfm; struct ath12k_dp_link_peer *peer; struct ath12k_dp_rx_tid *rx_tid; int i; struct ath12k_dp *dp =3D ath12k_ab_to_dp(ab); =20 - tfm =3D crypto_alloc_shash("michael_mic", 0, 0); - if (IS_ERR(tfm)) - return PTR_ERR(tfm); + if (fips_enabled) { + ath12k_warn(ab, "This driver is disabled due to FIPS\n"); + return -ENOENT; + } =20 spin_lock_bh(&dp->dp_lock); =20 peer =3D ath12k_dp_link_peer_find_by_vdev_and_addr(dp, vdev_id, peer_mac); if (!peer || !peer->dp_peer) { spin_unlock_bh(&dp->dp_lock); - crypto_free_shash(tfm); ath12k_warn(ab, "failed to find the peer to set up fragment info\n"); return -ENOENT; } =20 if (!peer->primary_link) { spin_unlock_bh(&dp->dp_lock); - crypto_free_shash(tfm); return 0; } =20 for (i =3D 0; i <=3D IEEE80211_NUM_TIDS; i++) { rx_tid =3D &peer->dp_peer->rx_tid[i]; rx_tid->dp =3D dp; timer_setup(&rx_tid->frag_timer, ath12k_dp_rx_frag_timer, 0); skb_queue_head_init(&rx_tid->rx_frags); } =20 - peer->dp_peer->tfm_mmic =3D tfm; peer->dp_peer->dp_setup_done =3D true; spin_unlock_bh(&dp->dp_lock); =20 return 0; } =20 -int ath12k_dp_rx_h_michael_mic(struct crypto_shash *tfm, u8 *key, - struct ieee80211_hdr *hdr, u8 *data, - size_t data_len, u8 *mic) -{ - SHASH_DESC_ON_STACK(desc, tfm); - u8 mic_hdr[16] =3D {}; - u8 tid =3D 0; - int ret; - - if (!tfm) - return -EINVAL; - - desc->tfm =3D tfm; - - ret =3D crypto_shash_setkey(tfm, key, 8); - if (ret) - goto out; - - ret =3D crypto_shash_init(desc); - if (ret) - goto out; - - /* TKIP MIC header */ - memcpy(mic_hdr, ieee80211_get_DA(hdr), ETH_ALEN); - memcpy(mic_hdr + ETH_ALEN, ieee80211_get_SA(hdr), ETH_ALEN); - if (ieee80211_is_data_qos(hdr->frame_control)) - tid =3D ieee80211_get_tid(hdr); - mic_hdr[12] =3D tid; - - ret =3D crypto_shash_update(desc, mic_hdr, 16); - if (ret) - goto out; - ret =3D crypto_shash_update(desc, data, data_len); - if (ret) - goto out; - ret =3D crypto_shash_final(desc, mic); -out: - shash_desc_zero(desc); - return ret; -} -EXPORT_SYMBOL(ath12k_dp_rx_h_michael_mic); - void ath12k_dp_rx_h_undecap_frag(struct ath12k_pdev_dp *dp_pdev, struct sk= _buff *msdu, enum hal_encrypt_type enctype, u32 flags) { struct ath12k_dp *dp =3D dp_pdev->dp; struct ieee80211_hdr *hdr; diff --git a/drivers/net/wireless/ath/ath12k/dp_rx.h b/drivers/net/wireless= /ath/ath12k/dp_rx.h index bd62af0c80d46..55a31e669b3b0 100644 --- a/drivers/net/wireless/ath/ath12k/dp_rx.h +++ b/drivers/net/wireless/ath/ath12k/dp_rx.h @@ -4,11 +4,10 @@ * Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries. */ #ifndef ATH12K_DP_RX_H #define ATH12K_DP_RX_H =20 -#include #include "core.h" #include "debug.h" =20 #define DP_MAX_NWIFI_HDR_LEN 30 =20 @@ -202,13 +201,10 @@ u64 ath12k_dp_rx_h_get_pn(struct ath12k_dp *dp, struc= t sk_buff *skb); void ath12k_dp_rx_h_sort_frags(struct ath12k_hal *hal, struct sk_buff_head *frag_list, struct sk_buff *cur_frag); void ath12k_dp_rx_h_undecap_frag(struct ath12k_pdev_dp *dp_pdev, struct sk= _buff *msdu, enum hal_encrypt_type enctype, u32 flags); -int ath12k_dp_rx_h_michael_mic(struct crypto_shash *tfm, u8 *key, - struct ieee80211_hdr *hdr, u8 *data, - size_t data_len, u8 *mic); int ath12k_dp_rx_ampdu_start(struct ath12k *ar, struct ieee80211_ampdu_params *params, u8 link_id); int ath12k_dp_rx_ampdu_stop(struct ath12k *ar, struct ieee80211_ampdu_params *params, diff --git a/drivers/net/wireless/ath/ath12k/wifi7/dp_rx.c b/drivers/net/wi= reless/ath/ath12k/wifi7/dp_rx.c index e6a934d74e85d..945680b3ebdfc 100644 --- a/drivers/net/wireless/ath/ath12k/wifi7/dp_rx.c +++ b/drivers/net/wireless/ath/ath12k/wifi7/dp_rx.c @@ -981,11 +981,11 @@ static int ath12k_wifi7_dp_rx_h_verify_tkip_mic(struc= t ath12k_pdev_dp *dp_pdev, struct hal_rx_desc *rx_desc =3D (struct hal_rx_desc *)msdu->data; struct ieee80211_rx_status *rxs =3D IEEE80211_SKB_RXCB(msdu); struct ieee80211_key_conf *key_conf; struct ieee80211_hdr *hdr; u8 mic[IEEE80211_CCMP_MIC_LEN]; - int head_len, tail_len, ret; + int head_len, tail_len; size_t data_len; u32 hdr_len, hal_rx_desc_sz =3D hal->hal_desc_sz; u8 *key, *data; u8 key_idx; =20 @@ -1009,13 +1009,12 @@ static int ath12k_wifi7_dp_rx_h_verify_tkip_mic(str= uct ath12k_pdev_dp *dp_pdev, =20 data =3D msdu->data + head_len; data_len =3D msdu->len - head_len - tail_len; key =3D &key_conf->key[NL80211_TKIP_DATA_OFFSET_RX_MIC_KEY]; =20 - ret =3D ath12k_dp_rx_h_michael_mic(peer->tfm_mmic, key, hdr, data, - data_len, mic); - if (ret || memcmp(mic, data + data_len, IEEE80211_CCMP_MIC_LEN)) + michael_mic(key, hdr, data, data_len, mic); + if (memcmp(mic, data + data_len, IEEE80211_CCMP_MIC_LEN)) goto mic_fail; =20 return 0; =20 mic_fail: --=20 2.53.0 From nobody Mon Jun 15 03:51:50 2026 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 570EC36E49F; Wed, 8 Apr 2026 03:09:28 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1775617768; cv=none; b=omsCa0Su7G/eJUOpugG2pxrIjex3Tkf5ASy1La24VPHAtz02jiSBO9j7QZQW6gPrqbnq/UW6LvPfr6E2JBjRGBZxFFTEQrq7ZtWI2A6+roMG17c0xKK0nA3DVomGm25o/Xoo/WIuK5ya5wuuxBfEcp26LbG/vbUNOOzTNtDyaYA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1775617768; c=relaxed/simple; bh=Q1v+JpOLlfcBi2mZKAzGiUmr5p7F4seOZvQEILD4LS8=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=nbBWbTsFCUVzfvOysHdtl82IWTflefsH2NxUylmCcb+wALTL2s+Z9/PLXcrJbJ1/iaKQIE3ZnbkFTxlhNnCcEo22GOSfu80Ot9L0XTYi5LMFtnWRvuPlTvuLz/jfSTd6EcZkqHkXWUUwzBu7xrLx7f7ykbdxEXd3C3uRahH09sg= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=GkuLeyL8; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="GkuLeyL8" Received: by smtp.kernel.org (Postfix) with ESMTPSA id D1F7EC2BC9E; Wed, 8 Apr 2026 03:09:27 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1775617768; bh=Q1v+JpOLlfcBi2mZKAzGiUmr5p7F4seOZvQEILD4LS8=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=GkuLeyL8OyVQLZQLyx9ww4s/F159lQE+PGrgLtjHlxzounK9A2SvX2pz2ozEWDbZs jWt5yswhX7qMJ/mR6cVyE2Pn/4lXCasMeY87TXLPiK5848mprgQGBPP7gMOVe9uHkp kB1bgnbE1sWl848Fy6e6uOd8AvBpLiW1DapsBbQ3G0SmFqAGjcjeLPkeowp0f+1kVJ wuVKYJG44etv34gqw76kY7tmg6v8TODxsun3C46+b3kRAdUETo1tpz/zaXnJBm3tN1 N9HlBCtWCH90brLfFV6joq2SfTUNLYXBTVjcfIdmTNPqM/foFSsFKUXl2lXvjQXr/6 up+swzepKnR9Q== From: Eric Biggers To: Johannes Berg , linux-wireless@vger.kernel.org Cc: linux-crypto@vger.kernel.org, linux-kernel@vger.kernel.org, Herbert Xu , Eric Biggers Subject: [PATCH wireless-next v2 5/6] wifi: ipw2x00: Use michael_mic() from cfg80211 Date: Tue, 7 Apr 2026 20:06:50 -0700 Message-ID: <20260408030651.80336-6-ebiggers@kernel.org> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260408030651.80336-1-ebiggers@kernel.org> References: <20260408030651.80336-1-ebiggers@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Just use the michael_mic() function from cfg80211 instead of a local implementation of it using the crypto_shash API. Signed-off-by: Eric Biggers --- drivers/net/wireless/intel/ipw2x00/Kconfig | 1 - .../intel/ipw2x00/libipw_crypto_tkip.c | 120 +----------------- 2 files changed, 5 insertions(+), 116 deletions(-) diff --git a/drivers/net/wireless/intel/ipw2x00/Kconfig b/drivers/net/wirel= ess/intel/ipw2x00/Kconfig index b92df91adb3a4..b508f14542d5d 100644 --- a/drivers/net/wireless/intel/ipw2x00/Kconfig +++ b/drivers/net/wireless/intel/ipw2x00/Kconfig @@ -152,11 +152,10 @@ config IPW2200_DEBUG config LIBIPW tristate depends on PCI && CFG80211 select WIRELESS_EXT select CRYPTO - select CRYPTO_MICHAEL_MIC select CRYPTO_LIB_ARC4 select CRC32 help This option enables the hardware independent IEEE 802.11 networking stack. This component is deprecated in favor of the diff --git a/drivers/net/wireless/intel/ipw2x00/libipw_crypto_tkip.c b/driv= ers/net/wireless/intel/ipw2x00/libipw_crypto_tkip.c index c2cd6808fd0fe..24bb28ab7a49b 100644 --- a/drivers/net/wireless/intel/ipw2x00/libipw_crypto_tkip.c +++ b/drivers/net/wireless/intel/ipw2x00/libipw_crypto_tkip.c @@ -23,12 +23,10 @@ #include #include #include #include #include -#include -#include #include #include "libipw.h" =20 #define TKIP_HDR_LEN 8 =20 @@ -55,15 +53,10 @@ struct libipw_tkip_data { =20 int key_idx; =20 struct arc4_ctx rx_ctx_arc4; struct arc4_ctx tx_ctx_arc4; - struct crypto_shash *rx_tfm_michael; - struct crypto_shash *tx_tfm_michael; - - /* scratch buffers for virt_to_page() (crypto API) */ - u8 rx_hdr[16], tx_hdr[16]; =20 unsigned long flags; }; =20 static unsigned long libipw_tkip_set_flags(unsigned long flags, void *priv) @@ -87,45 +80,18 @@ static void *libipw_tkip_init(int key_idx) if (fips_enabled) return NULL; =20 priv =3D kzalloc_obj(*priv, GFP_ATOMIC); if (priv =3D=3D NULL) - goto fail; + return priv; =20 priv->key_idx =3D key_idx; - - priv->tx_tfm_michael =3D crypto_alloc_shash("michael_mic", 0, 0); - if (IS_ERR(priv->tx_tfm_michael)) { - priv->tx_tfm_michael =3D NULL; - goto fail; - } - - priv->rx_tfm_michael =3D crypto_alloc_shash("michael_mic", 0, 0); - if (IS_ERR(priv->rx_tfm_michael)) { - priv->rx_tfm_michael =3D NULL; - goto fail; - } - return priv; - - fail: - if (priv) { - crypto_free_shash(priv->tx_tfm_michael); - crypto_free_shash(priv->rx_tfm_michael); - kfree(priv); - } - - return NULL; } =20 static void libipw_tkip_deinit(void *priv) { - struct libipw_tkip_data *_priv =3D priv; - if (_priv) { - crypto_free_shash(_priv->tx_tfm_michael); - crypto_free_shash(_priv->rx_tfm_michael); - } kfree_sensitive(priv); } =20 static inline u16 RotR1(u16 val) { @@ -462,77 +428,10 @@ static int libipw_tkip_decrypt(struct sk_buff *skb, i= nt hdr_len, void *priv) skb_trim(skb, skb->len - 4); =20 return keyidx; } =20 -static int libipw_michael_mic(struct crypto_shash *tfm_michael, u8 *key, u= 8 *hdr, - u8 *data, size_t data_len, u8 *mic) -{ - SHASH_DESC_ON_STACK(desc, tfm_michael); - int err; - - if (tfm_michael =3D=3D NULL) { - pr_warn("%s(): tfm_michael =3D=3D NULL\n", __func__); - return -1; - } - - desc->tfm =3D tfm_michael; - - if (crypto_shash_setkey(tfm_michael, key, 8)) - return -1; - - err =3D crypto_shash_init(desc); - if (err) - goto out; - err =3D crypto_shash_update(desc, hdr, 16); - if (err) - goto out; - err =3D crypto_shash_update(desc, data, data_len); - if (err) - goto out; - err =3D crypto_shash_final(desc, mic); - -out: - shash_desc_zero(desc); - return err; -} - -static void michael_mic_hdr(struct sk_buff *skb, u8 * hdr) -{ - struct ieee80211_hdr *hdr11; - - hdr11 =3D (struct ieee80211_hdr *)skb->data; - - switch (le16_to_cpu(hdr11->frame_control) & - (IEEE80211_FCTL_FROMDS | IEEE80211_FCTL_TODS)) { - case IEEE80211_FCTL_TODS: - memcpy(hdr, hdr11->addr3, ETH_ALEN); /* DA */ - memcpy(hdr + ETH_ALEN, hdr11->addr2, ETH_ALEN); /* SA */ - break; - case IEEE80211_FCTL_FROMDS: - memcpy(hdr, hdr11->addr1, ETH_ALEN); /* DA */ - memcpy(hdr + ETH_ALEN, hdr11->addr3, ETH_ALEN); /* SA */ - break; - case IEEE80211_FCTL_FROMDS | IEEE80211_FCTL_TODS: - memcpy(hdr, hdr11->addr3, ETH_ALEN); /* DA */ - memcpy(hdr + ETH_ALEN, hdr11->addr4, ETH_ALEN); /* SA */ - break; - default: - memcpy(hdr, hdr11->addr1, ETH_ALEN); /* DA */ - memcpy(hdr + ETH_ALEN, hdr11->addr2, ETH_ALEN); /* SA */ - break; - } - - if (ieee80211_is_data_qos(hdr11->frame_control)) { - hdr[12] =3D le16_to_cpu(*((__le16 *)ieee80211_get_qos_ctl(hdr11))) - & IEEE80211_QOS_CTL_TID_MASK; - } else - hdr[12] =3D 0; /* priority */ - - hdr[13] =3D hdr[14] =3D hdr[15] =3D 0; /* reserved */ -} - static int libipw_michael_mic_add(struct sk_buff *skb, int hdr_len, void *priv) { struct libipw_tkip_data *tkey =3D priv; u8 *pos; @@ -542,16 +441,13 @@ static int libipw_michael_mic_add(struct sk_buff *skb= , int hdr_len, "(tailroom=3D%d hdr_len=3D%d skb->len=3D%d)\n", skb_tailroom(skb), hdr_len, skb->len); return -1; } =20 - michael_mic_hdr(skb, tkey->tx_hdr); pos =3D skb_put(skb, 8); - if (libipw_michael_mic(tkey->tx_tfm_michael, &tkey->key[16], tkey->tx_hdr, - skb->data + hdr_len, skb->len - 8 - hdr_len, pos)) - return -1; - + michael_mic(&tkey->key[16], (struct ieee80211_hdr *)skb->data, + skb->data + hdr_len, skb->len - 8 - hdr_len, pos); return 0; } =20 static void libipw_michael_mic_failure(struct net_device *dev, struct ieee80211_hdr *hdr, @@ -581,14 +477,12 @@ static int libipw_michael_mic_verify(struct sk_buff *= skb, int keyidx, u8 mic[8]; =20 if (!tkey->key_set) return -1; =20 - michael_mic_hdr(skb, tkey->rx_hdr); - if (libipw_michael_mic(tkey->rx_tfm_michael, &tkey->key[24], tkey->rx_hdr, - skb->data + hdr_len, skb->len - 8 - hdr_len, mic)) - return -1; + michael_mic(&tkey->key[24], (struct ieee80211_hdr *)skb->data, + skb->data + hdr_len, skb->len - 8 - hdr_len, mic); if (memcmp(mic, skb->data + skb->len - 8, 8) !=3D 0) { struct ieee80211_hdr *hdr; hdr =3D (struct ieee80211_hdr *)skb->data; printk(KERN_DEBUG "%s: Michael MIC verification failed for " "MSDU from %pM keyidx=3D%d\n", @@ -612,21 +506,17 @@ static int libipw_michael_mic_verify(struct sk_buff *= skb, int keyidx, =20 static int libipw_tkip_set_key(void *key, int len, u8 * seq, void *priv) { struct libipw_tkip_data *tkey =3D priv; int keyidx; - struct crypto_shash *tfm =3D tkey->tx_tfm_michael; struct arc4_ctx *tfm2 =3D &tkey->tx_ctx_arc4; - struct crypto_shash *tfm3 =3D tkey->rx_tfm_michael; struct arc4_ctx *tfm4 =3D &tkey->rx_ctx_arc4; =20 keyidx =3D tkey->key_idx; memset(tkey, 0, sizeof(*tkey)); tkey->key_idx =3D keyidx; - tkey->tx_tfm_michael =3D tfm; tkey->tx_ctx_arc4 =3D *tfm2; - tkey->rx_tfm_michael =3D tfm3; tkey->rx_ctx_arc4 =3D *tfm4; if (len =3D=3D TKIP_KEY_LEN) { memcpy(tkey->key, key, TKIP_KEY_LEN); tkey->key_set =3D 1; tkey->tx_iv16 =3D 1; /* TSC is initialized to 1 */ --=20 2.53.0 From nobody Mon Jun 15 03:51:50 2026 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 88B7B372684; Wed, 8 Apr 2026 03:09:28 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1775617768; cv=none; b=fpPyCo9U2MpMx9VMtk+UGHnzgm+Yp92RVX4bF8BNZOs/7aBszZvyUV/4XahtH6boy80Vlk7sDWUtHf7h7Y+LTuEQSoUQH5LNEUjQQ7jWO/OEgd+xpxo52v4hjGSldrDTYYfbJspJep+xz4DmbgVXRSl1Bf0HVYasfoCaWZK7c3M= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1775617768; c=relaxed/simple; bh=A5cbxr6QBNRbgHHeeZO1R6NqNKl6wTVienGx6o4PoDM=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=bHFONkAOjljrauc+ECz67EbpTEIlIQncCsw3YEYvR5PanSG+v9hHV2Z9r5nQkdwyHuOEg1L6J9rEz30QPgQjp9rsseDuBVvZzgTFifQmK4KPhzH22ztifia6bdkyozKLiTiNiHK54dD4vw0sRfWGLyDxxNGUE7cQG3QEQfa9G1w= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=Jn2zXZ0H; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="Jn2zXZ0H" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 2E5E6C19424; Wed, 8 Apr 2026 03:09:28 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1775617768; bh=A5cbxr6QBNRbgHHeeZO1R6NqNKl6wTVienGx6o4PoDM=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=Jn2zXZ0H55WmOeEV9XksEKMRQQjqk7WZFy9Svh+6w6j1L6Yj/kZpvkUWclAEUNmfR aRqNTvhjPnoc7w2xS1gzwvYyKqx+d7e6kHj4HbM3CxnWFpvHNSzTgKmVrDoiY/XB3n Jq79MFtbDpx1nRfx+kD4ocsJjkrI20qs6PRWpMENUC5LV8ZN0dPBRBx0N6Npjk9D8z as4RJJERIysVjf10CAYAv2JTkGPDujUyHIAUc/ICgnaiqNxI5LiVECodzIg4iQ654W MNWfzzX8evpzXIl9KRa2Gg8SFtVA11yliMv8J5+awYhFo3pSX2TlAsu/utSIMOj6Ax U3Jq2/wJ3zIrQ== From: Eric Biggers To: Johannes Berg , linux-wireless@vger.kernel.org Cc: linux-crypto@vger.kernel.org, linux-kernel@vger.kernel.org, Herbert Xu , Eric Biggers , Geert Uytterhoeven Subject: [PATCH wireless-next v2 6/6] crypto: Remove michael_mic from crypto_shash API Date: Tue, 7 Apr 2026 20:06:51 -0700 Message-ID: <20260408030651.80336-7-ebiggers@kernel.org> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260408030651.80336-1-ebiggers@kernel.org> References: <20260408030651.80336-1-ebiggers@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Remove the "michael_mic" crypto_shash algorithm, since it's no longer used. Its only users were wireless drivers, which have now been converted to use the michael_mic() function instead. It makes sense that no other users ever appeared: Michael MIC is an insecure algorithm that is specific to WPA TKIP, which itself was an interim security solution to replace the broken WEP standard. Acked-by: Geert Uytterhoeven Signed-off-by: Eric Biggers Acked-by: Herbert Xu --- arch/arm/configs/omap2plus_defconfig | 1 - arch/arm/configs/spitz_defconfig | 1 - arch/arm64/configs/defconfig | 1 - arch/m68k/configs/amiga_defconfig | 1 - arch/m68k/configs/apollo_defconfig | 1 - arch/m68k/configs/atari_defconfig | 1 - arch/m68k/configs/bvme6000_defconfig | 1 - arch/m68k/configs/hp300_defconfig | 1 - arch/m68k/configs/mac_defconfig | 1 - arch/m68k/configs/multi_defconfig | 1 - arch/m68k/configs/mvme147_defconfig | 1 - arch/m68k/configs/mvme16x_defconfig | 1 - arch/m68k/configs/q40_defconfig | 1 - arch/m68k/configs/sun3_defconfig | 1 - arch/m68k/configs/sun3x_defconfig | 1 - arch/mips/configs/bigsur_defconfig | 1 - arch/mips/configs/decstation_64_defconfig | 1 - arch/mips/configs/decstation_defconfig | 1 - arch/mips/configs/decstation_r4k_defconfig | 1 - arch/mips/configs/gpr_defconfig | 1 - arch/mips/configs/ip32_defconfig | 1 - arch/mips/configs/lemote2f_defconfig | 1 - arch/mips/configs/malta_qemu_32r6_defconfig | 1 - arch/mips/configs/maltaaprp_defconfig | 1 - arch/mips/configs/maltasmvp_defconfig | 1 - arch/mips/configs/maltasmvp_eva_defconfig | 1 - arch/mips/configs/maltaup_defconfig | 1 - arch/mips/configs/mtx1_defconfig | 1 - arch/mips/configs/rm200_defconfig | 1 - arch/mips/configs/sb1250_swarm_defconfig | 1 - arch/parisc/configs/generic-32bit_defconfig | 1 - arch/parisc/configs/generic-64bit_defconfig | 1 - arch/powerpc/configs/g5_defconfig | 1 - arch/powerpc/configs/linkstation_defconfig | 1 - arch/powerpc/configs/mvme5100_defconfig | 1 - arch/powerpc/configs/powernv_defconfig | 1 - arch/powerpc/configs/ppc64_defconfig | 1 - arch/powerpc/configs/ppc64e_defconfig | 1 - arch/powerpc/configs/ppc6xx_defconfig | 1 - arch/powerpc/configs/ps3_defconfig | 1 - arch/s390/configs/debug_defconfig | 1 - arch/s390/configs/defconfig | 1 - arch/sh/configs/sh2007_defconfig | 1 - arch/sh/configs/titan_defconfig | 1 - arch/sh/configs/ul2_defconfig | 1 - arch/sparc/configs/sparc32_defconfig | 1 - arch/sparc/configs/sparc64_defconfig | 1 - crypto/Kconfig | 12 -- crypto/Makefile | 1 - crypto/michael_mic.c | 176 -------------------- crypto/tcrypt.c | 4 - crypto/testmgr.c | 6 - crypto/testmgr.h | 50 ------ 53 files changed, 296 deletions(-) delete mode 100644 crypto/michael_mic.c diff --git a/arch/arm/configs/omap2plus_defconfig b/arch/arm/configs/omap2p= lus_defconfig index 0464f6552169b..ae2883d3ff0ea 100644 --- a/arch/arm/configs/omap2plus_defconfig +++ b/arch/arm/configs/omap2plus_defconfig @@ -702,11 +702,10 @@ CONFIG_NFS_V3_ACL=3Dy CONFIG_NFS_V4=3Dy CONFIG_ROOT_NFS=3Dy CONFIG_NLS_CODEPAGE_437=3Dy CONFIG_NLS_ISO8859_1=3Dy CONFIG_SECURITY=3Dy -CONFIG_CRYPTO_MICHAEL_MIC=3Dy CONFIG_CRYPTO_GHASH_ARM_CE=3Dm CONFIG_CRYPTO_AES=3Dm CONFIG_CRYPTO_AES_ARM_BS=3Dm CONFIG_CRYPTO_DEV_OMAP=3Dm CONFIG_CRYPTO_DEV_OMAP_SHAM=3Dm diff --git a/arch/arm/configs/spitz_defconfig b/arch/arm/configs/spitz_defc= onfig index c130af6d44d48..f116a01c3f5f1 100644 --- a/arch/arm/configs/spitz_defconfig +++ b/arch/arm/configs/spitz_defconfig @@ -228,11 +228,10 @@ CONFIG_CRYPTO_KHAZAD=3Dm CONFIG_CRYPTO_SERPENT=3Dm CONFIG_CRYPTO_TEA=3Dm CONFIG_CRYPTO_TWOFISH=3Dm CONFIG_CRYPTO_HMAC=3Dy CONFIG_CRYPTO_MD4=3Dm -CONFIG_CRYPTO_MICHAEL_MIC=3Dm CONFIG_CRYPTO_SHA512=3Dm CONFIG_CRYPTO_WP512=3Dm CONFIG_FONTS=3Dy CONFIG_FONT_8x8=3Dy CONFIG_FONT_8x16=3Dy diff --git a/arch/arm64/configs/defconfig b/arch/arm64/configs/defconfig index 0651a771f5c18..8b23430484653 100644 --- a/arch/arm64/configs/defconfig +++ b/arch/arm64/configs/defconfig @@ -1912,11 +1912,10 @@ CONFIG_NLS_ISO8859_1=3Dy CONFIG_SECURITY=3Dy CONFIG_CRYPTO_USER=3Dy CONFIG_CRYPTO_CHACHA20=3Dm CONFIG_CRYPTO_BENCHMARK=3Dm CONFIG_CRYPTO_ECHAINIV=3Dy -CONFIG_CRYPTO_MICHAEL_MIC=3Dm CONFIG_CRYPTO_SHA3=3Dm CONFIG_CRYPTO_USER_API_RNG=3Dm CONFIG_CRYPTO_GHASH_ARM64_CE=3Dy CONFIG_CRYPTO_SM3_ARM64_CE=3Dm CONFIG_CRYPTO_AES_ARM64_CE_BLK=3Dy diff --git a/arch/m68k/configs/amiga_defconfig b/arch/m68k/configs/amiga_de= fconfig index c8b936bb702fe..510e16f253182 100644 --- a/arch/m68k/configs/amiga_defconfig +++ b/arch/m68k/configs/amiga_defconfig @@ -536,11 +536,10 @@ CONFIG_CRYPTO_HCTR2=3Dm CONFIG_CRYPTO_LRW=3Dm CONFIG_CRYPTO_PCBC=3Dm CONFIG_CRYPTO_XTS=3Dm CONFIG_CRYPTO_AEGIS128=3Dm CONFIG_CRYPTO_MD4=3Dm -CONFIG_CRYPTO_MICHAEL_MIC=3Dm CONFIG_CRYPTO_RMD160=3Dm CONFIG_CRYPTO_SHA1=3Dm CONFIG_CRYPTO_SM3_GENERIC=3Dm CONFIG_CRYPTO_WP512=3Dm CONFIG_CRYPTO_XCBC=3Dm diff --git a/arch/m68k/configs/apollo_defconfig b/arch/m68k/configs/apollo_= defconfig index fc1792495bbcb..d1d8f02b4d968 100644 --- a/arch/m68k/configs/apollo_defconfig +++ b/arch/m68k/configs/apollo_defconfig @@ -493,11 +493,10 @@ CONFIG_CRYPTO_HCTR2=3Dm CONFIG_CRYPTO_LRW=3Dm CONFIG_CRYPTO_PCBC=3Dm CONFIG_CRYPTO_XTS=3Dm CONFIG_CRYPTO_AEGIS128=3Dm CONFIG_CRYPTO_MD4=3Dm -CONFIG_CRYPTO_MICHAEL_MIC=3Dm CONFIG_CRYPTO_RMD160=3Dm CONFIG_CRYPTO_SHA1=3Dm CONFIG_CRYPTO_SM3_GENERIC=3Dm CONFIG_CRYPTO_WP512=3Dm CONFIG_CRYPTO_XCBC=3Dm diff --git a/arch/m68k/configs/atari_defconfig b/arch/m68k/configs/atari_de= fconfig index e440c596e60be..2e207af4add24 100644 --- a/arch/m68k/configs/atari_defconfig +++ b/arch/m68k/configs/atari_defconfig @@ -513,11 +513,10 @@ CONFIG_CRYPTO_HCTR2=3Dm CONFIG_CRYPTO_LRW=3Dm CONFIG_CRYPTO_PCBC=3Dm CONFIG_CRYPTO_XTS=3Dm CONFIG_CRYPTO_AEGIS128=3Dm CONFIG_CRYPTO_MD4=3Dm -CONFIG_CRYPTO_MICHAEL_MIC=3Dm CONFIG_CRYPTO_RMD160=3Dm CONFIG_CRYPTO_SHA1=3Dm CONFIG_CRYPTO_SM3_GENERIC=3Dm CONFIG_CRYPTO_WP512=3Dm CONFIG_CRYPTO_XCBC=3Dm diff --git a/arch/m68k/configs/bvme6000_defconfig b/arch/m68k/configs/bvme6= 000_defconfig index 7aa352d143630..d754652898984 100644 --- a/arch/m68k/configs/bvme6000_defconfig +++ b/arch/m68k/configs/bvme6000_defconfig @@ -485,11 +485,10 @@ CONFIG_CRYPTO_HCTR2=3Dm CONFIG_CRYPTO_LRW=3Dm CONFIG_CRYPTO_PCBC=3Dm CONFIG_CRYPTO_XTS=3Dm CONFIG_CRYPTO_AEGIS128=3Dm CONFIG_CRYPTO_MD4=3Dm -CONFIG_CRYPTO_MICHAEL_MIC=3Dm CONFIG_CRYPTO_RMD160=3Dm CONFIG_CRYPTO_SHA1=3Dm CONFIG_CRYPTO_SM3_GENERIC=3Dm CONFIG_CRYPTO_WP512=3Dm CONFIG_CRYPTO_XCBC=3Dm diff --git a/arch/m68k/configs/hp300_defconfig b/arch/m68k/configs/hp300_de= fconfig index 0baaf2a82c611..c2011a749e108 100644 --- a/arch/m68k/configs/hp300_defconfig +++ b/arch/m68k/configs/hp300_defconfig @@ -495,11 +495,10 @@ CONFIG_CRYPTO_HCTR2=3Dm CONFIG_CRYPTO_LRW=3Dm CONFIG_CRYPTO_PCBC=3Dm CONFIG_CRYPTO_XTS=3Dm CONFIG_CRYPTO_AEGIS128=3Dm CONFIG_CRYPTO_MD4=3Dm -CONFIG_CRYPTO_MICHAEL_MIC=3Dm CONFIG_CRYPTO_RMD160=3Dm CONFIG_CRYPTO_SHA1=3Dm CONFIG_CRYPTO_SM3_GENERIC=3Dm CONFIG_CRYPTO_WP512=3Dm CONFIG_CRYPTO_XCBC=3Dm diff --git a/arch/m68k/configs/mac_defconfig b/arch/m68k/configs/mac_defcon= fig index 0cbbfe5aeaecf..e377443c56d41 100644 --- a/arch/m68k/configs/mac_defconfig +++ b/arch/m68k/configs/mac_defconfig @@ -512,11 +512,10 @@ CONFIG_CRYPTO_HCTR2=3Dm CONFIG_CRYPTO_LRW=3Dm CONFIG_CRYPTO_PCBC=3Dm CONFIG_CRYPTO_XTS=3Dm CONFIG_CRYPTO_AEGIS128=3Dm CONFIG_CRYPTO_MD4=3Dm -CONFIG_CRYPTO_MICHAEL_MIC=3Dm CONFIG_CRYPTO_RMD160=3Dm CONFIG_CRYPTO_SHA1=3Dm CONFIG_CRYPTO_SM3_GENERIC=3Dm CONFIG_CRYPTO_WP512=3Dm CONFIG_CRYPTO_XCBC=3Dm diff --git a/arch/m68k/configs/multi_defconfig b/arch/m68k/configs/multi_de= fconfig index 2b96f90e1a4dd..cdd0449f71413 100644 --- a/arch/m68k/configs/multi_defconfig +++ b/arch/m68k/configs/multi_defconfig @@ -599,11 +599,10 @@ CONFIG_CRYPTO_HCTR2=3Dm CONFIG_CRYPTO_LRW=3Dm CONFIG_CRYPTO_PCBC=3Dm CONFIG_CRYPTO_XTS=3Dm CONFIG_CRYPTO_AEGIS128=3Dm CONFIG_CRYPTO_MD4=3Dm -CONFIG_CRYPTO_MICHAEL_MIC=3Dm CONFIG_CRYPTO_RMD160=3Dm CONFIG_CRYPTO_SHA1=3Dm CONFIG_CRYPTO_SM3_GENERIC=3Dm CONFIG_CRYPTO_WP512=3Dm CONFIG_CRYPTO_XCBC=3Dm diff --git a/arch/m68k/configs/mvme147_defconfig b/arch/m68k/configs/mvme14= 7_defconfig index b49264cec9116..4e78ff8d793e8 100644 --- a/arch/m68k/configs/mvme147_defconfig +++ b/arch/m68k/configs/mvme147_defconfig @@ -485,11 +485,10 @@ CONFIG_CRYPTO_HCTR2=3Dm CONFIG_CRYPTO_LRW=3Dm CONFIG_CRYPTO_PCBC=3Dm CONFIG_CRYPTO_XTS=3Dm CONFIG_CRYPTO_AEGIS128=3Dm CONFIG_CRYPTO_MD4=3Dm -CONFIG_CRYPTO_MICHAEL_MIC=3Dm CONFIG_CRYPTO_RMD160=3Dm CONFIG_CRYPTO_SHA1=3Dm CONFIG_CRYPTO_SM3_GENERIC=3Dm CONFIG_CRYPTO_WP512=3Dm CONFIG_CRYPTO_XCBC=3Dm diff --git a/arch/m68k/configs/mvme16x_defconfig b/arch/m68k/configs/mvme16= x_defconfig index 96a974b0a7662..9fc30a3236e18 100644 --- a/arch/m68k/configs/mvme16x_defconfig +++ b/arch/m68k/configs/mvme16x_defconfig @@ -486,11 +486,10 @@ CONFIG_CRYPTO_HCTR2=3Dm CONFIG_CRYPTO_LRW=3Dm CONFIG_CRYPTO_PCBC=3Dm CONFIG_CRYPTO_XTS=3Dm CONFIG_CRYPTO_AEGIS128=3Dm CONFIG_CRYPTO_MD4=3Dm -CONFIG_CRYPTO_MICHAEL_MIC=3Dm CONFIG_CRYPTO_RMD160=3Dm CONFIG_CRYPTO_SHA1=3Dm CONFIG_CRYPTO_SM3_GENERIC=3Dm CONFIG_CRYPTO_WP512=3Dm CONFIG_CRYPTO_XCBC=3Dm diff --git a/arch/m68k/configs/q40_defconfig b/arch/m68k/configs/q40_defcon= fig index e533615843936..c3b5fdabfe160 100644 --- a/arch/m68k/configs/q40_defconfig +++ b/arch/m68k/configs/q40_defconfig @@ -502,11 +502,10 @@ CONFIG_CRYPTO_HCTR2=3Dm CONFIG_CRYPTO_LRW=3Dm CONFIG_CRYPTO_PCBC=3Dm CONFIG_CRYPTO_XTS=3Dm CONFIG_CRYPTO_AEGIS128=3Dm CONFIG_CRYPTO_MD4=3Dm -CONFIG_CRYPTO_MICHAEL_MIC=3Dm CONFIG_CRYPTO_RMD160=3Dm CONFIG_CRYPTO_SHA1=3Dm CONFIG_CRYPTO_SM3_GENERIC=3Dm CONFIG_CRYPTO_WP512=3Dm CONFIG_CRYPTO_XCBC=3Dm diff --git a/arch/m68k/configs/sun3_defconfig b/arch/m68k/configs/sun3_defc= onfig index af89287c10931..ea40f990eb22a 100644 --- a/arch/m68k/configs/sun3_defconfig +++ b/arch/m68k/configs/sun3_defconfig @@ -483,11 +483,10 @@ CONFIG_CRYPTO_HCTR2=3Dm CONFIG_CRYPTO_LRW=3Dm CONFIG_CRYPTO_PCBC=3Dm CONFIG_CRYPTO_XTS=3Dm CONFIG_CRYPTO_AEGIS128=3Dm CONFIG_CRYPTO_MD4=3Dm -CONFIG_CRYPTO_MICHAEL_MIC=3Dm CONFIG_CRYPTO_RMD160=3Dm CONFIG_CRYPTO_SHA1=3Dm CONFIG_CRYPTO_SM3_GENERIC=3Dm CONFIG_CRYPTO_WP512=3Dm CONFIG_CRYPTO_XCBC=3Dm diff --git a/arch/m68k/configs/sun3x_defconfig b/arch/m68k/configs/sun3x_de= fconfig index af210e8b77f90..e20b6a9d26cdf 100644 --- a/arch/m68k/configs/sun3x_defconfig +++ b/arch/m68k/configs/sun3x_defconfig @@ -483,11 +483,10 @@ CONFIG_CRYPTO_HCTR2=3Dm CONFIG_CRYPTO_LRW=3Dm CONFIG_CRYPTO_PCBC=3Dm CONFIG_CRYPTO_XTS=3Dm CONFIG_CRYPTO_AEGIS128=3Dm CONFIG_CRYPTO_MD4=3Dm -CONFIG_CRYPTO_MICHAEL_MIC=3Dm CONFIG_CRYPTO_RMD160=3Dm CONFIG_CRYPTO_SHA1=3Dm CONFIG_CRYPTO_SM3_GENERIC=3Dm CONFIG_CRYPTO_WP512=3Dm CONFIG_CRYPTO_XCBC=3Dm diff --git a/arch/mips/configs/bigsur_defconfig b/arch/mips/configs/bigsur_= defconfig index 349e9e0b4f547..3b64e151e187f 100644 --- a/arch/mips/configs/bigsur_defconfig +++ b/arch/mips/configs/bigsur_defconfig @@ -220,11 +220,10 @@ CONFIG_CRYPTO_LRW=3Dm CONFIG_CRYPTO_PCBC=3Dm CONFIG_CRYPTO_XTS=3Dm CONFIG_CRYPTO_HMAC=3Dy CONFIG_CRYPTO_XCBC=3Dm CONFIG_CRYPTO_MD4=3Dm -CONFIG_CRYPTO_MICHAEL_MIC=3Dm CONFIG_CRYPTO_RMD160=3Dm CONFIG_CRYPTO_SHA512=3Dm CONFIG_CRYPTO_WP512=3Dm CONFIG_CRYPTO_ANUBIS=3Dm CONFIG_CRYPTO_BLOWFISH=3Dm diff --git a/arch/mips/configs/decstation_64_defconfig b/arch/mips/configs/= decstation_64_defconfig index dad98c5752928..7c43352fac6bd 100644 --- a/arch/mips/configs/decstation_64_defconfig +++ b/arch/mips/configs/decstation_64_defconfig @@ -178,11 +178,10 @@ CONFIG_CRYPTO_PCBC=3Dm CONFIG_CRYPTO_XTS=3Dm CONFIG_CRYPTO_CMAC=3Dm CONFIG_CRYPTO_XCBC=3Dm CONFIG_CRYPTO_CRC32=3Dm CONFIG_CRYPTO_MD4=3Dm -CONFIG_CRYPTO_MICHAEL_MIC=3Dm CONFIG_CRYPTO_RMD160=3Dm CONFIG_CRYPTO_SHA512=3Dm CONFIG_CRYPTO_WP512=3Dm CONFIG_CRYPTO_ANUBIS=3Dm CONFIG_CRYPTO_ARC4=3Dm diff --git a/arch/mips/configs/decstation_defconfig b/arch/mips/configs/dec= station_defconfig index 4e1b51a4ad900..aee10274f0488 100644 --- a/arch/mips/configs/decstation_defconfig +++ b/arch/mips/configs/decstation_defconfig @@ -173,11 +173,10 @@ CONFIG_CRYPTO_PCBC=3Dm CONFIG_CRYPTO_XTS=3Dm CONFIG_CRYPTO_CMAC=3Dm CONFIG_CRYPTO_XCBC=3Dm CONFIG_CRYPTO_CRC32=3Dm CONFIG_CRYPTO_MD4=3Dm -CONFIG_CRYPTO_MICHAEL_MIC=3Dm CONFIG_CRYPTO_RMD160=3Dm CONFIG_CRYPTO_SHA512=3Dm CONFIG_CRYPTO_WP512=3Dm CONFIG_CRYPTO_ANUBIS=3Dm CONFIG_CRYPTO_ARC4=3Dm diff --git a/arch/mips/configs/decstation_r4k_defconfig b/arch/mips/configs= /decstation_r4k_defconfig index 4e550dffc23df..a1698049aa7a7 100644 --- a/arch/mips/configs/decstation_r4k_defconfig +++ b/arch/mips/configs/decstation_r4k_defconfig @@ -173,11 +173,10 @@ CONFIG_CRYPTO_PCBC=3Dm CONFIG_CRYPTO_XTS=3Dm CONFIG_CRYPTO_CMAC=3Dm CONFIG_CRYPTO_XCBC=3Dm CONFIG_CRYPTO_CRC32=3Dm CONFIG_CRYPTO_MD4=3Dm -CONFIG_CRYPTO_MICHAEL_MIC=3Dm CONFIG_CRYPTO_RMD160=3Dm CONFIG_CRYPTO_SHA512=3Dm CONFIG_CRYPTO_WP512=3Dm CONFIG_CRYPTO_ANUBIS=3Dm CONFIG_CRYPTO_ARC4=3Dm diff --git a/arch/mips/configs/gpr_defconfig b/arch/mips/configs/gpr_defcon= fig index 437ef6dc0b4c2..fdd28a89e3369 100644 --- a/arch/mips/configs/gpr_defconfig +++ b/arch/mips/configs/gpr_defconfig @@ -273,11 +273,10 @@ CONFIG_NLS_CODEPAGE_850=3Dy CONFIG_NLS_ISO8859_1=3Dy CONFIG_CRYPTO_AUTHENC=3Dm CONFIG_CRYPTO_BENCHMARK=3Dm CONFIG_CRYPTO_PCBC=3Dm CONFIG_CRYPTO_MD4=3Dm -CONFIG_CRYPTO_MICHAEL_MIC=3Dm CONFIG_CRYPTO_SHA512=3Dm CONFIG_CRYPTO_WP512=3Dm CONFIG_CRYPTO_ANUBIS=3Dm CONFIG_CRYPTO_BLOWFISH=3Dm CONFIG_CRYPTO_CAST5=3Dm diff --git a/arch/mips/configs/ip32_defconfig b/arch/mips/configs/ip32_defc= onfig index 7568838eb08b2..68558d0d3f52c 100644 --- a/arch/mips/configs/ip32_defconfig +++ b/arch/mips/configs/ip32_defconfig @@ -157,11 +157,10 @@ CONFIG_CRYPTO_ECB=3Dy CONFIG_CRYPTO_LRW=3Dy CONFIG_CRYPTO_PCBC=3Dy CONFIG_CRYPTO_HMAC=3Dy CONFIG_CRYPTO_XCBC=3Dy CONFIG_CRYPTO_MD4=3Dy -CONFIG_CRYPTO_MICHAEL_MIC=3Dy CONFIG_CRYPTO_SHA1=3Dy CONFIG_CRYPTO_SHA256=3Dy CONFIG_CRYPTO_SHA512=3Dy CONFIG_CRYPTO_WP512=3Dy CONFIG_CRYPTO_ANUBIS=3Dy diff --git a/arch/mips/configs/lemote2f_defconfig b/arch/mips/configs/lemot= e2f_defconfig index 8d3f20ed19b56..eb3565a3f292c 100644 --- a/arch/mips/configs/lemote2f_defconfig +++ b/arch/mips/configs/lemote2f_defconfig @@ -306,11 +306,10 @@ CONFIG_CRYPTO_FCRYPT=3Dm CONFIG_CRYPTO_SERPENT=3Dm CONFIG_CRYPTO_TWOFISH=3Dm CONFIG_CRYPTO_LRW=3Dm CONFIG_CRYPTO_PCBC=3Dm CONFIG_CRYPTO_XTS=3Dm -CONFIG_CRYPTO_MICHAEL_MIC=3Dm CONFIG_CRYPTO_RMD160=3Dm CONFIG_CRYPTO_SHA1=3Dm CONFIG_CRYPTO_WP512=3Dm CONFIG_CRYPTO_XCBC=3Dm CONFIG_CRYPTO_DEFLATE=3Dm diff --git a/arch/mips/configs/malta_qemu_32r6_defconfig b/arch/mips/config= s/malta_qemu_32r6_defconfig index accb471a1d93f..46a69e8984c5a 100644 --- a/arch/mips/configs/malta_qemu_32r6_defconfig +++ b/arch/mips/configs/malta_qemu_32r6_defconfig @@ -165,11 +165,10 @@ CONFIG_CIFS_XATTR=3Dy CONFIG_CIFS_POSIX=3Dy CONFIG_NLS_CODEPAGE_437=3Dm CONFIG_NLS_ISO8859_1=3Dm CONFIG_CRYPTO_PCBC=3Dm CONFIG_CRYPTO_HMAC=3Dy -CONFIG_CRYPTO_MICHAEL_MIC=3Dm CONFIG_CRYPTO_WP512=3Dm CONFIG_CRYPTO_ANUBIS=3Dm CONFIG_CRYPTO_BLOWFISH=3Dm CONFIG_CRYPTO_CAST5=3Dm CONFIG_CRYPTO_CAST6=3Dm diff --git a/arch/mips/configs/maltaaprp_defconfig b/arch/mips/configs/malt= aaprp_defconfig index 6bda67c5f68f8..74a0e5f6a8860 100644 --- a/arch/mips/configs/maltaaprp_defconfig +++ b/arch/mips/configs/maltaaprp_defconfig @@ -166,11 +166,10 @@ CONFIG_CIFS_XATTR=3Dy CONFIG_CIFS_POSIX=3Dy CONFIG_NLS_CODEPAGE_437=3Dm CONFIG_NLS_ISO8859_1=3Dm CONFIG_CRYPTO_PCBC=3Dm CONFIG_CRYPTO_HMAC=3Dy -CONFIG_CRYPTO_MICHAEL_MIC=3Dm CONFIG_CRYPTO_WP512=3Dm CONFIG_CRYPTO_ANUBIS=3Dm CONFIG_CRYPTO_BLOWFISH=3Dm CONFIG_CRYPTO_CAST5=3Dm CONFIG_CRYPTO_CAST6=3Dm diff --git a/arch/mips/configs/maltasmvp_defconfig b/arch/mips/configs/malt= asmvp_defconfig index e4082537f80fb..873bfc59623b8 100644 --- a/arch/mips/configs/maltasmvp_defconfig +++ b/arch/mips/configs/maltasmvp_defconfig @@ -167,11 +167,10 @@ CONFIG_CIFS_XATTR=3Dy CONFIG_CIFS_POSIX=3Dy CONFIG_NLS_CODEPAGE_437=3Dm CONFIG_NLS_ISO8859_1=3Dm CONFIG_CRYPTO_PCBC=3Dm CONFIG_CRYPTO_HMAC=3Dy -CONFIG_CRYPTO_MICHAEL_MIC=3Dm CONFIG_CRYPTO_WP512=3Dm CONFIG_CRYPTO_ANUBIS=3Dm CONFIG_CRYPTO_BLOWFISH=3Dm CONFIG_CRYPTO_CAST5=3Dm CONFIG_CRYPTO_CAST6=3Dm diff --git a/arch/mips/configs/maltasmvp_eva_defconfig b/arch/mips/configs/= maltasmvp_eva_defconfig index 58f5af45fa983..c9230b2c4ea8d 100644 --- a/arch/mips/configs/maltasmvp_eva_defconfig +++ b/arch/mips/configs/maltasmvp_eva_defconfig @@ -169,11 +169,10 @@ CONFIG_CIFS_XATTR=3Dy CONFIG_CIFS_POSIX=3Dy CONFIG_NLS_CODEPAGE_437=3Dm CONFIG_NLS_ISO8859_1=3Dm CONFIG_CRYPTO_PCBC=3Dm CONFIG_CRYPTO_HMAC=3Dy -CONFIG_CRYPTO_MICHAEL_MIC=3Dm CONFIG_CRYPTO_WP512=3Dm CONFIG_CRYPTO_ANUBIS=3Dm CONFIG_CRYPTO_BLOWFISH=3Dm CONFIG_CRYPTO_CAST5=3Dm CONFIG_CRYPTO_CAST6=3Dm diff --git a/arch/mips/configs/maltaup_defconfig b/arch/mips/configs/maltau= p_defconfig index 9bfef7de0d1cf..79fd3ccab3393 100644 --- a/arch/mips/configs/maltaup_defconfig +++ b/arch/mips/configs/maltaup_defconfig @@ -165,11 +165,10 @@ CONFIG_CIFS_XATTR=3Dy CONFIG_CIFS_POSIX=3Dy CONFIG_NLS_CODEPAGE_437=3Dm CONFIG_NLS_ISO8859_1=3Dm CONFIG_CRYPTO_PCBC=3Dm CONFIG_CRYPTO_HMAC=3Dy -CONFIG_CRYPTO_MICHAEL_MIC=3Dm CONFIG_CRYPTO_WP512=3Dm CONFIG_CRYPTO_ANUBIS=3Dm CONFIG_CRYPTO_BLOWFISH=3Dm CONFIG_CRYPTO_CAST5=3Dm CONFIG_CRYPTO_CAST6=3Dm diff --git a/arch/mips/configs/mtx1_defconfig b/arch/mips/configs/mtx1_defc= onfig index 77050ae3945fc..930c0178cc670 100644 --- a/arch/mips/configs/mtx1_defconfig +++ b/arch/mips/configs/mtx1_defconfig @@ -661,11 +661,10 @@ CONFIG_NLS_KOI8_U=3Dm CONFIG_NLS_UTF8=3Dm CONFIG_CRYPTO_BENCHMARK=3Dm CONFIG_CRYPTO_PCBC=3Dm CONFIG_CRYPTO_HMAC=3Dy CONFIG_CRYPTO_MD5=3Dy -CONFIG_CRYPTO_MICHAEL_MIC=3Dm CONFIG_CRYPTO_WP512=3Dm CONFIG_CRYPTO_ANUBIS=3Dm CONFIG_CRYPTO_BLOWFISH=3Dm CONFIG_CRYPTO_CAST6=3Dm CONFIG_CRYPTO_KHAZAD=3Dm diff --git a/arch/mips/configs/rm200_defconfig b/arch/mips/configs/rm200_de= fconfig index b507dc4dddd48..b1e67ff0c4f08 100644 --- a/arch/mips/configs/rm200_defconfig +++ b/arch/mips/configs/rm200_defconfig @@ -380,11 +380,10 @@ CONFIG_NLS_KOI8_U=3Dm CONFIG_NLS_UTF8=3Dm CONFIG_CRYPTO_LRW=3Dm CONFIG_CRYPTO_PCBC=3Dm CONFIG_CRYPTO_HMAC=3Dy CONFIG_CRYPTO_XCBC=3Dm -CONFIG_CRYPTO_MICHAEL_MIC=3Dm CONFIG_CRYPTO_WP512=3Dm CONFIG_CRYPTO_ANUBIS=3Dm CONFIG_CRYPTO_BLOWFISH=3Dm CONFIG_CRYPTO_CAMELLIA=3Dm CONFIG_CRYPTO_CAST6=3Dm diff --git a/arch/mips/configs/sb1250_swarm_defconfig b/arch/mips/configs/s= b1250_swarm_defconfig index ae2afff00e01a..4a25b8d3e5078 100644 --- a/arch/mips/configs/sb1250_swarm_defconfig +++ b/arch/mips/configs/sb1250_swarm_defconfig @@ -83,11 +83,10 @@ CONFIG_CRYPTO_LRW=3Dm CONFIG_CRYPTO_PCBC=3Dm CONFIG_CRYPTO_XTS=3Dm CONFIG_CRYPTO_HMAC=3Dy CONFIG_CRYPTO_XCBC=3Dm CONFIG_CRYPTO_MD4=3Dm -CONFIG_CRYPTO_MICHAEL_MIC=3Dm CONFIG_CRYPTO_SHA512=3Dm CONFIG_CRYPTO_WP512=3Dm CONFIG_CRYPTO_BLOWFISH=3Dm CONFIG_CRYPTO_CAMELLIA=3Dm CONFIG_CRYPTO_CAST5=3Dm diff --git a/arch/parisc/configs/generic-32bit_defconfig b/arch/parisc/conf= igs/generic-32bit_defconfig index 5444ce6405f3a..a2cb2a7a02db8 100644 --- a/arch/parisc/configs/generic-32bit_defconfig +++ b/arch/parisc/configs/generic-32bit_defconfig @@ -257,11 +257,10 @@ CONFIG_CRYPTO_CAST6=3Dm CONFIG_CRYPTO_DES=3Dy CONFIG_CRYPTO_SERPENT=3Dm CONFIG_CRYPTO_TWOFISH=3Dm CONFIG_CRYPTO_HMAC=3Dy CONFIG_CRYPTO_MD5=3Dy -CONFIG_CRYPTO_MICHAEL_MIC=3Dm CONFIG_CRYPTO_SHA1=3Dy CONFIG_CRYPTO_WP512=3Dm CONFIG_CRYPTO_DEFLATE=3Dy CONFIG_FONTS=3Dy CONFIG_PRINTK_TIME=3Dy diff --git a/arch/parisc/configs/generic-64bit_defconfig b/arch/parisc/conf= igs/generic-64bit_defconfig index ce91f9d1fdbfb..4dd6cf6a2cb9b 100644 --- a/arch/parisc/configs/generic-64bit_defconfig +++ b/arch/parisc/configs/generic-64bit_defconfig @@ -285,11 +285,10 @@ CONFIG_NLS_UTF8=3Dm CONFIG_CRYPTO_FCRYPT=3Dm CONFIG_CRYPTO_ECB=3Dm CONFIG_CRYPTO_PCBC=3Dm CONFIG_CRYPTO_MD4=3Dm CONFIG_CRYPTO_MD5=3Dy -CONFIG_CRYPTO_MICHAEL_MIC=3Dm CONFIG_CRYPTO_DEFLATE=3Dm # CONFIG_CRYPTO_HW is not set CONFIG_PRINTK_TIME=3Dy CONFIG_DEBUG_KERNEL=3Dy CONFIG_STRIP_ASM_SYMS=3Dy diff --git a/arch/powerpc/configs/g5_defconfig b/arch/powerpc/configs/g5_de= fconfig index 428f17b455132..466f196ee8b29 100644 --- a/arch/powerpc/configs/g5_defconfig +++ b/arch/powerpc/configs/g5_defconfig @@ -236,11 +236,10 @@ CONFIG_DEBUG_KERNEL=3Dy CONFIG_DEBUG_MUTEXES=3Dy CONFIG_BOOTX_TEXT=3Dy CONFIG_CRYPTO_BENCHMARK=3Dm CONFIG_CRYPTO_PCBC=3Dm CONFIG_CRYPTO_HMAC=3Dy -CONFIG_CRYPTO_MICHAEL_MIC=3Dm CONFIG_CRYPTO_SHA512=3Dm CONFIG_CRYPTO_WP512=3Dm CONFIG_CRYPTO_ANUBIS=3Dm CONFIG_CRYPTO_BLOWFISH=3Dm CONFIG_CRYPTO_CAST5=3Dm diff --git a/arch/powerpc/configs/linkstation_defconfig b/arch/powerpc/conf= igs/linkstation_defconfig index b564f9e33a0df..31f84d08b6efe 100644 --- a/arch/powerpc/configs/linkstation_defconfig +++ b/arch/powerpc/configs/linkstation_defconfig @@ -127,11 +127,10 @@ CONFIG_NLS_ISO8859_1=3Dm CONFIG_NLS_UTF8=3Dm CONFIG_MAGIC_SYSRQ=3Dy CONFIG_DEBUG_KERNEL=3Dy CONFIG_DETECT_HUNG_TASK=3Dy CONFIG_CRYPTO_PCBC=3Dm -CONFIG_CRYPTO_MICHAEL_MIC=3Dm CONFIG_CRYPTO_SHA1=3Dm CONFIG_CRYPTO_BLOWFISH=3Dm CONFIG_CRYPTO_SERPENT=3Dm CONFIG_CRYPTO_TWOFISH=3Dm CONFIG_CRYPTO_DEFLATE=3Dm diff --git a/arch/powerpc/configs/mvme5100_defconfig b/arch/powerpc/configs= /mvme5100_defconfig index fa2b3b9c59452..c82754c14e15e 100644 --- a/arch/powerpc/configs/mvme5100_defconfig +++ b/arch/powerpc/configs/mvme5100_defconfig @@ -113,11 +113,10 @@ CONFIG_DEBUG_KERNEL=3Dy CONFIG_DETECT_HUNG_TASK=3Dy CONFIG_DEFAULT_HUNG_TASK_TIMEOUT=3D20 CONFIG_CRYPTO_CBC=3Dy CONFIG_CRYPTO_PCBC=3Dm CONFIG_CRYPTO_MD5=3Dy -CONFIG_CRYPTO_MICHAEL_MIC=3Dm CONFIG_CRYPTO_SHA1=3Dm CONFIG_CRYPTO_BLOWFISH=3Dm CONFIG_CRYPTO_DES=3Dy CONFIG_CRYPTO_SERPENT=3Dm CONFIG_CRYPTO_TWOFISH=3Dm diff --git a/arch/powerpc/configs/powernv_defconfig b/arch/powerpc/configs/= powernv_defconfig index 9ac746cfb4be3..675462b783200 100644 --- a/arch/powerpc/configs/powernv_defconfig +++ b/arch/powerpc/configs/powernv_defconfig @@ -317,11 +317,10 @@ CONFIG_FTR_FIXUP_SELFTEST=3Dy CONFIG_MSI_BITMAP_SELFTEST=3Dy CONFIG_XMON=3Dy CONFIG_CRYPTO_BENCHMARK=3Dm CONFIG_CRYPTO_PCBC=3Dm CONFIG_CRYPTO_HMAC=3Dy -CONFIG_CRYPTO_MICHAEL_MIC=3Dm CONFIG_CRYPTO_SHA256=3Dy CONFIG_CRYPTO_WP512=3Dm CONFIG_CRYPTO_ANUBIS=3Dm CONFIG_CRYPTO_BLOWFISH=3Dm CONFIG_CRYPTO_CAST6=3Dm diff --git a/arch/powerpc/configs/ppc64_defconfig b/arch/powerpc/configs/pp= c64_defconfig index 2b0720f2753bc..e3e1cad668d9a 100644 --- a/arch/powerpc/configs/ppc64_defconfig +++ b/arch/powerpc/configs/ppc64_defconfig @@ -380,11 +380,10 @@ CONFIG_CRYPTO_BENCHMARK=3Dm CONFIG_CRYPTO_BLOWFISH=3Dm CONFIG_CRYPTO_CAST6=3Dm CONFIG_CRYPTO_SERPENT=3Dm CONFIG_CRYPTO_TWOFISH=3Dm CONFIG_CRYPTO_PCBC=3Dm -CONFIG_CRYPTO_MICHAEL_MIC=3Dm CONFIG_CRYPTO_SHA256=3Dy CONFIG_CRYPTO_WP512=3Dm CONFIG_CRYPTO_LZO=3Dm CONFIG_CRYPTO_AES_GCM_P10=3Dm CONFIG_CRYPTO_DEV_NX=3Dy diff --git a/arch/powerpc/configs/ppc64e_defconfig b/arch/powerpc/configs/p= pc64e_defconfig index 90247b2a0ab0c..e877598fe3562 100644 --- a/arch/powerpc/configs/ppc64e_defconfig +++ b/arch/powerpc/configs/ppc64e_defconfig @@ -223,11 +223,10 @@ CONFIG_XMON=3Dy CONFIG_CRYPTO_BENCHMARK=3Dm CONFIG_CRYPTO_CCM=3Dm CONFIG_CRYPTO_GCM=3Dm CONFIG_CRYPTO_PCBC=3Dm CONFIG_CRYPTO_HMAC=3Dy -CONFIG_CRYPTO_MICHAEL_MIC=3Dm CONFIG_CRYPTO_SHA512=3Dm CONFIG_CRYPTO_WP512=3Dm CONFIG_CRYPTO_ANUBIS=3Dm CONFIG_CRYPTO_BLOWFISH=3Dm CONFIG_CRYPTO_CAST6=3Dm diff --git a/arch/powerpc/configs/ppc6xx_defconfig b/arch/powerpc/configs/p= pc6xx_defconfig index 3c08f46f3d41f..27d4350e8fdbe 100644 --- a/arch/powerpc/configs/ppc6xx_defconfig +++ b/arch/powerpc/configs/ppc6xx_defconfig @@ -1075,11 +1075,10 @@ CONFIG_CRYPTO_CTS=3Dm CONFIG_CRYPTO_LRW=3Dm CONFIG_CRYPTO_PCBC=3Dm CONFIG_CRYPTO_XTS=3Dm CONFIG_CRYPTO_HMAC=3Dy CONFIG_CRYPTO_XCBC=3Dm -CONFIG_CRYPTO_MICHAEL_MIC=3Dm CONFIG_CRYPTO_RMD160=3Dm CONFIG_CRYPTO_SHA1=3Dy CONFIG_CRYPTO_SHA512=3Dm CONFIG_CRYPTO_WP512=3Dm CONFIG_CRYPTO_ANUBIS=3Dm diff --git a/arch/powerpc/configs/ps3_defconfig b/arch/powerpc/configs/ps3_= defconfig index 0b48d2b776c44..7cfae0b7b2f35 100644 --- a/arch/powerpc/configs/ps3_defconfig +++ b/arch/powerpc/configs/ps3_defconfig @@ -144,11 +144,10 @@ CONFIG_ROOT_NFS=3Dy CONFIG_CIFS=3Dm CONFIG_NLS=3Dy CONFIG_NLS_CODEPAGE_437=3Dy CONFIG_NLS_ISO8859_1=3Dy CONFIG_CRYPTO_PCBC=3Dm -CONFIG_CRYPTO_MICHAEL_MIC=3Dm CONFIG_CRYPTO_LZO=3Dm CONFIG_PRINTK_TIME=3Dy CONFIG_DEBUG_INFO_DWARF_TOOLCHAIN_DEFAULT=3Dy CONFIG_MAGIC_SYSRQ=3Dy CONFIG_DEBUG_MEMORY_INIT=3Dy diff --git a/arch/s390/configs/debug_defconfig b/arch/s390/configs/debug_de= fconfig index 98fd0a2f51c6a..b74f96eec4658 100644 --- a/arch/s390/configs/debug_defconfig +++ b/arch/s390/configs/debug_defconfig @@ -792,11 +792,10 @@ CONFIG_CRYPTO_PCBC=3Dm CONFIG_CRYPTO_AEGIS128=3Dm CONFIG_CRYPTO_GCM=3Dy CONFIG_CRYPTO_SEQIV=3Dy CONFIG_CRYPTO_MD4=3Dm CONFIG_CRYPTO_MD5=3Dy -CONFIG_CRYPTO_MICHAEL_MIC=3Dm CONFIG_CRYPTO_RMD160=3Dm CONFIG_CRYPTO_SHA3=3Dm CONFIG_CRYPTO_SM3_GENERIC=3Dm CONFIG_CRYPTO_WP512=3Dm CONFIG_CRYPTO_XCBC=3Dm diff --git a/arch/s390/configs/defconfig b/arch/s390/configs/defconfig index 0f4cedcab3cef..0c831481e43fd 100644 --- a/arch/s390/configs/defconfig +++ b/arch/s390/configs/defconfig @@ -776,11 +776,10 @@ CONFIG_CRYPTO_PCBC=3Dm CONFIG_CRYPTO_AEGIS128=3Dm CONFIG_CRYPTO_GCM=3Dy CONFIG_CRYPTO_SEQIV=3Dy CONFIG_CRYPTO_MD4=3Dm CONFIG_CRYPTO_MD5=3Dy -CONFIG_CRYPTO_MICHAEL_MIC=3Dm CONFIG_CRYPTO_RMD160=3Dm CONFIG_CRYPTO_SHA3=3Dm CONFIG_CRYPTO_SM3_GENERIC=3Dm CONFIG_CRYPTO_WP512=3Dm CONFIG_CRYPTO_XCBC=3Dm diff --git a/arch/sh/configs/sh2007_defconfig b/arch/sh/configs/sh2007_defc= onfig index e32d2ce72699f..5d90804994857 100644 --- a/arch/sh/configs/sh2007_defconfig +++ b/arch/sh/configs/sh2007_defconfig @@ -168,11 +168,10 @@ CONFIG_CRYPTO_LRW=3Dy CONFIG_CRYPTO_PCBC=3Dy CONFIG_CRYPTO_XTS=3Dy CONFIG_CRYPTO_HMAC=3Dy CONFIG_CRYPTO_XCBC=3Dy CONFIG_CRYPTO_MD4=3Dy -CONFIG_CRYPTO_MICHAEL_MIC=3Dy CONFIG_CRYPTO_SHA1=3Dy CONFIG_CRYPTO_SHA256=3Dy CONFIG_CRYPTO_SHA512=3Dy CONFIG_CRYPTO_TGR192=3Dy CONFIG_CRYPTO_WP512=3Dy diff --git a/arch/sh/configs/titan_defconfig b/arch/sh/configs/titan_defcon= fig index 896e980d04e14..00863ecb228e8 100644 --- a/arch/sh/configs/titan_defconfig +++ b/arch/sh/configs/titan_defconfig @@ -244,11 +244,10 @@ CONFIG_MAGIC_SYSRQ=3Dy CONFIG_DEBUG_KERNEL=3Dy # CONFIG_DEBUG_BUGVERBOSE is not set CONFIG_CRYPTO_NULL=3Dm CONFIG_CRYPTO_ECB=3Dy CONFIG_CRYPTO_MD4=3Dm -CONFIG_CRYPTO_MICHAEL_MIC=3Dy CONFIG_CRYPTO_SHA256=3Dm CONFIG_CRYPTO_SHA512=3Dm CONFIG_CRYPTO_TGR192=3Dm CONFIG_CRYPTO_WP512=3Dm CONFIG_CRYPTO_AES=3Dy diff --git a/arch/sh/configs/ul2_defconfig b/arch/sh/configs/ul2_defconfig index 0d1c858754dbb..00a37944b043c 100644 --- a/arch/sh/configs/ul2_defconfig +++ b/arch/sh/configs/ul2_defconfig @@ -77,6 +77,5 @@ CONFIG_ROOT_NFS=3Dy CONFIG_NFSD=3Dy CONFIG_NLS_CODEPAGE_437=3Dy CONFIG_NLS_CODEPAGE_932=3Dy CONFIG_NLS_ISO8859_1=3Dy # CONFIG_ENABLE_MUST_CHECK is not set -CONFIG_CRYPTO_MICHAEL_MIC=3Dy diff --git a/arch/sparc/configs/sparc32_defconfig b/arch/sparc/configs/spar= c32_defconfig index e021ecfb5a771..48d834acafb4a 100644 --- a/arch/sparc/configs/sparc32_defconfig +++ b/arch/sparc/configs/sparc32_defconfig @@ -80,11 +80,10 @@ CONFIG_KGDB=3Dy CONFIG_KGDB_TESTS=3Dy CONFIG_CRYPTO_NULL=3Dm CONFIG_CRYPTO_ECB=3Dm CONFIG_CRYPTO_PCBC=3Dm CONFIG_CRYPTO_MD4=3Dy -CONFIG_CRYPTO_MICHAEL_MIC=3Dm CONFIG_CRYPTO_SHA256=3Dm CONFIG_CRYPTO_SHA512=3Dm CONFIG_CRYPTO_AES=3Dm CONFIG_CRYPTO_ARC4=3Dm CONFIG_CRYPTO_BLOWFISH=3Dm diff --git a/arch/sparc/configs/sparc64_defconfig b/arch/sparc/configs/spar= c64_defconfig index 9f3f41246ae6d..632081a262bae 100644 --- a/arch/sparc/configs/sparc64_defconfig +++ b/arch/sparc/configs/sparc64_defconfig @@ -208,11 +208,10 @@ CONFIG_CRYPTO_BENCHMARK=3Dm CONFIG_CRYPTO_LRW=3Dm CONFIG_CRYPTO_PCBC=3Dm CONFIG_CRYPTO_XTS=3Dm CONFIG_CRYPTO_XCBC=3Dy CONFIG_CRYPTO_MD4=3Dy -CONFIG_CRYPTO_MICHAEL_MIC=3Dm CONFIG_CRYPTO_SHA256=3Dm CONFIG_CRYPTO_SHA512=3Dm CONFIG_CRYPTO_TGR192=3Dm CONFIG_CRYPTO_WP512=3Dm CONFIG_CRYPTO_AES=3Dm diff --git a/crypto/Kconfig b/crypto/Kconfig index b4bb85e8e2261..769aef52a7851 100644 --- a/crypto/Kconfig +++ b/crypto/Kconfig @@ -914,22 +914,10 @@ config CRYPTO_MD5 select CRYPTO_HASH select CRYPTO_LIB_MD5 help MD5 message digest algorithm (RFC1321), including HMAC support. =20 -config CRYPTO_MICHAEL_MIC - tristate "Michael MIC" - select CRYPTO_HASH - help - Michael MIC (Message Integrity Code) (IEEE 802.11i) - - Defined by the IEEE 802.11i TKIP (Temporal Key Integrity Protocol), - known as WPA (Wif-Fi Protected Access). - - This algorithm is required for TKIP, but it should not be used for - other purposes because of the weakness of the algorithm. - config CRYPTO_RMD160 tristate "RIPEMD-160" select CRYPTO_HASH help RIPEMD-160 hash function (ISO/IEC 10118-3) diff --git a/crypto/Makefile b/crypto/Makefile index 04e269117589a..aa35ba03222f7 100644 --- a/crypto/Makefile +++ b/crypto/Makefile @@ -148,11 +148,10 @@ obj-$(CONFIG_CRYPTO_ANUBIS) +=3D anubis.o obj-$(CONFIG_CRYPTO_SEED) +=3D seed.o obj-$(CONFIG_CRYPTO_ARIA) +=3D aria_generic.o obj-$(CONFIG_CRYPTO_CHACHA20) +=3D chacha.o CFLAGS_chacha.o +=3D -DARCH=3D$(ARCH) obj-$(CONFIG_CRYPTO_DEFLATE) +=3D deflate.o -obj-$(CONFIG_CRYPTO_MICHAEL_MIC) +=3D michael_mic.o obj-$(CONFIG_CRYPTO_CRC32C) +=3D crc32c-cryptoapi.o crc32c-cryptoapi-y :=3D crc32c.o obj-$(CONFIG_CRYPTO_CRC32) +=3D crc32-cryptoapi.o crc32-cryptoapi-y :=3D crc32.o obj-$(CONFIG_CRYPTO_AUTHENC) +=3D authenc.o authencesn.o diff --git a/crypto/michael_mic.c b/crypto/michael_mic.c deleted file mode 100644 index 69ad35f524d7b..0000000000000 --- a/crypto/michael_mic.c +++ /dev/null @@ -1,176 +0,0 @@ -// SPDX-License-Identifier: GPL-2.0-only -/* - * Cryptographic API - * - * Michael MIC (IEEE 802.11i/TKIP) keyed digest - * - * Copyright (c) 2004 Jouni Malinen - */ -#include -#include -#include -#include -#include -#include - - -struct michael_mic_ctx { - u32 l, r; -}; - -struct michael_mic_desc_ctx { - __le32 pending; - size_t pending_len; - - u32 l, r; -}; - -static inline u32 xswap(u32 val) -{ - return ((val & 0x00ff00ff) << 8) | ((val & 0xff00ff00) >> 8); -} - - -#define michael_block(l, r) \ -do { \ - r ^=3D rol32(l, 17); \ - l +=3D r; \ - r ^=3D xswap(l); \ - l +=3D r; \ - r ^=3D rol32(l, 3); \ - l +=3D r; \ - r ^=3D ror32(l, 2); \ - l +=3D r; \ -} while (0) - - -static int michael_init(struct shash_desc *desc) -{ - struct michael_mic_desc_ctx *mctx =3D shash_desc_ctx(desc); - struct michael_mic_ctx *ctx =3D crypto_shash_ctx(desc->tfm); - mctx->pending_len =3D 0; - mctx->l =3D ctx->l; - mctx->r =3D ctx->r; - - return 0; -} - - -static int michael_update(struct shash_desc *desc, const u8 *data, - unsigned int len) -{ - struct michael_mic_desc_ctx *mctx =3D shash_desc_ctx(desc); - - if (mctx->pending_len) { - int flen =3D 4 - mctx->pending_len; - if (flen > len) - flen =3D len; - memcpy((u8 *)&mctx->pending + mctx->pending_len, data, flen); - mctx->pending_len +=3D flen; - data +=3D flen; - len -=3D flen; - - if (mctx->pending_len < 4) - return 0; - - mctx->l ^=3D le32_to_cpu(mctx->pending); - michael_block(mctx->l, mctx->r); - mctx->pending_len =3D 0; - } - - while (len >=3D 4) { - mctx->l ^=3D get_unaligned_le32(data); - michael_block(mctx->l, mctx->r); - data +=3D 4; - len -=3D 4; - } - - if (len > 0) { - mctx->pending_len =3D len; - memcpy(&mctx->pending, data, len); - } - - return 0; -} - - -static int michael_final(struct shash_desc *desc, u8 *out) -{ - struct michael_mic_desc_ctx *mctx =3D shash_desc_ctx(desc); - u8 *data =3D (u8 *)&mctx->pending; - - /* Last block and padding (0x5a, 4..7 x 0) */ - switch (mctx->pending_len) { - case 0: - mctx->l ^=3D 0x5a; - break; - case 1: - mctx->l ^=3D data[0] | 0x5a00; - break; - case 2: - mctx->l ^=3D data[0] | (data[1] << 8) | 0x5a0000; - break; - case 3: - mctx->l ^=3D data[0] | (data[1] << 8) | (data[2] << 16) | - 0x5a000000; - break; - } - michael_block(mctx->l, mctx->r); - /* l ^=3D 0; */ - michael_block(mctx->l, mctx->r); - - put_unaligned_le32(mctx->l, out); - put_unaligned_le32(mctx->r, out + 4); - - return 0; -} - - -static int michael_setkey(struct crypto_shash *tfm, const u8 *key, - unsigned int keylen) -{ - struct michael_mic_ctx *mctx =3D crypto_shash_ctx(tfm); - - if (keylen !=3D 8) - return -EINVAL; - - mctx->l =3D get_unaligned_le32(key); - mctx->r =3D get_unaligned_le32(key + 4); - return 0; -} - -static struct shash_alg alg =3D { - .digestsize =3D 8, - .setkey =3D michael_setkey, - .init =3D michael_init, - .update =3D michael_update, - .final =3D michael_final, - .descsize =3D sizeof(struct michael_mic_desc_ctx), - .base =3D { - .cra_name =3D "michael_mic", - .cra_driver_name =3D "michael_mic-generic", - .cra_blocksize =3D 8, - .cra_ctxsize =3D sizeof(struct michael_mic_ctx), - .cra_module =3D THIS_MODULE, - } -}; - -static int __init michael_mic_init(void) -{ - return crypto_register_shash(&alg); -} - - -static void __exit michael_mic_exit(void) -{ - crypto_unregister_shash(&alg); -} - - -module_init(michael_mic_init); -module_exit(michael_mic_exit); - -MODULE_LICENSE("GPL v2"); -MODULE_DESCRIPTION("Michael MIC"); -MODULE_AUTHOR("Jouni Malinen "); -MODULE_ALIAS_CRYPTO("michael_mic"); diff --git a/crypto/tcrypt.c b/crypto/tcrypt.c index aded375461374..24f0ccc767961 100644 --- a/crypto/tcrypt.c +++ b/crypto/tcrypt.c @@ -1555,14 +1555,10 @@ static int do_test(const char *alg, u32 type, u32 m= ask, int m, u32 num_mb) =20 case 16: ret =3D min(ret, tcrypt_test("ecb(arc4)")); break; =20 - case 17: - ret =3D min(ret, tcrypt_test("michael_mic")); - break; - case 18: ret =3D min(ret, tcrypt_test("crc32c")); break; =20 case 19: diff --git a/crypto/testmgr.c b/crypto/testmgr.c index 4985411dedaec..d5c38683bf46f 100644 --- a/crypto/testmgr.c +++ b/crypto/testmgr.c @@ -5195,16 +5195,10 @@ static const struct alg_test_desc alg_test_descs[] = =3D { .generic_driver =3D "md5-lib", .test =3D alg_test_hash, .suite =3D { .hash =3D __VECS(md5_tv_template) } - }, { - .alg =3D "michael_mic", - .test =3D alg_test_hash, - .suite =3D { - .hash =3D __VECS(michael_mic_tv_template) - } }, { .alg =3D "p1363(ecdsa-nist-p192)", .test =3D alg_test_null, }, { .alg =3D "p1363(ecdsa-nist-p256)", diff --git a/crypto/testmgr.h b/crypto/testmgr.h index 1c69c11c0cdb4..11911bff5f793 100644 --- a/crypto/testmgr.h +++ b/crypto/testmgr.h @@ -32806,60 +32806,10 @@ static const struct comp_testvec lzorle_decomp_tv= _template[] =3D { .output =3D "Join us now and share the software " "Join us now and share the software ", }, }; =20 -/* - * Michael MIC test vectors from IEEE 802.11i - */ -#define MICHAEL_MIC_TEST_VECTORS 6 - -static const struct hash_testvec michael_mic_tv_template[] =3D { - { - .key =3D "\x00\x00\x00\x00\x00\x00\x00\x00", - .ksize =3D 8, - .plaintext =3D zeroed_string, - .psize =3D 0, - .digest =3D "\x82\x92\x5c\x1c\xa1\xd1\x30\xb8", - }, - { - .key =3D "\x82\x92\x5c\x1c\xa1\xd1\x30\xb8", - .ksize =3D 8, - .plaintext =3D "M", - .psize =3D 1, - .digest =3D "\x43\x47\x21\xca\x40\x63\x9b\x3f", - }, - { - .key =3D "\x43\x47\x21\xca\x40\x63\x9b\x3f", - .ksize =3D 8, - .plaintext =3D "Mi", - .psize =3D 2, - .digest =3D "\xe8\xf9\xbe\xca\xe9\x7e\x5d\x29", - }, - { - .key =3D "\xe8\xf9\xbe\xca\xe9\x7e\x5d\x29", - .ksize =3D 8, - .plaintext =3D "Mic", - .psize =3D 3, - .digest =3D "\x90\x03\x8f\xc6\xcf\x13\xc1\xdb", - }, - { - .key =3D "\x90\x03\x8f\xc6\xcf\x13\xc1\xdb", - .ksize =3D 8, - .plaintext =3D "Mich", - .psize =3D 4, - .digest =3D "\xd5\x5e\x10\x05\x10\x12\x89\x86", - }, - { - .key =3D "\xd5\x5e\x10\x05\x10\x12\x89\x86", - .ksize =3D 8, - .plaintext =3D "Michael", - .psize =3D 7, - .digest =3D "\x0a\x94\x2b\x12\x4e\xca\xa5\x46", - } -}; - /* * CRC32 test vectors */ static const struct hash_testvec crc32_tv_template[] =3D { { --=20 2.53.0