亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? rtmp_wep.c

?? 臺灣RALink公司的 rt2570無線 802.11g 網卡的 驅動的源代碼 ,支持linux2.4以上的 內河
?? C
字號:
/*
 ***************************************************************************
 * Ralink Tech Inc.
 * 4F, No. 2 Technology 5th Rd.
 * Science-based Industrial Park
 * Hsin-chu, Taiwan, R.O.C.
 *
 * (c) Copyright 2002-2004, Ralink Technology, Inc.
 *
 * This program is free software; you can redistribute it and/or modify  * 
 * it under the terms of the GNU General Public License as published by  * 
 * the Free Software Foundation; either version 2 of the License, or     * 
 * (at your option) any later version.                                   * 
 *                                                                       * 
 * This program is distributed in the hope that it will be useful,       * 
 * but WITHOUT ANY WARRANTY; without even the implied warranty of        * 
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the         * 
 * GNU General Public License for more details.                          * 
 *                                                                       * 
 * You should have received a copy of the GNU General Public License     * 
 * along with this program; if not, write to the                         * 
 * Free Software Foundation, Inc.,                                       * 
 * 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.             * 
 *                                                                       * 
 ************************************************************************
	Module Name:
	rtmp_wep.c

	Abstract:

	Revision History:
	Who			When			What
	--------	----------		----------------------------------------------
	Name		Date			Modification logs
	Jan Lee		2005-06-01		Release
*/
#include	"rt_config.h"

