madwifi: remove the hard dependency on kernel aes support - only needed for software...
authornbd <nbd@3c298f89-4303-0410-b956-a3cf2f4a3e73>
Mon, 12 Jun 2006 20:42:11 +0000 (20:42 +0000)
committernbd <nbd@3c298f89-4303-0410-b956-a3cf2f4a3e73>
Mon, 12 Jun 2006 20:42:11 +0000 (20:42 +0000)
git-svn-id: svn://svn.openwrt.org/openwrt/branches/buildroot-ng/openwrt@3934 3c298f89-4303-0410-b956-a3cf2f4a3e73

package/madwifi/patches/105-no_forced_aes_dep.patch [new file with mode: 0644]

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 (file)
index 0000000..fa439c6
--- /dev/null
@@ -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;
+ }