diff options
author | Johannes Berg <johannes.berg@intel.com> | 2011-07-13 13:50:34 -0400 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2011-07-15 13:38:32 -0400 |
commit | 8bca5d815311f53ada13b62f5e590df40fef317e (patch) | |
tree | 7cd6d9d7804c0aa86e1bf4226c4a8196acc3a5c7 /net/mac80211/tkip.c | |
parent | 66760eac005d569393bac34136bcbb8af55d8a5a (diff) |
mac80211: allow driver access to TKIP RX P1K
When the driver wants to pre-program the TKIP
RX phase 1 key, it needs to be able to obtain
it for the peer's TA. Add API to allow it to
generate it.
The generation uses a dummy on-stack context
since it doesn't know the RX queue.
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'net/mac80211/tkip.c')
-rw-r--r-- | net/mac80211/tkip.c | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/net/mac80211/tkip.c b/net/mac80211/tkip.c index cc79e697cdb2..f49d00a4c7fd 100644 --- a/net/mac80211/tkip.c +++ b/net/mac80211/tkip.c | |||
@@ -185,6 +185,17 @@ void ieee80211_get_tkip_p1k_iv(struct ieee80211_key_conf *keyconf, | |||
185 | } | 185 | } |
186 | EXPORT_SYMBOL(ieee80211_get_tkip_p1k_iv); | 186 | EXPORT_SYMBOL(ieee80211_get_tkip_p1k_iv); |
187 | 187 | ||
188 | void ieee80211_get_tkip_rx_p1k(struct ieee80211_key_conf *keyconf, | ||
189 | const u8 *ta, u32 iv32, u16 *p1k) | ||
190 | { | ||
191 | const u8 *tk = &keyconf->key[NL80211_TKIP_DATA_OFFSET_ENCR_KEY]; | ||
192 | struct tkip_ctx ctx; | ||
193 | |||
194 | tkip_mixing_phase1(tk, &ctx, ta, iv32); | ||
195 | memcpy(p1k, ctx.p1k, sizeof(ctx.p1k)); | ||
196 | } | ||
197 | EXPORT_SYMBOL(ieee80211_get_tkip_rx_p1k); | ||
198 | |||
188 | void ieee80211_get_tkip_p2k(struct ieee80211_key_conf *keyconf, | 199 | void ieee80211_get_tkip_p2k(struct ieee80211_key_conf *keyconf, |
189 | struct sk_buff *skb, u8 *p2k) | 200 | struct sk_buff *skb, u8 *p2k) |
190 | { | 201 | { |