ULONG FCSTAB_32[256] = 
{
	0x00000000, 0x77073096, 0xee0e612c, 0x990951ba,
	0x076dc419, 0x706af48f, 0xe963a535, 0x9e6495a3,
	0x0edb8832, 0x79dcb8a4, 0xe0d5e91e, 0x97d2d988,
	0x09b64c2b, 0x7eb17cbd, 0xe7b82d07, 0x90bf1d91,
	0x1db71064, 0x6ab020f2, 0xf3b97148, 0x84be41de,
	0x1adad47d, 0x6ddde4eb, 0xf4d4b551, 0x83d385c7,
	0x136c9856, 0x646ba8c0, 0xfd62f97a, 0x8a65c9ec,
	0x14015c4f, 0x63066cd9, 0xfa0f3d63, 0x8d080df5,
	0x3b6e20c8, 0x4c69105e, 0xd56041e4, 0xa2677172,
	0x3c03e4d1, 0x4b04d447, 0xd20d85fd, 0xa50ab56b,
	0x35b5a8fa, 0x42b2986c, 0xdbbbc9d6, 0xacbcf940,
	0x32d86ce3, 0x45df5c75, 0xdcd60dcf, 0xabd13d59,
	0x26d930ac, 0x51de003a, 0xc8d75180, 0xbfd06116,
	0x21b4f4b5, 0x56b3c423, 0xcfba9599, 0xb8bda50f,
	0x2802b89e, 0x5f058808, 0xc60cd9b2, 0xb10be924,
	0x2f6f7c87, 0x58684c11, 0xc1611dab, 0xb6662d3d,
	0x76dc4190, 0x01db7106, 0x98d220bc, 0xefd5102a,
	0x71b18589, 0x06b6b51f, 0x9fbfe4a5, 0xe8b8d433,
	0x7807c9a2, 0x0f00f934, 0x9609a88e, 0xe10e9818,
	0x7f6a0dbb, 0x086d3d2d, 0x91646c97, 0xe6635c01,
	0x6b6b51f4, 0x1c6c6162, 0x856530d8, 0xf262004e, 
	0x6c0695ed, 0x1b01a57b, 0x8208f4c1, 0xf50fc457, 
	0x65b0d9c6, 0x12b7e950, 0x8bbeb8ea, 0xfcb9887c, 
	0x62dd1ddf, 0x15da2d49, 0x8cd37cf3, 0xfbd44c65, 
	0x4db26158, 0x3ab551ce, 0xa3bc0074, 0xd4bb30e2, 
	0x4adfa541, 0x3dd895d7, 0xa4d1c46d, 0xd3d6f4fb, 
	0x4369e96a, 0x346ed9fc, 0xad678846, 0xda60b8d0, 
	0x44042d73, 0x33031de5, 0xaa0a4c5f, 0xdd0d7cc9, 
	0x5005713c, 0x270241aa, 0xbe0b1010, 0xc90c2086, 
	0x5768b525, 0x206f85b3, 0xb966d409, 0xce61e49f, 
	0x5edef90e, 0x29d9c998, 0xb0d09822, 0xc7d7a8b4, 
	0x59b33d17, 0x2eb40d81, 0xb7bd5c3b, 0xc0ba6cad, 
	0xedb88320, 0x9abfb3b6, 0x03b6e20c, 0x74b1d29a, 
	0xead54739, 0x9dd277af, 0x04db2615, 0x73dc1683, 
	0xe3630b12, 0x94643b84, 0x0d6d6a3e, 0x7a6a5aa8, 
	0xe40ecf0b, 0x9309ff9d, 0x0a00ae27, 0x7d079eb1, 
	0xf00f9344, 0x8708a3d2, 0x1e01f268, 0x6906c2fe, 
	0xf762575d, 0x806567cb, 0x196c3671, 0x6e6b06e7, 
	0xfed41b76, 0x89d32be0, 0x10da7a5a, 0x67dd4acc, 
	0xf9b9df6f, 0x8ebeeff9, 0x17b7be43, 0x60b08ed5, 
	0xd6d6a3e8, 0xa1d1937e, 0x38d8c2c4, 0x4fdff252, 
	0xd1bb67f1, 0xa6bc5767, 0x3fb506dd, 0x48b2364b, 
	0xd80d2bda, 0xaf0a1b4c, 0x36034af6, 0x41047a60, 
	0xdf60efc3, 0xa867df55, 0x316e8eef, 0x4669be79, 
	0xcb61b38c, 0xbc66831a, 0x256fd2a0, 0x5268e236, 
	0xcc0c7795, 0xbb0b4703, 0x220216b9, 0x5505262f, 
	0xc5ba3bbe, 0xb2bd0b28, 0x2bb45a92, 0x5cb36a04, 
	0xc2d7ffa7, 0xb5d0cf31, 0x2cd99e8b, 0x5bdeae1d, 
	0x9b64c2b0, 0xec63f226, 0x756aa39c, 0x026d930a, 
	0x9c0906a9, 0xeb0e363f, 0x72076785, 0x05005713, 
	0x95bf4a82, 0xe2b87a14, 0x7bb12bae, 0x0cb61b38, 
	0x92d28e9b, 0xe5d5be0d, 0x7cdcefb7, 0x0bdbdf21, 
	0x86d3d2d4, 0xf1d4e242, 0x68ddb3f8, 0x1fda836e, 
	0x81be16cd, 0xf6b9265b, 0x6fb077e1, 0x18b74777, 
	0x88085ae6, 0xff0f6a70, 0x66063bca, 0x11010b5c, 
	0x8f659eff, 0xf862ae69, 0x616bffd3, 0x166ccf45, 
	0xa00ae278, 0xd70dd2ee, 0x4e048354, 0x3903b3c2, 
	0xa7672661, 0xd06016f7, 0x4969474d, 0x3e6e77db, 
	0xaed16a4a, 0xd9d65adc, 0x40df0b66, 0x37d83bf0, 
	0xa9bcae53, 0xdebb9ec5, 0x47b2cf7f, 0x30b5ffe9, 
	0xbdbdf21c, 0xcabac28a, 0x53b39330, 0x24b4a3a6, 
	0xbad03605, 0xcdd70693, 0x54de5729, 0x23d967bf, 
	0xb3667a2e, 0xc4614ab8, 0x5d681b02, 0x2a6f2b94, 
	0xb40bbe37, 0xc30c8ea1, 0x5a05df1b, 0x2d02ef8d 
}; 

UCHAR   WEPKEY[] = {
		//IV
		0x00, 0x11, 0x22, 
		//WEP KEY
		0x00, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, 0x88, 0x99, 0xAA, 0xBB, 0xCC 
	};


