aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorIvo van Doorn <ivdoorn@gmail.com>2008-04-17 15:11:18 -0400
committerJohn W. Linville <linville@tuxdriver.com>2008-05-07 15:02:11 -0400
commitc6adbd2158fee972adcc6232de5e2ef375f1f782 (patch)
tree5bd5392cddcc6ebdb044faa2c06f3e7d71244148
parent988c0f723d0b1abb399e6e71d8bf3f8bf1949a70 (diff)
mac80211: Add IEEE80211_KEY_FLAG_PAIRWISE
This adds a new flag to the ieee80211_key_conf structure. This flag will inform the driver the key is pairwise rather then a shared key. This is important for drivers who support both types of keys, and need to be informed which type of key this is. Alternative would be drivers checking the address argument of set_key(), but it will be safer when mac80211 is more explicit. Signed-off-by: Ivo van Doorn <IvDoorn@gmail.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
-rw-r--r--include/net/mac80211.h3
-rw-r--r--net/mac80211/key.c7
2 files changed, 10 insertions, 0 deletions
diff --git a/include/net/mac80211.h b/include/net/mac80211.h
index 27ef9f761ac5..740c11ca066c 100644
--- a/include/net/mac80211.h
+++ b/include/net/mac80211.h
@@ -621,11 +621,14 @@ enum ieee80211_key_alg {
621 * @IEEE80211_KEY_FLAG_GENERATE_MMIC: This flag should be set by 621 * @IEEE80211_KEY_FLAG_GENERATE_MMIC: This flag should be set by
622 * the driver for a TKIP key if it requires Michael MIC 622 * the driver for a TKIP key if it requires Michael MIC
623 * generation in software. 623 * generation in software.
624 * @IEEE80211_KEY_FLAG_PAIRWISE: Set by mac80211, this flag indicates
625 * that the key is pairwise rather then a shared key.
624 */ 626 */
625enum ieee80211_key_flags { 627enum ieee80211_key_flags {
626 IEEE80211_KEY_FLAG_WMM_STA = 1<<0, 628 IEEE80211_KEY_FLAG_WMM_STA = 1<<0,
627 IEEE80211_KEY_FLAG_GENERATE_IV = 1<<1, 629 IEEE80211_KEY_FLAG_GENERATE_IV = 1<<1,
628 IEEE80211_KEY_FLAG_GENERATE_MMIC= 1<<2, 630 IEEE80211_KEY_FLAG_GENERATE_MMIC= 1<<2,
631 IEEE80211_KEY_FLAG_PAIRWISE = 1<<3,
629}; 632};
630 633
631/** 634/**
diff --git a/net/mac80211/key.c b/net/mac80211/key.c
index 150d66dbda9d..88b211af7c1f 100644
--- a/net/mac80211/key.c
+++ b/net/mac80211/key.c
@@ -323,6 +323,13 @@ void ieee80211_key_link(struct ieee80211_key *key,
323 */ 323 */
324 if (sta->flags & WLAN_STA_WME) 324 if (sta->flags & WLAN_STA_WME)
325 key->conf.flags |= IEEE80211_KEY_FLAG_WMM_STA; 325 key->conf.flags |= IEEE80211_KEY_FLAG_WMM_STA;
326
327 /*
328 * This key is for a specific sta interface,
329 * inform the driver that it should try to store
330 * this key as pairwise key.
331 */
332 key->conf.flags |= IEEE80211_KEY_FLAG_PAIRWISE;
326 } else { 333 } else {
327 if (sdata->vif.type == IEEE80211_IF_TYPE_STA) { 334 if (sdata->vif.type == IEEE80211_IF_TYPE_STA) {
328 struct sta_info *ap; 335 struct sta_info *ap;