upload tizen1.0 source
[kernel/linux-2.6.36.git] / drivers / staging / rt2860 / rtmp_ckipmic.h
1 /*
2  *************************************************************************
3  * Ralink Tech Inc.
4  * 5F., No.36, Taiyuan St., Jhubei City,
5  * Hsinchu County 302,
6  * Taiwan, R.O.C.
7  *
8  * (c) Copyright 2002-2007, Ralink Technology, Inc.
9  *
10  * This program is free software; you can redistribute it and/or modify  *
11  * it under the terms of the GNU General Public License as published by  *
12  * the Free Software Foundation; either version 2 of the License, or     *
13  * (at your option) any later version.                                   *
14  *                                                                       *
15  * This program is distributed in the hope that it will be useful,       *
16  * but WITHOUT ANY WARRANTY; without even the implied warranty of        *
17  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the         *
18  * GNU General Public License for more details.                          *
19  *                                                                       *
20  * You should have received a copy of the GNU General Public License     *
21  * along with this program; if not, write to the                         *
22  * Free Software Foundation, Inc.,                                       *
23  * 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.             *
24  *                                                                       *
25  *************************************************************************
26
27         Module Name:
28         rtmp_ckipmic.h
29
30         Abstract:
31
32         Revision History:
33         Who                     When                    What
34         --------        ----------              ----------------------------------------------
35         Name            Date                    Modification logs
36 */
37 #ifndef __RTMP_CKIPMIC_H__
38 #define __RTMP_CKIPMIC_H__
39
40 struct rt_mic_context {
41         /* --- MMH context                            */
42         u8 CK[16];              /* the key                                    */
43         u8 coefficient[16];     /* current aes counter mode coefficients      */
44         unsigned long long accum;       /* accumulated mic, reduced to u32 in final() */
45         u32 position;           /* current position (byte offset) in message  */
46         u8 part[4];             /* for conversion of message to u32 for mmh   */
47 };
48
49 void xor_128(u8 *a, u8 *b, u8 *out);
50
51 u8 RTMPCkipSbox(u8 a);
52
53 void xor_32(u8 *a, u8 *b, u8 *out);
54
55 void next_key(u8 *key, int round);
56
57 void byte_sub(u8 *in, u8 *out);
58
59 void shift_row(u8 *in, u8 *out);
60
61 void mix_column(u8 *in, u8 *out);
62
63 #endif /*__RTMP_CKIPMIC_H__ */