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

? 歡迎來(lái)到蟲(chóng)蟲(chóng)下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲(chóng)蟲(chóng)下載站

?? wpa.c

?? r73模塊的無(wú)線網(wǎng)卡在Linux下的驅(qū)動(dòng)程序
?? C
?? 第 1 頁(yè) / 共 5 頁(yè)
字號(hào):
	// if key is longer	than 64	bytes reset	it to key=SHA1(key)	if (key_len	> 64)	{		SHA_CTX		 tctx;		SHAInit(&tctx);		SHAUpdate(&tctx, key, key_len);		SHAFinal(&tctx,	key);		key_len	= 20;	}	memset(k_ipad, 0, sizeof(k_ipad));	memset(k_opad, 0, sizeof(k_opad));	memcpy(k_ipad, key,	key_len);	memcpy(k_opad, key,	key_len);	// XOR key with	ipad and opad values	for	(i = 0;	i <	64;	i++)	{		k_ipad[i] ^= 0x36;		k_opad[i] ^= 0x5c;	}	// perform inner SHA1	SHAInit(&context); 						/* init context for 1st pass */	SHAUpdate(&context,	k_ipad,	64);		/*	start with inner pad */	SHAUpdate(&context,	text, text_len);	/*	then text of datagram */	SHAFinal(&context, digest);				/* finish up 1st pass */	//perform outer	SHA1	SHAInit(&context);					/* init context for 2nd pass */	SHAUpdate(&context,	k_opad,	64);	/*	start with outer pad */	SHAUpdate(&context,	digest,	20);	/*	then results of	1st	hash */	SHAFinal(&context, digest);			/* finish up 2nd pass */}/*    ========================================================================    Routine Description:    Parse KEYDATA field.  KEYDATA[] May contain 2 RSN IE and optionally GTK.    GTK  is encaptulated in KDE format at  p.83 802.11i D10    Arguments:    Return Value:    Note:        802.11i D10    ========================================================================*/VOID ParseKeyData(    IN  PRTMP_ADAPTER   pAd,    IN  PUCHAR          pKeyData,    IN  UCHAR           KeyDataLen){    PKDE_ENCAP          pKDE = NULL;    PNDIS_802_11_KEY    pGroupKey = NULL;    PUCHAR              pMyKeyData = pKeyData;    UCHAR               KeyDataLength = KeyDataLen;    UCHAR               GTKLEN;    INT                 i;    if (!NdisEqualMemory(pKeyData, pAd->PortCfg.RSN_IE, pAd->PortCfg.RSN_IELen))    {        DBGPRINT(RT_DEBUG_ERROR, " RSN IE mismatched !!!!!!!!!! \n");    }    else        DBGPRINT(RT_DEBUG_TRACE, " RSN IE matched !!!!!!!!!! \n");    DBGPRINT(RT_DEBUG_ERROR, "KeyDataLen = %d  \n", KeyDataLen);/*==========================================================================================================================================*/    if ((*pKeyData == WPARSNIE) && (*(pKeyData+1) != 0) && (KeyDataLength >= (2 + *(pKeyData+1))))    {        pMyKeyData = pKeyData + *(pKeyData+1) + 2;        KeyDataLength -= (2 + *(pKeyData+1));        DBGPRINT(RT_DEBUG_TRACE,"WPA RSN IE length %d contained in Msg3 = \n", (2 + *(pKeyData+1)));    }    if ((*pMyKeyData == WPA2RSNIE) && (*(pMyKeyData+1) != 0) && (KeyDataLength >= (2 + *(pMyKeyData+1))))    {        pMyKeyData += (*(pMyKeyData+1) + 2);        KeyDataLength -= (2 + *(pMyKeyData+1));        DBGPRINT(RT_DEBUG_TRACE,"WPA2 RSN IE length %d contained in Msg3 = \n", (2 + *(pMyKeyData+1)));    }        DBGPRINT(RT_DEBUG_TRACE,"KeyDataLength %d   \n", KeyDataLength);    pKDE = (PKDE_ENCAP) pMyKeyData;//Modified by Thomas:for WPA2 crashed  error.    if ((KeyDataLength >= 8) && (KeyDataLength <= sizeof(KDE_ENCAP)))    {	//pKDE = (PKDE_ENCAP) pMyKeyData;        DBGPRINT(RT_DEBUG_TRACE,"pKDE = \n");        DBGPRINT(RT_DEBUG_TRACE,"pKDE->Type %x:", pKDE->Type);        DBGPRINT_RAW(RT_DEBUG_TRACE,"pKDE->Len 0x%x:", pKDE->Len);        DBGPRINT_RAW(RT_DEBUG_TRACE,"pKDE->OUI %x %x %x :", pKDE->OUI[0],pKDE->OUI[1],pKDE->OUI[2] );        DBGPRINT_RAW(RT_DEBUG_TRACE,"\n");    }    if (pKDE->GTKEncap.Kid == 0)    {        DBGPRINT(RT_DEBUG_ERROR,"GTK Key index zero , error\n");        return;    }        GTKLEN = pKDE->Len -6;        DBGPRINT(RT_DEBUG_TRACE,"GTK Key[%d] len=%d ", pKDE->GTKEncap.Kid, GTKLEN);        for (i = 0; i < GTKLEN; i++)        {            DBGPRINT_RAW(RT_DEBUG_TRACE,"%02x:", pKDE->GTKEncap.GTK[i]);        }        DBGPRINT_RAW(RT_DEBUG_TRACE,"\n");        // Update GTK        pGroupKey = kmalloc(MAX_LEN_OF_MLME_BUFFER, MEM_ALLOC_FLAG);  // allocate memory        if (pGroupKey == NULL)		    return;        memset(pGroupKey, 0, sizeof(NDIS_802_11_KEY) + LEN_EAP_KEY);	    pGroupKey->Length    = sizeof(NDIS_802_11_KEY) + LEN_EAP_KEY;	    pGroupKey->KeyIndex  = 0x20000000 | pKDE->GTKEncap.Kid;	    pGroupKey->KeyLength = GTKLEN;	    COPY_MAC_ADDR(pGroupKey->BSSID, pAd->PortCfg.Bssid);	    memcpy(pGroupKey->KeyMaterial, pKDE->GTKEncap.GTK, 32);        // Call Add peer key function        RTMPWPAAddKeyProc(pAd, pGroupKey);	if(pGroupKey != NULL){		kfree(pGroupKey);	}}VOID WPAMake8023Hdr(    IN PRTMP_ADAPTER    pAd,    IN PCHAR            pDAddr,    IN OUT PCHAR        pHdr){     // Addr1: DA, Addr2: BSSID, Addr3: SA    memcpy(pHdr, pDAddr, MAC_ADDR_LEN);    memcpy(&pHdr[MAC_ADDR_LEN], pAd->CurrentAddress, MAC_ADDR_LEN);    pHdr[2*MAC_ADDR_LEN] = 0x88;    pHdr[2*MAC_ADDR_LEN+1] = 0x8e;}/*	========================================================================	Routine Description:		PRF function	Arguments:	Return Value:	Note:		802.1i	Annex F.9	========================================================================*/VOID	PRF(	IN	UCHAR	*key,	IN	INT		key_len,	IN	UCHAR	*prefix,	IN	INT		prefix_len,	IN	UCHAR	*data,	IN	INT		data_len,	OUT	UCHAR	*output,	IN	INT		len){	INT		i;	UCHAR	input[1024];	INT		currentindex = 0;	INT		total_len;	memcpy(input, prefix, prefix_len);	input[prefix_len] =	0;	memcpy(&input[prefix_len + 1], data, data_len);	total_len =	prefix_len + 1 + data_len;	input[total_len] = 0;	total_len++;	for	(i = 0;	i <	(len + 19) / 20; i++)	{		HMAC_SHA1(input, total_len,	key, key_len, &output[currentindex]);		currentindex +=	20;		input[total_len - 1]++;	}}/*	========================================================================	Routine Description:		Count TPTK from PMK	Arguments:	Return Value:		Output		Store the TPTK	Note:	========================================================================*/VOID    WpaCountPTK(	IN	UCHAR	*PMK,	IN	UCHAR	*ANonce,	IN	UCHAR	*AA,	IN	UCHAR	*SNonce,	IN	UCHAR	*SA,	OUT	UCHAR	*output,	IN	UINT	len){	UCHAR	concatenation[76];	UINT	CurrPos = 0;	UCHAR	temp[32];	UCHAR	Prefix[] = {'P', 'a', 'i', 'r', 'w', 'i', 's', 'e', ' ', 'k', 'e', 'y', ' ',						'e', 'x', 'p', 'a', 'n', 's', 'i', 'o', 'n'};	memset(temp, 0, sizeof(temp));    // Get smaller address    if (RTMPCompareMemory(SA, AA, 6) == 1)	    memcpy(concatenation, AA, 6);    else        memcpy(concatenation, SA, 6);    CurrPos += 6;    // Get larger address    if (RTMPCompareMemory(SA, AA, 6) == 1)	    memcpy(&concatenation[CurrPos], SA, 6);    else	    memcpy(&concatenation[CurrPos], AA, 6);    CurrPos += 6;    // Get smaller address    if (RTMPCompareMemory(ANonce, SNonce, 32) == 1)	    memcpy(&concatenation[CurrPos], SNonce, 32);    else	    memcpy(&concatenation[CurrPos], ANonce, 32);    CurrPos += 32;    // Get larger address    if (RTMPCompareMemory(ANonce, SNonce, 32) == 1)	    memcpy(&concatenation[CurrPos], ANonce, 32);    else	    memcpy(&concatenation[CurrPos], SNonce, 32);    CurrPos += 32;    PRF(PMK, LEN_MASTER_KEY, Prefix, 22, concatenation, 76, output, len);}/*	========================================================================	Routine Description:		Misc function to Generate random number	Arguments:	Return Value:	Note:		802.1i  Annex F.9	========================================================================*/VOID	GenRandom(	IN	PRTMP_ADAPTER	pAd,	OUT	UCHAR			*random){	INT		i, curr;	UCHAR	local[80], KeyCounter[32];	UCHAR	result[80];	unsigned long CurrentTime;	UCHAR	prefix[] = {'I', 'n', 'i', 't', ' ', 'C', 'o', 'u', 'n', 't', 'e', 'r'};	memset(result, 0, 80);	memset(local, 0, 80);	memset(KeyCounter, 0, 32);	COPY_MAC_ADDR(local, pAd->CurrentAddress);	for	(i = 0;	i <	32;	i++)	{		curr =	MAC_ADDR_LEN;		CurrentTime = jiffies;		COPY_MAC_ADDR(local,  pAd->CurrentAddress);		curr +=	MAC_ADDR_LEN;		memcpy(&local[curr],  &CurrentTime,	sizeof(CurrentTime));		curr +=	sizeof(CurrentTime);		memcpy(&local[curr],  result, 32);		curr +=	32;		memcpy(&local[curr],  &i,  2);		curr +=	2;		PRF(KeyCounter, 32, prefix,12, local,	curr, result, 32);	}	memcpy(random, result,	32);}/*    ========================================================================    Routine Description:        Misc function to decrypt AES body    Arguments:    Return Value:    Note:        This function references to RFC 3394 for aes key unwrap algorithm.    ========================================================================*/VOID    AES_GTK_KEY_UNWRAP(    IN  UCHAR   *key,    OUT UCHAR   *plaintext,    IN UCHAR    c_len,    IN  UCHAR   *ciphertext){    UCHAR       A[8],   BIN[16], BOUT[16];    UCHAR       xor;    INT         i, j;    aes_context aesctx;    UCHAR       R[512];    INT         num_blocks = c_len/8;   // unit:64bits    // Initialize    memcpy(A, ciphertext, 8);    //Input plaintext    for (i = 0; i < (c_len-8); i++)    {        R[ i] = ciphertext[i + 8];    }    aes_set_key(&aesctx, key, 128);    for (j = 5; j >= 0; j--)    {        for(i = (num_blocks-1); i > 0; i--)        {            xor = (num_blocks -1 )* j + i;            memcpy(BIN, A, 8);            BIN[7] = A[7] ^ xor;            memcpy(&BIN[8], &R[(i-1)*8], 8);            aes_decrypt(&aesctx, BIN, BOUT);            memcpy(A, &BOUT[0], 8);            memcpy(&R[(i-1)*8], &BOUT[8], 8);        }    }    // OUTPUT    for (i = 0; i < c_len; i++)    {        plaintext[i] = R[i];    }    DBGPRINT(RT_DEBUG_TRACE, "plaintext =");    for (i = 0; i < (num_blocks *8); i++)    {        DBGPRINT_RAW(RT_DEBUG_TRACE, "%2x ", plaintext[i]);        if (i%16 == 15) {            DBGPRINT_RAW(RT_DEBUG_TRACE, "\n");            DBGPRINT(RT_DEBUG_TRACE, " ");		}    }    DBGPRINT_RAW(RT_DEBUG_TRACE, "\n");}/*    ========================================================================    Routine Description:       Send all EAP frames to wireless station.       These frames don't come from normal SendPackets routine, but are EAPPacket, EAPOL,    Arguments:        pRxD        Pointer to the Rx descriptor    Return Value:    None    ========================================================================*/VOID RTMPToWirelessSta(    IN  PRTMP_ADAPTER   pAd,    IN  PUCHAR          pFrame,    IN  UINT            FrameLen){    struct sk_buff  *skb;    NDIS_STATUS     Status;    do {    	// 1. build a NDIS packet and call RTMPSendPacket();     	//    be careful about how/when to release this internal allocated NDIS PACKET buffer#ifdef RTMP_EMBEDDED   		if ((skb = __dev_alloc_skb(FrameLen + 2, GFP_DMA|GFP_KERNEL)) != NULL)#else    	if ((skb = dev_alloc_skb(FrameLen + 2)) != NULL)#endif        {            skb->len = FrameLen;            skb->data_len = FrameLen;            memcpy((skb->data), pFrame, FrameLen);        }        else        {            break;        }        // 2. send out the packet        Status = RTMPSendPacket(pAd, skb);        if (Status == N

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产寡妇亲子伦一区二区| fc2成人免费人成在线观看播放| 久久久国产午夜精品| 色狠狠一区二区三区香蕉| 国产精品影视在线| 五月婷婷另类国产| 亚洲视频 欧洲视频| 亚洲精品五月天| 久久精品一区二区三区不卡牛牛| 欧美视频精品在线观看| 成人动漫一区二区| 国产一区二区三区国产| 同产精品九九九| 亚洲乱码一区二区三区在线观看| 久久精品一区蜜桃臀影院| 91麻豆精品国产91久久久资源速度 | 国产精品综合久久| 日日夜夜免费精品视频| 一区二区三区久久久| 一区在线观看免费| 国产欧美一区二区在线| 日韩一级完整毛片| 在线不卡的av| 欧美色视频在线观看| 色婷婷av一区二区三区之一色屋| 成人在线视频首页| 国产精品一品二品| 国产精华液一区二区三区| 精品亚洲成a人在线观看| 日韩中文字幕91| 亚洲国产成人高清精品| 亚洲精品五月天| 一区二区免费看| 亚洲在线视频网站| 亚洲黄色在线视频| 一区二区三国产精华液| 亚洲一线二线三线久久久| 依依成人精品视频| 亚洲精品成a人| 一区二区三区四区不卡在线 | 午夜精品久久久久久久蜜桃app| 夜夜嗨av一区二区三区中文字幕| 亚洲人成亚洲人成在线观看图片| 日韩毛片在线免费观看| 一区二区三区日韩精品视频| 一区二区三区色| 天堂在线一区二区| 日本不卡123| 国内精品伊人久久久久av一坑 | 91日韩精品一区| 色婷婷久久久亚洲一区二区三区| 欧美性视频一区二区三区| 欧美片在线播放| 欧美白人最猛性xxxxx69交| 精品1区2区在线观看| 国产视频在线观看一区二区三区 | 91免费国产视频网站| 在线观看免费一区| 91精品视频网| 久久久精品影视| 亚洲欧美日韩成人高清在线一区| 亚洲影视在线观看| 国产精品一区二区x88av| 国产成人精品免费网站| 99久久99精品久久久久久| 欧美亚洲免费在线一区| 91精品国产欧美一区二区成人| 欧美成人一区二区三区在线观看| 日本一区二区高清| 亚洲一线二线三线久久久| 精品在线播放免费| av电影天堂一区二区在线观看| 在线观看区一区二| 久久久亚洲国产美女国产盗摄| 一区二区中文视频| 日本欧美一区二区三区乱码| 国产毛片精品视频| 在线日韩一区二区| 久久久蜜臀国产一区二区| 亚洲另类春色校园小说| 日本视频免费一区| 不卡的av网站| 在线成人免费观看| 国产精品国产三级国产| 日日摸夜夜添夜夜添精品视频| 国产成人免费视| 欧美人动与zoxxxx乱| 国产精品国产成人国产三级| 日韩精品视频网| 成人免费视频视频在线观看免费| 欧美人妇做爰xxxⅹ性高电影| 欧美激情一区不卡| 日韩影视精彩在线| 97se狠狠狠综合亚洲狠狠| 日韩欧美一二区| 亚洲专区一二三| 成人一区在线观看| 日韩女优毛片在线| 亚洲电影在线免费观看| 不卡一卡二卡三乱码免费网站| 日韩一区二区视频| 亚洲精品国产精华液| 国产91精品一区二区麻豆网站| 91精品国产色综合久久久蜜香臀| 亚洲日韩欧美一区二区在线| 国产一区二区电影| 日韩免费观看高清完整版在线观看| 亚洲欧美一区二区不卡| 成人午夜又粗又硬又大| 精品久久久网站| 日韩电影免费在线看| 在线观看日韩电影| 亚洲人亚洲人成电影网站色| 国产福利一区二区三区| 日韩丝袜美女视频| 日本特黄久久久高潮| 欧美在线观看视频一区二区| 国产精品乱子久久久久| 岛国av在线一区| 久久久午夜精品理论片中文字幕| 麻豆精品国产传媒mv男同 | 日韩毛片在线免费观看| 国产成人综合网站| 久久嫩草精品久久久精品一| 激情综合色综合久久| 日韩一区二区三区观看| 丝袜脚交一区二区| 欧美三级韩国三级日本三斤| 一区二区三区不卡视频在线观看| 99久久精品国产观看| 亚洲欧洲美洲综合色网| 成人国产免费视频| 国产精品久久久久aaaa樱花| 顶级嫩模精品视频在线看| 国产午夜精品久久久久久久| 国产福利一区二区三区视频在线| 国产欧美视频在线观看| 成人免费高清视频| 中文字幕一区免费在线观看| 99久免费精品视频在线观看| 国产精品高潮呻吟| 91欧美激情一区二区三区成人| 亚洲精品午夜久久久| 欧美三级日韩在线| 麻豆91在线播放免费| 久久久亚洲高清| 波多野结衣亚洲一区| 亚洲乱码国产乱码精品精小说| 色八戒一区二区三区| 五月婷婷欧美视频| 欧美videos中文字幕| 国产高清久久久久| 日韩码欧中文字| 欧美日韩一区二区三区免费看| 日韩中文字幕av电影| 精品区一区二区| 成人av在线影院| 亚洲一级不卡视频| 欧美一级片在线| 国产成人免费视频网站高清观看视频| 国产精品免费视频一区| 在线视频国内一区二区| 蜜桃91丨九色丨蝌蚪91桃色| 国产片一区二区| 欧洲国产伦久久久久久久| 久久精品二区亚洲w码| 国产欧美日韩亚州综合| 色狠狠综合天天综合综合| 麻豆成人免费电影| 国产精品久久久久久亚洲毛片 | 香港成人在线视频| 久久先锋影音av鲁色资源| 99精品热视频| 免费看日韩a级影片| 国产精品免费视频观看| 欧美三级电影在线观看| 国产盗摄女厕一区二区三区| 亚洲美女区一区| 国产精品日韩成人| 欧美久久久一区| 成人动漫精品一区二区| 天天综合色天天| 国产精品免费丝袜| 日韩精品中文字幕一区二区三区| eeuss鲁片一区二区三区| 日韩精品免费专区| 1区2区3区精品视频| 日韩三级在线免费观看| 97久久超碰国产精品| 捆绑变态av一区二区三区| 亚洲欧洲综合另类| 精品国产青草久久久久福利| 91女人视频在线观看| 精品一区二区在线播放| 亚洲一二三四久久| 国产精品美女久久久久久久网站| 91精品国产欧美一区二区18| 色婷婷av一区二区三区大白胸| 国产久卡久卡久卡久卡视频精品| 亚洲成人激情av|