mac80211: tkipc.c michael.c use kernel bit rotation helpers
PATCH 1/5 mac80211: tkipc.c michael.c use kernel bit rotation helpers
Use ror16, ror32, rol32 instead of a private helper.
Signed-off-by Harvey Harrison <[email protected]>
---
Depends on patch submitted to -mm adding the 8 bit/16 bit helpers.
net/mac80211/michael.c | 20 ++++---------------- net/mac80211/tkip.c | 20 +++++++------------- 2 files changed, 11 insertions(+), 29 deletions(-)
net/mac80211/michael.c +4 -16
@@ -8,36 +8,24 @@*/ #include <linux/types.h> +#include <linux/bitops.h> #include "michael.h" -static inline u32 rotr (u32 val,int bits) -{ -return (val >> bits) | (val << (32 - bits)); -} - - -static inline u32 rotl (u32 val,int bits) -{ -return (val << bits) | (val >> (32 - bits)); -} - -static inline u32 xswap (u32 val) {return ((val &0xff00ff00 ) >>8 ) | ((val &0x00ff00ff ) <<8 ); } -#define michael_block (l, r) \ do { \ - r ^= rotl(l, 17); \ + r ^= rol32(l, 17); \ l += r; \ r ^= xswap(l); \ l += r; \ - r ^= rotl(l, 3); \ + r ^= rol32(l, 3); \ l += r; \ - r ^= rotr(l, 2); \ + r ^= ror32(l, 2); \ l += r; \ } while (0)
net/mac80211/tkip.c +7 -13
@@ -8,6 +8,7 @@*/ #include <linux/kernel.h> +#include <linux/bitops.h> #include <linux/types.h> #include <linux/netdevice.h>
@@ -91,13 +92,6 @@ static inline u16 Lo16(u32 v)return v &0xffff ; } - -static inline u16 RotR1 (u16 v) -{ -return (v >>1 ) | ((v &0x0001 ) <<15 ); -} - -static inline u16 tkip_S (u16 val) {u16 a = tkip_sbox[Hi8 (val)];
@@ -154,12 +148,12 @@ static void tkip_mixing_phase2(const u16 *p1k, const u8 *tk, u16 tsc_IV16, ppk[3 ] +=tkip_S (ppk[2 ] ^Mk16 (tk[7 ], tk[6 ])); ppk[4 ] +=tkip_S (ppk[3 ] ^Mk16 (tk[9 ], tk[8 ])); ppk[5 ] +=tkip_S (ppk[4 ] ^Mk16 (tk[11 ], tk[10 ])); - ppk[0 ] +=RotR1 (ppk[5 ] ^Mk16 (tk[13 ], tk[12 ])); - ppk[1 ] +=RotR1 (ppk[0 ] ^Mk16 (tk[15 ], tk[14 ])); - ppk[2 ] +=RotR1 (ppk[1 ]); - ppk[3 ] +=RotR1 (ppk[2 ]); - ppk[4 ] +=RotR1 (ppk[3 ]); - ppk[5 ] +=RotR1 (ppk[4 ]); + ppk[0 ] +=ror16 (ppk[5 ] ^Mk16 (tk[13 ], tk[12 ]),1 ); + ppk[1 ] +=ror16 (ppk[0 ] ^Mk16 (tk[15 ], tk[14 ]),1 ); + ppk[2 ] +=ror16 (ppk[1 ],1 ); + ppk[3 ] +=ror16 (ppk[2 ],1 ); + ppk[4 ] +=ror16 (ppk[3 ],1 ); + ppk[5 ] +=ror16 (ppk[4 ],1 ); rc4key[0 ] =Hi8 (tsc_IV16); rc4key[1 ] = (Hi8 (tsc_IV16) |0x20 ) &0x7f ;
Signature · 1 line
1.5.4.4.684.g0e08