Lines Matching refs:local
28 int ieee80211_wep_init(struct ieee80211_local *local) in ieee80211_wep_init() argument
31 get_random_bytes(&local->wep_iv, IEEE80211_WEP_IV_LEN); in ieee80211_wep_init()
33 local->wep_tx_tfm = crypto_alloc_cipher("arc4", 0, CRYPTO_ALG_ASYNC); in ieee80211_wep_init()
34 if (IS_ERR(local->wep_tx_tfm)) { in ieee80211_wep_init()
35 local->wep_rx_tfm = ERR_PTR(-EINVAL); in ieee80211_wep_init()
36 return PTR_ERR(local->wep_tx_tfm); in ieee80211_wep_init()
39 local->wep_rx_tfm = crypto_alloc_cipher("arc4", 0, CRYPTO_ALG_ASYNC); in ieee80211_wep_init()
40 if (IS_ERR(local->wep_rx_tfm)) { in ieee80211_wep_init()
41 crypto_free_cipher(local->wep_tx_tfm); in ieee80211_wep_init()
42 local->wep_tx_tfm = ERR_PTR(-EINVAL); in ieee80211_wep_init()
43 return PTR_ERR(local->wep_rx_tfm); in ieee80211_wep_init()
49 void ieee80211_wep_free(struct ieee80211_local *local) in ieee80211_wep_free() argument
51 if (!IS_ERR(local->wep_tx_tfm)) in ieee80211_wep_free()
52 crypto_free_cipher(local->wep_tx_tfm); in ieee80211_wep_free()
53 if (!IS_ERR(local->wep_rx_tfm)) in ieee80211_wep_free()
54 crypto_free_cipher(local->wep_rx_tfm); in ieee80211_wep_free()
73 static void ieee80211_wep_get_iv(struct ieee80211_local *local, in ieee80211_wep_get_iv() argument
76 local->wep_iv++; in ieee80211_wep_get_iv()
77 if (ieee80211_wep_weak_iv(local->wep_iv, keylen)) in ieee80211_wep_get_iv()
78 local->wep_iv += 0x0100; in ieee80211_wep_get_iv()
83 *iv++ = (local->wep_iv >> 16) & 0xff; in ieee80211_wep_get_iv()
84 *iv++ = (local->wep_iv >> 8) & 0xff; in ieee80211_wep_get_iv()
85 *iv++ = local->wep_iv & 0xff; in ieee80211_wep_get_iv()
90 static u8 *ieee80211_wep_add_iv(struct ieee80211_local *local, in ieee80211_wep_add_iv() argument
113 ieee80211_wep_get_iv(local, keylen, keyidx, newhdr + hdrlen); in ieee80211_wep_add_iv()
118 static void ieee80211_wep_remove_iv(struct ieee80211_local *local, in ieee80211_wep_remove_iv() argument
161 int ieee80211_wep_encrypt(struct ieee80211_local *local, in ieee80211_wep_encrypt() argument
172 iv = ieee80211_wep_add_iv(local, skb, keylen, keyidx); in ieee80211_wep_encrypt()
187 return ieee80211_wep_encrypt_data(local->wep_tx_tfm, rc4key, keylen + 3, in ieee80211_wep_encrypt()
225 static int ieee80211_wep_decrypt(struct ieee80211_local *local, in ieee80211_wep_decrypt() argument
259 if (ieee80211_wep_decrypt_data(local->wep_rx_tfm, rc4key, klen, in ieee80211_wep_decrypt()
288 if (ieee80211_wep_decrypt(rx->local, rx->skb, rx->key)) in ieee80211_crypto_wep_decrypt()
294 ieee80211_wep_remove_iv(rx->local, rx->skb, rx->key); in ieee80211_crypto_wep_decrypt()
309 if (ieee80211_wep_encrypt(tx->local, skb, tx->key->conf.key, in wep_encrypt_skb()
315 if (!ieee80211_wep_add_iv(tx->local, skb, in wep_encrypt_skb()
333 I802_DEBUG_INC(tx->local->tx_handlers_drop_wep); in ieee80211_crypto_wep_encrypt()