add preliminary 2.6.32 support
[openwrt.git] / package / madwifi / patches / 123-ccmp_checks.patch
1 --- a/net80211/ieee80211_crypto_ccmp.c
2 +++ b/net80211/ieee80211_crypto_ccmp.c
3 @@ -115,6 +115,7 @@ ccmp_attach(struct ieee80211vap *vap, st
4  /* This function (crypto_alloc_foo might sleep. Therefore:
5   * Context: process
6   */
7 +#ifdef CONFIG_CRYPTO
8  #if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,19)
9         ctx->cc_tfm = crypto_alloc_tfm("aes", 0);
10  #else
11 @@ -123,7 +124,8 @@ ccmp_attach(struct ieee80211vap *vap, st
12         if (IS_ERR(ctx->cc_tfm))
13                 ctx->cc_tfm = NULL;
14  #endif
15 -       
16 +#endif
17 +
18         if (ctx->cc_tfm == NULL) {
19                 IEEE80211_DPRINTF(vap, IEEE80211_MSG_CRYPTO,
20                                 "%s: unable to load kernel AES crypto support\n",
21 @@ -138,12 +140,14 @@ ccmp_detach(struct ieee80211_key *k)
22  {
23         struct ccmp_ctx *ctx = k->wk_private;
24  
25 +#ifdef CONFIG_CRYPTO
26         if (ctx->cc_tfm != NULL)
27  #if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,19)
28                 crypto_free_tfm(ctx->cc_tfm);
29  #else
30                 crypto_free_cipher(ctx->cc_tfm);
31  #endif
32 +#endif
33         FREE(ctx, M_DEVBUF);
34  
35         _MOD_DEC_USE(THIS_MODULE);
36 @@ -169,7 +173,9 @@ ccmp_setkey(struct ieee80211_key *k)
37                         return 0;
38                 }
39  
40 +#ifdef CONFIG_CRYPTO
41                 crypto_cipher_setkey(ctx->cc_tfm, k->wk_key, k->wk_keylen);
42 +#endif
43         }
44  
45         return 1;
46 @@ -324,6 +330,7 @@ xor_block(u8 *b, const u8 *a, size_t len
47  static void
48  rijndael_encrypt(struct crypto_cipher *tfm, const void *src, void *dst)
49  {
50 +#ifdef CONFIG_CRYPTO
51  #if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,19)
52         crypto_cipher_encrypt_one(tfm, dst, src);
53  #else
54 @@ -339,6 +346,7 @@ rijndael_encrypt(struct crypto_cipher *t
55         sg_dst.length = AES_BLOCK_LEN;
56         crypto_cipher_encrypt(tfm, &sg_dst, &sg_src, AES_BLOCK_LEN);
57  #endif
58 +#endif
59  }
60  
61  /*
62 @@ -475,6 +483,9 @@ ccmp_encrypt(struct ieee80211_key *key, 
63         uint8_t *mic, *pos;
64         u_int space;
65  
66 +       if (ctx->cc_tfm == NULL)
67 +               return 0;
68 +
69         ctx->cc_vap->iv_stats.is_crypto_ccmp++;
70  
71         skb = skb0;
72 @@ -589,6 +600,9 @@ ccmp_decrypt(struct ieee80211_key *key, 
73         uint8_t *pos, *mic;
74         u_int space;
75  
76 +       if (ctx->cc_tfm == NULL)
77 +               return 0;
78 +
79         ctx->cc_vap->iv_stats.is_crypto_ccmp++;
80  
81         skb = skb0;
82 --- a/Makefile
83 +++ b/Makefile
84 @@ -192,11 +192,4 @@ endif
85             exit 1; \
86         fi
87         
88 -       @# check crypto support is enabled
89 -       @if [ -z "$(CONFIG_CRYPTO)" ]; then \
90 -           echo "FAILED"; \
91 -           echo "Please enable crypto API."; \
92 -           exit 1; \
93 -       fi
94 -       
95         @echo "ok."