4f0d18e26f
Currently, we run through all three crypto algorithms for each received frame even though we have previously determined which key we have and as such already know which algorithm will be used. Change it to invoke only the needed function. Also move the WEP decrypt handler to wep.c so that fewer functions need to be non-static. Signed-off-by: Johannes Berg <johannes@sipsolutions.net> Signed-off-by: John W. Linville <linville@tuxdriver.com>
39 lines
1.4 KiB
C
39 lines
1.4 KiB
C
/*
|
|
* Software WEP encryption implementation
|
|
* Copyright 2002, Jouni Malinen <jkmaline@cc.hut.fi>
|
|
* Copyright 2003, Instant802 Networks, Inc.
|
|
*
|
|
* This program is free software; you can redistribute it and/or modify
|
|
* it under the terms of the GNU General Public License version 2 as
|
|
* published by the Free Software Foundation.
|
|
*/
|
|
|
|
#ifndef WEP_H
|
|
#define WEP_H
|
|
|
|
#include <linux/skbuff.h>
|
|
#include <linux/types.h>
|
|
#include "ieee80211_i.h"
|
|
#include "ieee80211_key.h"
|
|
|
|
int ieee80211_wep_init(struct ieee80211_local *local);
|
|
void ieee80211_wep_free(struct ieee80211_local *local);
|
|
u8 * ieee80211_wep_add_iv(struct ieee80211_local *local,
|
|
struct sk_buff *skb,
|
|
struct ieee80211_key *key);
|
|
void ieee80211_wep_encrypt_data(struct crypto_blkcipher *tfm, u8 *rc4key,
|
|
size_t klen, u8 *data, size_t data_len);
|
|
int ieee80211_wep_decrypt_data(struct crypto_blkcipher *tfm, u8 *rc4key,
|
|
size_t klen, u8 *data, size_t data_len);
|
|
int ieee80211_wep_encrypt(struct ieee80211_local *local, struct sk_buff *skb,
|
|
struct ieee80211_key *key);
|
|
int ieee80211_wep_decrypt(struct ieee80211_local *local, struct sk_buff *skb,
|
|
struct ieee80211_key *key);
|
|
int ieee80211_wep_get_keyidx(struct sk_buff *skb);
|
|
u8 * ieee80211_wep_is_weak_iv(struct sk_buff *skb, struct ieee80211_key *key);
|
|
|
|
ieee80211_txrx_result
|
|
ieee80211_crypto_wep_decrypt(struct ieee80211_txrx_data *rx);
|
|
|
|
#endif /* WEP_H */
|