ecb(arc4) is getting replaced by arc4 which is a blkcipher by itself. Signed-off-by: Sebastian Andrzej Siewior <sebastian@xxxxxxxxxxxxx> --- net/mac80211/Kconfig | 3 +-- net/mac80211/wep.c | 11 +++++++---- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/net/mac80211/Kconfig b/net/mac80211/Kconfig index a10d508..d14fe06 100644 --- a/net/mac80211/Kconfig +++ b/net/mac80211/Kconfig @@ -2,8 +2,7 @@ config MAC80211 tristate "Generic IEEE 802.11 Networking Stack (mac80211)" depends on CFG80211 select CRYPTO - select CRYPTO_ECB - select CRYPTO_ARC4 + select CRYPTO_ARC4BLK select CRYPTO_AES select CRC32 ---help--- diff --git a/net/mac80211/wep.c b/net/mac80211/wep.c index 247123f..4314b50 100644 --- a/net/mac80211/wep.c +++ b/net/mac80211/wep.c @@ -17,6 +17,7 @@ #include <linux/err.h> #include <linux/mm.h> #include <linux/scatterlist.h> +#include <crypto/arc4.h> #include <asm/unaligned.h> #include <net/mac80211.h> @@ -29,12 +30,12 @@ int ieee80211_wep_init(struct ieee80211_local *local) /* start WEP IV from a random value */ get_random_bytes(&local->wep_iv, WEP_IV_LEN); - local->wep_tx_tfm = crypto_alloc_blkcipher("ecb(arc4)", 0, + local->wep_tx_tfm = crypto_alloc_blkcipher("arc4", 0, CRYPTO_ALG_ASYNC); if (IS_ERR(local->wep_tx_tfm)) return PTR_ERR(local->wep_tx_tfm); - local->wep_rx_tfm = crypto_alloc_blkcipher("ecb(arc4)", 0, + local->wep_rx_tfm = crypto_alloc_blkcipher("arc4", 0, CRYPTO_ALG_ASYNC); if (IS_ERR(local->wep_rx_tfm)) { crypto_free_blkcipher(local->wep_tx_tfm); @@ -125,13 +126,14 @@ void ieee80211_wep_encrypt_data(struct crypto_blkcipher *tfm, u8 *rc4key, size_t klen, u8 *data, size_t data_len) { struct blkcipher_desc desc = { .tfm = tfm }; + struct arc4_iv *iv = crypto_blkcipher_crt(tfm)->iv; struct scatterlist sg; __le32 icv; icv = cpu_to_le32(~crc32_le(~0, data, data_len)); put_unaligned(icv, (__le32 *)(data + data_len)); - crypto_blkcipher_setkey(tfm, rc4key, klen); + arc4_setup_iv(iv, rc4key, klen); sg_init_one(&sg, data, data_len + WEP_ICV_LEN); crypto_blkcipher_encrypt(&desc, &sg, &sg, sg.length); } @@ -181,10 +183,11 @@ int ieee80211_wep_decrypt_data(struct crypto_blkcipher *tfm, u8 *rc4key, size_t klen, u8 *data, size_t data_len) { struct blkcipher_desc desc = { .tfm = tfm }; + struct arc4_iv *iv = crypto_blkcipher_crt(tfm)->iv; struct scatterlist sg; __le32 crc; - crypto_blkcipher_setkey(tfm, rc4key, klen); + arc4_setup_iv(iv, rc4key, klen); sg_init_one(&sg, data, data_len + WEP_ICV_LEN); crypto_blkcipher_decrypt(&desc, &sg, &sg, sg.length); -- 1.6.6 -- To unsubscribe from this list: send the line "unsubscribe linux-wireless" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html