/*
	========================================================================

	Routine	Description:
		Init WEP function.	
		
	Arguments:
      pAdapter		Pointer to our adapter
		pKey        Pointer to the WEP KEY
		KeyId		   WEP Key ID
		KeyLen      the length of WEP KEY
		pDest       Pointer to the destination which Encryption data will store in.
		
	Return Value:
		None

	IRQL = DISPATCH_LEVEL
	
	Note:
	
	========================================================================
*/
VOID	RTMPInitWepEngine(
	IN	PRT2570ADAPTER	pAdapter,	
	IN	PUCHAR			pKey,
	IN	UCHAR			KeyId,
	IN	UCHAR			KeyLen, 
	IN OUT	PUCHAR		pDest)
{
	UINT i;

	pAdapter->PrivateInfo.FCSCRC32 = PPPINITFCS32;   //Init crc32.
	NdisMoveMemory(WEPKEY + 3, pKey, KeyLen);

	for(i = 0; i < 3; i++) {
		WEPKEY[i] = RandomByte(pAdapter);   //Call mlme RandomByte() function.
	}
	ARCFOUR_INIT(&pAdapter->PrivateInfo.WEPCONTEXT, WEPKEY, KeyLen + 3);  //INIT SBOX, KEYLEN+3(IV)

	NdisMoveMemory(pDest, WEPKEY, 3);  //Append Init Vector 
	*(pDest+3) = (KeyId << 6);       //Append KEYID 
	
}

/*
	========================================================================

	Routine	Description:
		Encrypt transimitted data		
		
	Arguments:
      pAdapter		Pointer to our adapter
      pSrc        Pointer to the transimitted source data that will be encrypt
      pDest       Pointer to the destination where entryption data will be store in.
      Len			Indicate the length of the source data
		
	Return Value:
      None
		
	IRQL = DISPATCH_LEVEL

	Note:
	
	========================================================================
*/
VOID	RTMPEncryptData(
	IN	PRT2570ADAPTER	pAdapter,	
	IN	PUCHAR			pSrc,
	IN	PUCHAR			pDest,
	IN	UINT			Len)
{
	pAdapter->PrivateInfo.FCSCRC32 = RTMP_CALC_FCS32(pAdapter->PrivateInfo.FCSCRC32, pSrc, Len);
	ARCFOUR_ENCRYPT(&pAdapter->PrivateInfo.WEPCONTEXT, pDest, pSrc, Len);
}

/*
	========================================================================

	Routine	Description:
		Decrypt received data	
		
	Arguments:
		pAdapter		Pointer to our adapter
		pSrc        Pointer to the received data
		Len         the length of the received data
		
	Return Value:
		TRUE        Decrypt WEP data success
		FALSE       Decrypt WEP data failed
		
	Note:
	
	========================================================================
*/
BOOLEAN	RTMPDecryptData(
	IN	PRT2570ADAPTER	pAdapter,
	IN	PUCHAR			pSrc,
	IN	UINT			Len)
{
	ULONG	trailfcs;
	ULONG   crc32;
	UCHAR	KeyIdx;

	NdisMoveMemory(WEPKEY, pSrc, 3);    //Get WEP IV
	
	KeyIdx = (*(pSrc + 3) & 0xc0) >> 6;
	if (pAdapter->PortCfg.SharedKey[KeyIdx].KeyLen == 0)
		return (FALSE);
		
	NdisMoveMemory(WEPKEY + 3, pAdapter->PortCfg.SharedKey[KeyIdx].Key, pAdapter->PortCfg.SharedKey[KeyIdx].KeyLen);	
	ARCFOUR_INIT(&pAdapter->PrivateInfo.WEPCONTEXT, WEPKEY, pAdapter->PortCfg.SharedKey[KeyIdx].KeyLen + 3);
	ARCFOUR_DECRYPT(&pAdapter->PrivateInfo.WEPCONTEXT, pSrc, pSrc + 4, Len - 4);
	NdisMoveMemory(&trailfcs, pSrc + Len - 8, 4);
	crc32 = RTMP_CALC_FCS32(PPPINITFCS32, pSrc, Len - 8);  //Skip last 4 bytes(FCS).
	crc32 ^= 0xffffffff;             /* complement */
	if(crc32 != trailfcs)
	{
		DBGPRINT_RAW(RT_DEBUG_TRACE, "! WEP Data CRC Error !\n");	 //CRC error.
		return (FALSE);
	}
	return (TRUE);
}

