Commit 08b16d1b authored by Yedidya Benshimol's avatar Yedidya Benshimol Committed by Johannes Berg
Browse files

wifi: iwlwifi: mvm: Handle BIGTK cipher in kek_kck cmd



The BIGTK cipher field was added to the kek_kck_material_cmd
but wasn't assigned. Fix that by differentiating between the
IGTK/BIGTK keys and assign the ciphers fields accordingly.

Signed-off-by: default avatarYedidya Benshimol <yedidya.ben.shimol@intel.com>
Signed-off-by: default avatarMiri Korenblit <miriam.rachel.korenblit@intel.com>
Link: https://msgid.link/20240513132416.7fd0b22b7267.Ie9b581652b74bd7806980364d59e1b2e78e682c0@changeid


Signed-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
parent cc3ba78f
Loading
Loading
Loading
Loading
+11 −2
Original line number Diff line number Diff line
@@ -595,6 +595,12 @@ static void iwl_mvm_wowlan_gtk_type_iter(struct ieee80211_hw *hw,
					 void *_data)
{
	struct wowlan_key_gtk_type_iter *data = _data;
	__le32 *cipher = NULL;

	if (key->keyidx == 4 || key->keyidx == 5)
		cipher = &data->kek_kck_cmd->igtk_cipher;
	if (key->keyidx == 6 || key->keyidx == 7)
		cipher = &data->kek_kck_cmd->bigtk_cipher;

	switch (key->cipher) {
	default:
@@ -606,10 +612,13 @@ static void iwl_mvm_wowlan_gtk_type_iter(struct ieee80211_hw *hw,
		return;
	case WLAN_CIPHER_SUITE_BIP_GMAC_256:
	case WLAN_CIPHER_SUITE_BIP_GMAC_128:
		data->kek_kck_cmd->igtk_cipher = cpu_to_le32(STA_KEY_FLG_GCMP);
		if (cipher)
			*cipher = cpu_to_le32(STA_KEY_FLG_GCMP);
		return;
	case WLAN_CIPHER_SUITE_AES_CMAC:
		data->kek_kck_cmd->igtk_cipher = cpu_to_le32(STA_KEY_FLG_CCM);
	case WLAN_CIPHER_SUITE_BIP_CMAC_256:
		if (cipher)
			*cipher = cpu_to_le32(STA_KEY_FLG_CCM);
		return;
	case WLAN_CIPHER_SUITE_CCMP:
		if (!sta)