summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJohannes Berg <johannes.berg@intel.com>2010-08-10 09:46:39 +0200
committerJohn W. Linville <linville@tuxdriver.com>2010-08-16 16:45:20 -0400
commit60ae0f20058d19ada94093dc3ef7ae0737597fba (patch)
tree2428c7561d8f7927bb79ddc96f0d448070873454
parent97359d1235eaf634fe706c9faa6e40181cc95fb8 (diff)
downloadlinux-60ae0f20058d19ada94093dc3ef7ae0737597fba.tar.gz
linux-60ae0f20058d19ada94093dc3ef7ae0737597fba.tar.bz2
linux-60ae0f20058d19ada94093dc3ef7ae0737597fba.zip
mac80211: move key tfm setup
There's no need to keep separate if statements for setting up the CCMP/AES-CMAC tfm structs; move that into the existing switch statement. Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
-rw-r--r--net/mac80211/key.c26
1 files changed, 10 insertions, 16 deletions
diff --git a/net/mac80211/key.c b/net/mac80211/key.c
index 3203d1d3cd38..9c27c53cfae5 100644
--- a/net/mac80211/key.c
+++ b/net/mac80211/key.c
@@ -277,19 +277,6 @@ struct ieee80211_key *ieee80211_key_alloc(u32 cipher, int idx, size_t key_len,
key->u.ccmp.rx_pn[i][j] =
seq[CCMP_PN_LEN - j - 1];
}
- break;
- case WLAN_CIPHER_SUITE_AES_CMAC:
- key->conf.iv_len = 0;
- key->conf.icv_len = sizeof(struct ieee80211_mmie);
- if (seq)
- for (j = 0; j < 6; j++)
- key->u.aes_cmac.rx_pn[j] = seq[6 - j - 1];
- break;
- }
- memcpy(key->conf.key, key_data, key_len);
- INIT_LIST_HEAD(&key->list);
-
- if (cipher == WLAN_CIPHER_SUITE_CCMP) {
/*
* Initialize AES key state here as an optimization so that
* it does not need to be initialized for every packet.
@@ -300,9 +287,13 @@ struct ieee80211_key *ieee80211_key_alloc(u32 cipher, int idx, size_t key_len,
kfree(key);
key = ERR_PTR(err);
}
- }
-
- if (cipher == WLAN_CIPHER_SUITE_AES_CMAC) {
+ break;
+ case WLAN_CIPHER_SUITE_AES_CMAC:
+ key->conf.iv_len = 0;
+ key->conf.icv_len = sizeof(struct ieee80211_mmie);
+ if (seq)
+ for (j = 0; j < 6; j++)
+ key->u.aes_cmac.rx_pn[j] = seq[6 - j - 1];
/*
* Initialize AES key state here as an optimization so that
* it does not need to be initialized for every packet.
@@ -314,7 +305,10 @@ struct ieee80211_key *ieee80211_key_alloc(u32 cipher, int idx, size_t key_len,
kfree(key);
key = ERR_PTR(err);
}
+ break;
}
+ memcpy(key->conf.key, key_data, key_len);
+ INIT_LIST_HEAD(&key->list);
return key;
}