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 40struct 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 49void xor_128(u8 *a, u8 *b, u8 *out); 50 51u8 RTMPCkipSbox(u8 a); 52 53void xor_32(u8 *a, u8 *b, u8 *out); 54 55void next_key(u8 *key, int round); 56 57void byte_sub(u8 *in, u8 *out); 58 59void shift_row(u8 *in, u8 *out); 60 61void mix_column(u8 *in, u8 *out); 62 63#endif /*__RTMP_CKIPMIC_H__ */ 64