summaryrefslogtreecommitdiffstats
path: root/package/madwifi
diff options
context:
space:
mode:
authornbd <nbd@3c298f89-4303-0410-b956-a3cf2f4a3e73>2006-06-12 20:42:11 +0000
committernbd <nbd@3c298f89-4303-0410-b956-a3cf2f4a3e73>2006-06-12 20:42:11 +0000
commit6153720350c135f4c07c93181bac0e6e55ecda23 (patch)
tree2f55f0d34c1a0f7058e6675f91864ff4f3a2fd4b /package/madwifi
parent27828bb0a4d584e1869ce8aadbe62131479f7f97 (diff)
madwifi: remove the hard dependency on kernel aes support - only needed for software crypto
git-svn-id: svn://svn.openwrt.org/openwrt/branches/buildroot-ng/openwrt@3934 3c298f89-4303-0410-b956-a3cf2f4a3e73
Diffstat (limited to 'package/madwifi')
-rw-r--r--package/madwifi/patches/105-no_forced_aes_dep.patch39
1 files changed, 39 insertions, 0 deletions
diff --git a/package/madwifi/patches/105-no_forced_aes_dep.patch b/package/madwifi/patches/105-no_forced_aes_dep.patch
new file mode 100644
index 000000000..fa439c6e9
--- /dev/null
+++ b/package/madwifi/patches/105-no_forced_aes_dep.patch
@@ -0,0 +1,39 @@
+diff -urN madwifi.old/net80211/ieee80211_crypto_ccmp.c madwifi.dev/net80211/ieee80211_crypto_ccmp.c
+--- madwifi.old/net80211/ieee80211_crypto_ccmp.c 2006-02-06 21:20:57.000000000 +0100
++++ madwifi.dev/net80211/ieee80211_crypto_ccmp.c 2006-06-12 22:29:23.000000000 +0200
+@@ -105,12 +105,6 @@
+
+ ctx->cc_vap = vap;
+ ctx->cc_ic = vap->iv_ic;
+- ctx->cc_tfm = crypto_alloc_tfm("aes", 0);
+- if (ctx->cc_tfm == NULL) {
+- FREE(ctx, M_DEVBUF);
+- _MOD_DEC_USE(THIS_MODULE);
+- return NULL;
+- }
+ return ctx;
+ }
+
+@@ -137,8 +131,21 @@
+ __func__, k->wk_keylen, 128 / NBBY);
+ return 0;
+ }
+- if (k->wk_flags & IEEE80211_KEY_SWCRYPT)
++
++ if (k->wk_flags & IEEE80211_KEY_SWCRYPT) {
++ if (ctx->cc_tfm == NULL)
++ ctx->cc_tfm = crypto_alloc_tfm("aes", 0);
++
++ if (ctx->cc_tfm == NULL) {
++ IEEE80211_DPRINTF(ctx->cc_vap, IEEE80211_MSG_CRYPTO,
++ "%s: Tried to add a software crypto key, but no software crypto available\n",
++ __func__);
++
++ return 0;
++ }
++
+ crypto_cipher_setkey(ctx->cc_tfm, k->wk_key, k->wk_keylen);
++ }
+ return 1;
+ }
+