/*
	========================================================================

	Routine	Description:
		The Stream Cipher Encryption Algorithm "ARCFOUR" initialize		
		
	Arguments:
	   Ctx         Pointer to ARCFOUR CONTEXT (SBOX)
		pKey        Pointer to the WEP KEY
		KeyLen      Indicate the length fo the WEP KEY
		
	Return Value:
	   None
		
	IRQL = DISPATCH_LEVEL
	
	Note:
	
	========================================================================
*/
VOID	ARCFOUR_INIT(
	IN	PARCFOURCONTEXT	Ctx,
	IN	PUCHAR			pKey,
	IN	UINT			KeyLen)
{
	UCHAR	t, u;
	UINT	keyindex;
	UINT	stateindex;
	PUCHAR	state;
	UINT	counter;
	
	state = Ctx->STATE;
	Ctx->X = 0;
	Ctx->Y = 0;
	for (counter = 0; counter < 256; counter++)
		state[counter] = (UCHAR)counter;
	keyindex = 0;
	stateindex = 0;
	for (counter = 0; counter < 256; counter++)
	{
		t = state[counter];
		stateindex = (stateindex + pKey[keyindex] + t) & 0xff;
		u = state[stateindex];
		state[stateindex] = t;
		state[counter] = u;
		if (++keyindex >= KeyLen)
			keyindex = 0;
	}
}

/*
	========================================================================

	Routine	Description:
		Get bytes from ARCFOUR CONTEXT (S-BOX)				
		
	Arguments:
	   Ctx         Pointer to ARCFOUR CONTEXT (SBOX)
		
	Return Value:
	   UCHAR  - the value of the ARCFOUR CONTEXT (S-BOX)		
		
	Note:
	
	========================================================================
*/
UCHAR	ARCFOUR_BYTE(
	IN	PARCFOURCONTEXT		Ctx)
{
  UINT x;
  UINT y;
  UCHAR sx, sy;
  PUCHAR state;
  
  state = Ctx->STATE;
  x = (Ctx->X + 1) & 0xff;
  sx = state[x];
  y = (sx + Ctx->Y) & 0xff;
  sy = state[y];
  Ctx->X = x;
  Ctx->Y = y;
  state[y] = sx;
  state[x] = sy;

  return(state[(sx + sy) & 0xff]);
  
}

/*
	========================================================================

	Routine	Description:
		The Stream Cipher Decryption Algorithm 		
		
	Arguments:
		Ctx         Pointer to ARCFOUR CONTEXT (SBOX)
		pDest			Pointer to the Destination 
		pSrc        Pointer to the Source data
		Len         Indicate the length of the Source data
		
	Return Value:
		None
		
	Note:
	
	========================================================================
*/
VOID	ARCFOUR_DECRYPT(
	IN	PARCFOURCONTEXT	Ctx,
	IN	PUCHAR			pDest, 
	IN	PUCHAR			pSrc,
	IN	UINT			Len)
{
	UINT i;

	for (i = 0; i < Len; i++)
		pDest[i] = pSrc[i] ^ ARCFOUR_BYTE(Ctx);
}

/*
	========================================================================

	Routine	Description:
		The Stream Cipher Encryption Algorithm 		
		
	Arguments:
		Ctx         Pointer to ARCFOUR CONTEXT (SBOX)
		pDest			Pointer to the Destination 
		pSrc        Pointer to the Source data
		Len         Indicate the length of the Source dta
		
	Return Value:
		None
		
	IRQL = DISPATCH_LEVEL

	Note:
	
	========================================================================
*/
VOID	ARCFOUR_ENCRYPT(
	IN	PARCFOURCONTEXT	Ctx,
	IN	PUCHAR			pDest,
	IN	PUCHAR			pSrc,
	IN	UINT			Len)
{
	UINT i;

	for (i = 0; i < Len; i++)
		pDest[i] = pSrc[i] ^ ARCFOUR_BYTE(Ctx);
}

/*
	========================================================================

	Routine	Description:
		Calculate a new FCS given the current FCS and the new data.
		
	Arguments:
		Fcs	      the original FCS value
		Cp          pointer to the data which will be calculate the FCS
		Len         the length of the data
		
	Return Value:
		ULONG - FCS 32 bits
		
	IRQL = DISPATCH_LEVEL

	Note:
	
	========================================================================
*/
ULONG	RTMP_CALC_FCS32(
	IN	ULONG	Fcs,
	IN	PUCHAR	Cp,
	IN	INT		Len)
{
	while (Len--)
	   Fcs = (((Fcs) >> 8) ^ FCSTAB_32[((Fcs) ^ (*Cp++)) & 0xff]);

	return (Fcs); 
} 


/*
	========================================================================

	Routine	Description:
		Get last FCS and encrypt it to the destination				
		
	Arguments:
		pDest			Pointer to the Destination 
		
	Return Value:
		None
		
	Note:
	
	========================================================================
*/
VOID	RTMPSetICV(
	IN	PRT2570ADAPTER	pAdapter,
	IN	PUCHAR	pDest)
{
	pAdapter->PrivateInfo.FCSCRC32 ^= 0xffffffff;             /* complement */
	
	ARCFOUR_ENCRYPT(&pAdapter->PrivateInfo.WEPCONTEXT, pDest, (PUCHAR) &pAdapter->PrivateInfo.FCSCRC32, 4);
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美一区二区三区日韩视频| 国产精品高潮久久久久无| 久久久不卡影院| 亚洲在线观看免费视频| 国产综合久久久久久久久久久久| 色综合中文字幕| 久久日一线二线三线suv| 亚洲一二三专区| 波多野结衣的一区二区三区| 2020日本不卡一区二区视频| 亚洲v中文字幕| 99视频精品全部免费在线| 久久中文娱乐网| 免费在线视频一区| 欧美日韩小视频| 一区二区三区高清不卡| 成人污污视频在线观看| 久久久久久久久久看片| 蜜桃av一区二区在线观看| 欧美日韩国产高清一区二区| 亚洲精品欧美综合四区| 91在线观看地址| 国产精品麻豆久久久| 国产不卡免费视频| 国产日韩精品一区| 国产成人av资源| 久久久噜噜噜久噜久久综合| 国模冰冰炮一区二区| 日韩精品中文字幕在线不卡尤物| 日韩极品在线观看| 6080亚洲精品一区二区| 日本亚洲免费观看| 日韩视频在线一区二区| 麻豆91在线播放免费| 欧美一区二视频| 免费一区二区视频| 欧美成va人片在线观看| 精品亚洲免费视频| 国产夜色精品一区二区av| 国产成人精品免费视频网站| 国产日韩欧美a| 91理论电影在线观看| 一卡二卡欧美日韩| 欧美三级电影一区| 欧美aaaaaa午夜精品| 欧美大片一区二区| 国产精品自产自拍| 国产精品灌醉下药二区| 色婷婷久久综合| 丝袜亚洲精品中文字幕一区| 日韩一区和二区| 国产黄人亚洲片| 亚洲精品乱码久久久久久久久| 欧美性大战久久久| 亚洲电影一区二区三区| 欧美一区二区三区免费在线看 | 免费亚洲电影在线| 久久久久久99精品| 91亚洲男人天堂| 天堂成人免费av电影一区| 2欧美一区二区三区在线观看视频| 国产**成人网毛片九色| 亚洲乱码国产乱码精品精98午夜 | 成人在线视频一区| 亚洲老司机在线| 欧美tk丨vk视频| 91麻豆精品在线观看| 青青草精品视频| 亚洲欧美在线视频观看| 日韩一级在线观看| 成人午夜在线播放| 日韩精品亚洲一区| 国产精品久久久久久久蜜臀| 欧美视频中文字幕| 丁香亚洲综合激情啪啪综合| 亚洲在线视频网站| 国产农村妇女精品| 欧美精品九九99久久| 成人免费av在线| 日本视频一区二区| 综合久久久久久| 精品国产伦一区二区三区免费| 99久久综合99久久综合网站| 韩国午夜理伦三级不卡影院| 亚洲夂夂婷婷色拍ww47| 国产精品久久久久影院| 欧美大黄免费观看| 欧美系列一区二区| 99久久精品国产毛片| 久久se精品一区精品二区| 亚洲小说欧美激情另类| 中文字幕av资源一区| 精品国产乱码久久久久久1区2区| 在线观看一区二区视频| 成人av网在线| 国产成人精品免费视频网站| 久久99久国产精品黄毛片色诱| 亚洲综合在线观看视频| 国产精品国产自产拍高清av王其 | 日韩av一区二| 一区二区三区免费观看| 亚洲欧美一区二区在线观看| 久久久亚洲精华液精华液精华液| 日韩一区二区三区观看| 欧美日韩国产不卡| 在线免费观看一区| 97国产一区二区| www.激情成人| 99精品国产99久久久久久白柏| 国产成人精品午夜视频免费| 国产麻豆午夜三级精品| 韩国av一区二区三区在线观看| 蜜桃视频第一区免费观看| 日韩va欧美va亚洲va久久| 日本sm残虐另类| 日本va欧美va欧美va精品| 日本特黄久久久高潮| 日韩 欧美一区二区三区| 日韩国产一二三区| 免费的国产精品| 美女脱光内衣内裤视频久久网站 | 激情综合网天天干| 精品亚洲成av人在线观看| 九九九精品视频| 国产一区二区视频在线| 丁香网亚洲国际| 99久久免费精品| 欧美午夜精品理论片a级按摩| 欧美日韩一级黄| 日韩一卡二卡三卡| 国产三级欧美三级日产三级99 | 国产精品综合在线视频| 国产91综合网| 91欧美一区二区| 欧美日韩国产成人在线91| 欧美电视剧免费全集观看| 久久这里只精品最新地址| 中文字幕中文乱码欧美一区二区| 亚洲男同性恋视频| 日韩福利视频导航| 国产经典欧美精品| 日本久久电影网| 91麻豆精品国产无毒不卡在线观看| xvideos.蜜桃一区二区| 自拍偷拍欧美激情| 男女男精品网站| 99国产麻豆精品| 日韩欧美不卡在线观看视频| 中文字幕二三区不卡| 午夜精品在线视频一区| 国产一区在线视频| 欧美综合亚洲图片综合区| 欧美成人精品二区三区99精品| 国产精品美女一区二区在线观看| 一卡二卡三卡日韩欧美| 国产精品亚洲专一区二区三区 | 99精品欧美一区二区蜜桃免费 | 久久综合久久综合久久综合| 亚洲免费观看视频| 极品美女销魂一区二区三区免费| 99久久精品国产网站| 欧美一区二区在线视频| 国产清纯白嫩初高生在线观看91 | 亚洲欧美在线视频| 久久国产尿小便嘘嘘尿| 91香蕉国产在线观看软件| 日韩欧美国产高清| 一区二区欧美在线观看| 国产一区二区不卡在线| 欧美精品在线一区二区三区| 国产精品欧美综合在线| 麻豆免费精品视频| 欧美在线视频不卡| 国产欧美一区二区精品仙草咪| 亚洲成a人片在线不卡一二三区 | 国产成人免费av在线| 欧美一a一片一级一片| 国产欧美精品一区| 免费亚洲电影在线| 日本高清成人免费播放| 国产精品色哟哟| 国产毛片精品视频| 日韩欧美一区二区免费| 亚洲国产sm捆绑调教视频 | 欧美喷潮久久久xxxxx| 亚洲人成亚洲人成在线观看图片| 国产在线观看免费一区| 欧美日韩亚洲综合| 一区二区三区四区国产精品| 懂色av中文一区二区三区| 精品99一区二区三区| 蜜桃精品视频在线| 91精品国产高清一区二区三区| 亚洲中国最大av网站| 91搞黄在线观看| 亚洲免费观看高清完整版在线观看熊 | 麻豆精品一区二区三区| 88在线观看91蜜桃国自产| 亚洲国产乱码最新视频| 欧美性猛交xxxxxx富婆|