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

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

?? wpa.c

?? r73模塊的無線網卡在Linux下的驅動程序
?? C
?? 第 1 頁 / 共 5 頁
字號:
    pPeerKey->Length    = sizeof(NDIS_802_11_KEY) + LEN_EAP_KEY;    pPeerKey->KeyIndex  = 0xe0000000;    pPeerKey->KeyLength = pMsg3->KeyDesc.KeyLength[0] * 256 + pMsg3->KeyDesc.KeyLength[1];    COPY_MAC_ADDR(pPeerKey->BSSID, pAd->PortCfg.Bssid);    memcpy(&pPeerKey->KeyRSC, pMsg3->KeyDesc.KeyRsc, LEN_KEY_DESC_RSC);    memcpy(pPeerKey->KeyMaterial, &pAd->PortCfg.PTK[32], 32);    // Call Add peer key function    RTMPWPAAddKeyProc(pAd, pPeerKey);    if(pPeerKey != NULL){	    kfree(pPeerKey);    }    // 6. Send Message 4 to authenticator    // Send using priority queue    MiniportMMRequest(pAd, pOutBuffer, FrameLen);    DBGPRINT(RT_DEBUG_TRACE, "Wpa2PairMsg3Action <-----\n");}/*	========================================================================	Routine Description:		Process Group key 2-way handshaking	Arguments:		pAd	Pointer	to our adapter		Elem		Message body	Return Value:		None	Note:	========================================================================*/VOID	WpaGroupMsg1Action(	IN	PRTMP_ADAPTER	pAd,	IN	MLME_QUEUE_ELEM	*Elem){	PUCHAR				pOutBuffer = NULL;	ULONG				FrameLen = 0;	UCHAR				EAPHEAD[8] = {0xaa,	0xaa, 0x03,	0x00, 0x00,	0x00,0x88,0x8e};	EAPOL_PACKET		Packet;	PEAPOL_PACKET		pGroup;	UCHAR				Mic[16], OldMic[16];	UCHAR				GTK[32], Key[32];	PNDIS_802_11_KEY	pGroupKey = NULL;//    UCHAR               MSG[MAX_LEN_OF_MLME_BUFFER];	UCHAR				*mpool, *MSG, *KEYDATA;    UCHAR               Header802_3[14];//    UCHAR               KEYDATA[512];    USHORT              NStatus;	mpool = kmalloc(2*MAX_LEN_OF_MLME_BUFFER, MEM_ALLOC_FLAG);  // allocate memory    if (mpool == NULL)        return;	MSG = (UCHAR *) (((unsigned long)(mpool+3)) & ((unsigned long)~(0x03)));	KEYDATA =(UCHAR *) (((unsigned long)(MSG+MAX_LEN_OF_MLME_BUFFER+3)) & ((unsigned long)~(0x03)));    if(NdisEqualMemory(&Elem->Msg[LENGTH_802_11 + 8], EAPHEAD, LENGTH_802_1_H))    {        DBGPRINT(RT_DEBUG_TRACE, "WpaGroupMsg1Action ----->MsgLen=%d\n",Elem->MsgLen);        memcpy(MSG, Elem->Msg, LENGTH_802_11);        memcpy(&MSG[LENGTH_802_11], &Elem->Msg[LENGTH_802_11+8], (Elem->MsgLen ));    }    else    {	    DBGPRINT(RT_DEBUG_TRACE, "WpaGroupMsg1Action ----->\n");        memcpy(MSG, Elem->Msg, Elem->MsgLen);    }	// Process Group message 1 frame.	pGroup = (PEAPOL_PACKET) &MSG[LENGTH_802_11 + LENGTH_802_1_H];#ifdef BIG_ENDIAN   // recovery original byte order, before forward Elem to another routine{    USHORT	tmpKeyinfo;    memcpy(&tmpKeyinfo, &pGroup->KeyDesc.KeyInfo, sizeof(USHORT));    tmpKeyinfo = SWAP16(tmpKeyinfo);    memcpy(&pGroup->KeyDesc.KeyInfo, &tmpKeyinfo, sizeof(USHORT));}#endif    // 0. Verify RSN IE & cipher type match    if (pAd->PortCfg.WepStatus == Ndis802_11Encryption3Enabled && (pGroup->KeyDesc.KeyInfo.KeyDescVer != 2))    {	    if(mpool != NULL){		    kfree(mpool);	    }        return;    }    else if (pAd->PortCfg.WepStatus == Ndis802_11Encryption2Enabled && (pGroup->KeyDesc.KeyInfo.KeyDescVer != 1))    {	    if(mpool != NULL){		    kfree(mpool);	    }        return;    }	// 1. Verify Replay counter	//    Check Replay Counter, it has to be larger than last one. No need to be exact one larger	if (RTMPCompareMemory(pGroup->KeyDesc.ReplayCounter, pAd->PortCfg.ReplayCounter, LEN_KEY_DESC_REPLAY) != 1)	{		if(mpool != NULL){			kfree(mpool);		}		return;	}#ifdef BIG_ENDIAN   // recovery original byte order, before forward Elem to another routine{    USHORT	tmpKeyinfo;    memcpy(&tmpKeyinfo, &pGroup->KeyDesc.KeyInfo, sizeof(USHORT));    tmpKeyinfo = SWAP16(tmpKeyinfo);    memcpy(&pGroup->KeyDesc.KeyInfo, &tmpKeyinfo, sizeof(USHORT));}#endif	// Update new replay counter	memcpy(pAd->PortCfg.ReplayCounter, pGroup->KeyDesc.ReplayCounter, LEN_KEY_DESC_REPLAY);	// 2. Verify MIC is valid	// Save the MIC and replace with zero	memcpy(OldMic, pGroup->KeyDesc.KeyMic, LEN_KEY_DESC_MIC);	memset(pGroup->KeyDesc.KeyMic, 0, LEN_KEY_DESC_MIC);	if (pAd->PortCfg.WepStatus	== Ndis802_11Encryption3Enabled)	{		// AES		UCHAR digest[80];		HMAC_SHA1((PUCHAR) pGroup, pGroup->Len[1] + 4, pAd->PortCfg.PTK, LEN_EAP_MICK, digest);		memcpy(Mic,	digest,	LEN_KEY_DESC_MIC);	}	else	{		hmac_md5(pAd->PortCfg.PTK, LEN_EAP_MICK, (PUCHAR) pGroup, pGroup->Len[1] + 4, Mic);	}	if (!NdisEqualMemory(OldMic, Mic, LEN_KEY_DESC_MIC))	{		DBGPRINT(RT_DEBUG_ERROR, " MIC Different in group msg 1 of 2-way handshake!!!!!!!!!! \n");		if(mpool != NULL){			kfree(mpool);		}		return;	}	else		DBGPRINT(RT_DEBUG_TRACE, " MIC VALID in group msg 1 of 2-way handshake!!!!!!!!!! \n");#ifdef BIG_ENDIAN   // recovery original byte order, before forward Elem to another routine{    USHORT	tmpKeyinfo;    memcpy(&tmpKeyinfo, &pGroup->KeyDesc.KeyInfo, sizeof(USHORT));    tmpKeyinfo = SWAP16(tmpKeyinfo);    memcpy(&pGroup->KeyDesc.KeyInfo, &tmpKeyinfo, sizeof(USHORT));}#endif    // 3. Decrypt GTK from Key Data    DBGPRINT(RT_DEBUG_TRACE, " Install = %d!!!!EKD_DL = %d!!!!!KeyIndex = %d! \n", pGroup->KeyDesc.KeyInfo.Install, pGroup->KeyDesc.KeyInfo.EKD_DL,        pGroup->KeyDesc.KeyInfo.KeyIndex);    pGroupKey = kmalloc(MAX_LEN_OF_MLME_BUFFER, MEM_ALLOC_FLAG);  // allocate memory    if (pGroupKey == NULL)    {	    if(mpool != NULL){		    kfree(mpool);	    }	    return;    }	if (pAd->PortCfg.WepStatus	== Ndis802_11Encryption3Enabled)	{		INT i;        // Decrypt AES GTK        memcpy(KEYDATA, pGroup->KeyDesc.KeyData, 32);        //if (pGroup->KeyDesc.KeyInfo.EKD_DL == 1)            AES_GTK_KEY_UNWRAP(&pAd->PortCfg.PTK[16], KEYDATA,  pGroup->KeyDesc.KeyDataLen[1], pGroup->KeyDesc.KeyData);		// Update GTK        memset(pGroupKey, 0, sizeof(NDIS_802_11_KEY) + LEN_EAP_KEY);	    pGroupKey->Length    = sizeof(NDIS_802_11_KEY) + LEN_EAP_KEY;	    pGroupKey->KeyIndex  = 0x20000000 | pGroup->KeyDesc.KeyInfo.KeyIndex;	    pGroupKey->KeyLength = pGroup->KeyDesc.KeyLength[0] * 256 + pGroup->KeyDesc.KeyLength[1];	    COPY_MAC_ADDR(pGroupKey->BSSID, pAd->PortCfg.Bssid);	    memcpy(pGroupKey->KeyMaterial, KEYDATA, 32);	    memcpy(GTK, KEYDATA, 32);        DBGPRINT(RT_DEBUG_TRACE, "AES GTK =");        for (i = 0; i < 32; i++)        {            DBGPRINT_RAW(RT_DEBUG_TRACE, " %02x", pGroup->KeyDesc.KeyData[i]);        }        DBGPRINT_RAW(RT_DEBUG_TRACE, "\n");        // Call Add peer key function        RTMPWPAAddKeyProc(pAd, pGroupKey);	}	else	// TKIP	{		INT	i;		// Decrypt TKIP GTK		// Construct 32 bytes RC4 Key		memcpy(Key, pGroup->KeyDesc.KeyIv, 16);		memcpy(&Key[16], &pAd->PortCfg.PTK[16], 16);		ARCFOUR_INIT(&pAd->PrivateInfo.WEPCONTEXT, Key, 32);        //discard first 256 bytes		for (i = 0; i < 256; i++)            ARCFOUR_BYTE(&pAd->PrivateInfo.WEPCONTEXT);		// Decrypt GTK. Becareful, there is no ICV to check the result is correct or not        ARCFOUR_DECRYPT(&pAd->PrivateInfo.WEPCONTEXT, GTK, pGroup->KeyDesc.KeyData, 32);        DBGPRINT(RT_DEBUG_TRACE, "TKIP GTK =");        for (i = 0; i < 32; i++)        {            DBGPRINT_RAW(RT_DEBUG_TRACE, " %2x", GTK[i]);        }        DBGPRINT_RAW(RT_DEBUG_TRACE, "\n");        //RTMPWPAAddKeyProc(pAd, pGroupKey);        //ParseKeyData(pAd, KEYDATA, pGroup->KeyDesc.KeyDataLen[1]);	}	// 4. Construct Group Message 2    pAd->Sequence = ((pAd->Sequence) + 1) & (MAX_SEQ_NUMBER);    WPAMake8023Hdr(pAd, pAd->PortCfg.Bssid, Header802_3);	// Zero Group message 1 body	memset(&Packet, 0, sizeof(Packet));	Packet.Version = pAd->EAPOLVer;	Packet.Type    = EAPOLKey;	Packet.Len[1]  = sizeof(KEY_DESCRIPTER) - MAX_LEN_OF_RSNIE;		// No data field	//	// Group Message 2 as  EAPOL-Key(1,0,0,0,G,0,0,MIC,0)	//	Packet.KeyDesc.Type = RSN_KEY_DESC;	// Key descriptor version and appropriate RSN IE	Packet.KeyDesc.KeyInfo.KeyDescVer = pGroup->KeyDesc.KeyInfo.KeyDescVer;	// Update Key Length and Key Index	Packet.KeyDesc.KeyInfo.KeyIndex = pGroup->KeyDesc.KeyInfo.KeyIndex;	Packet.KeyDesc.KeyLength[0] = pGroup->KeyDesc.KeyLength[0];	Packet.KeyDesc.KeyLength[1] = pGroup->KeyDesc.KeyLength[1];	// Key Type Group key	Packet.KeyDesc.KeyInfo.KeyType = 0;	// KeyMic field presented	Packet.KeyDesc.KeyInfo.KeyMic  = 1;	// Secure bit    if (pAd->PortCfg.AuthMode == Ndis802_11AuthModeWPAPSK)	    Packet.KeyDesc.KeyInfo.Secure  = 1;	// Key Replay count	memcpy(Packet.KeyDesc.ReplayCounter, pGroup->KeyDesc.ReplayCounter, LEN_KEY_DESC_REPLAY);#ifdef BIG_ENDIAN   // recovery original byte order, before forward Elem to another routine{    USHORT	tmpKeyinfo;    memcpy(&tmpKeyinfo, &Packet.KeyDesc.KeyInfo, sizeof(USHORT));    tmpKeyinfo = SWAP16(tmpKeyinfo);    memcpy(&Packet.KeyDesc.KeyInfo, &tmpKeyinfo, sizeof(USHORT));}#endif	// Out buffer for transmitting group message 2    NStatus = MlmeAllocateMemory(pAd, (PVOID)&pOutBuffer);  //Get an unused nonpaged memory    if (NStatus != NDIS_STATUS_SUCCESS)    {	    if(mpool != NULL){		    kfree(mpool);	    }		return;    }	// Prepare EAPOL frame for MIC calculation	// Be careful, only EAPOL frame is counted for MIC calculation	MakeOutgoingFrame(pOutBuffer,           &FrameLen,		              Packet.Len[1] + 4,    &Packet,		              END_OF_ARGS);	// Prepare and Fill MIC value	memset(Mic, 0, sizeof(Mic));	if (pAd->PortCfg.WepStatus	== Ndis802_11Encryption3Enabled)	{		// AES		UCHAR digest[80];		HMAC_SHA1(pOutBuffer, FrameLen, pAd->PortCfg.PTK, LEN_EAP_MICK, digest);		memcpy(Mic,	digest,	LEN_KEY_DESC_MIC);	}	else	{		INT i;		DBGPRINT(RT_DEBUG_INFO, "PTK = ");		for (i = 0; i < 64; i++)			DBGPRINT_RAW(RT_DEBUG_INFO, "%2x-", pAd->PortCfg.PTK[i]);		DBGPRINT_RAW(RT_DEBUG_INFO, "\n");		DBGPRINT(RT_DEBUG_INFO, "- FrameLen = %d\n", FrameLen);		hmac_md5(pAd->PortCfg.PTK, LEN_EAP_MICK, pOutBuffer, FrameLen, Mic);	}	memcpy(Packet.KeyDesc.KeyMic, Mic, LEN_KEY_DESC_MIC);    FrameLen = 0;    MakeOutgoingFrame(pOutBuffer,   &FrameLen,                      LENGTH_802_3, &Header802_3,//                    sizeof(EAPHEAD), EAPHEAD,		              Packet.Len[1] + 4,    &Packet,		              END_OF_ARGS);	// 5. Copy frame to Tx ring and prepare for encryption    RTMPToWirelessSta(pAd, pOutBuffer, FrameLen);    // Free allocated memory    MlmeFreeMemory(pAd, pOutBuffer);	// 6. Update GTK	memset(pGroupKey, 0, sizeof(NDIS_802_11_KEY) + LEN_EAP_KEY);	pGroupKey->Length    = sizeof(NDIS_802_11_KEY) + LEN_EAP_KEY;	pGroupKey->KeyIndex  = 0x20000000 | pGroup->KeyDesc.KeyInfo.KeyIndex;	pGroupKey->KeyLength = pGroup->KeyDesc.KeyLength[0] * 256 + pGroup->KeyDesc.KeyLength[1];	COPY_MAC_ADDR(pGroupKey->BSSID, pAd->PortCfg.Bssid);	memcpy(pGroupKey->KeyMaterial, GTK, LEN_EAP_KEY);	// Call Add peer key function	RTMPWPAAddKeyProc(pAd, pGroupKey);	if(pGroupKey != NULL){		kfree(pGroupKey);	}	if(mpool != NULL){		kfree(mpool);	}	DBGPRINT(RT_DEBUG_TRACE, "WpaGroupMsg1Action <-----\n");}/*	========================================================================	Routine Description:		Init WPA MAC header	Arguments:		pAd	Pointer	to our adapter	Return Value:		None	Note:	========================================================================*/VOID	WpaMacHeaderInit(	IN		PRTMP_ADAPTER	pAd,	IN OUT	PHEADER_802_11	pHdr80211,	IN		UCHAR			wep,	IN		PUCHAR		    pAddr1){	memset(pHdr80211, 0, sizeof(HEADER_802_11));	pHdr80211->FC.Type	= BTYPE_DATA;	pHdr80211->FC.ToDs	= 1;	if (wep	== 1)		pHdr80211->FC.Wep = 1;	 //	Addr1: DA, Addr2: BSSID, Addr3:	SA	COPY_MAC_ADDR(pHdr80211->Addr1, pAddr1);	COPY_MAC_ADDR(pHdr80211->Addr2, pAd->CurrentAddress);	COPY_MAC_ADDR(pHdr80211->Addr3, pAd->PortCfg.Bssid);	pHdr80211->Sequence =	pAd->Sequence;}/*	========================================================================	Routine Description:		SHA1 function	Arguments:	Return Value:	Note:	========================================================================*/VOID	HMAC_SHA1(	IN	UCHAR	*text,	IN	UINT	text_len,	IN	UCHAR	*key,	IN	UINT	key_len,	IN	UCHAR	*digest){	SHA_CTX	context;	UCHAR	k_ipad[65]; /* inner padding - key XORd with ipad	*/	UCHAR	k_opad[65]; /* outer padding - key XORd with opad	*/	INT		i;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产婷婷色一区二区三区| 美女视频黄频大全不卡视频在线播放 | 99精品偷自拍| 欧美一区二区三区啪啪| 国产精品婷婷午夜在线观看| 亚洲电影欧美电影有声小说| 国产一区二区在线看| 国产一区二区三区四区五区入口| 欧美日韩国产美| 久久久国产精品麻豆| 亚洲第一电影网| 99综合电影在线视频| 久久综合99re88久久爱| 天天综合色天天综合| 91色视频在线| 国产精品黄色在线观看| 国产乱一区二区| 日韩一区二区三区观看| 午夜精品福利一区二区蜜股av| 91美女视频网站| 中文字幕一区二区视频| 高清不卡在线观看av| 欧美白人最猛性xxxxx69交| 日韩精品电影一区亚洲| 在线观看日韩精品| 亚洲欧美激情小说另类| 成人久久18免费网站麻豆| 精品sm在线观看| 精品一区中文字幕| 日韩视频在线你懂得| 麻豆国产一区二区| 日韩你懂的在线观看| 奇米影视7777精品一区二区| 欧美日韩久久久一区| 亚洲大片免费看| 欧美日韩另类一区| 日韩国产高清在线| 欧美成人国产一区二区| 精品一区二区在线免费观看| 精品国产伦一区二区三区免费| 秋霞av亚洲一区二区三| 欧美一级艳片视频免费观看| 蜜臀久久久久久久| 欧美精品一区二区三| 国产原创一区二区三区| 中文字幕va一区二区三区| 成人白浆超碰人人人人| 亚洲激情成人在线| 欧美日韩日本视频| 久久av中文字幕片| 国产日韩欧美综合一区| 色综合夜色一区| 天堂在线一区二区| 2021国产精品久久精品| 国产91丝袜在线播放| 1区2区3区精品视频| 欧美三级视频在线| 麻豆精品视频在线观看视频| 久久久www免费人成精品| 成人黄色av电影| 亚洲一区二区三区四区在线免费观看| 精品视频色一区| 国产在线播放一区二区三区| 国产精品不卡在线| 91麻豆精品国产91久久久| 国产一区二区不卡在线| 一区二区在线观看免费| 欧美一级日韩免费不卡| 国产高清久久久久| 亚洲一级二级三级在线免费观看| 91精品国产综合久久香蕉麻豆| 国产精品一二三区在线| 亚洲影院久久精品| 国产视频911| 欧美色综合天天久久综合精品| 久久99蜜桃精品| 一区二区三区91| 国产亚洲精久久久久久| 欧美日韩国产综合视频在线观看| 国产真实精品久久二三区| 亚洲欧洲日产国产综合网| 欧美xxxxxxxxx| 欧美在线你懂得| 成人免费观看视频| 久久国产尿小便嘘嘘| 亚洲欧美另类久久久精品| 精品福利一二区| 在线视频观看一区| 成人国产精品免费观看| 久久国产精品99精品国产| 亚洲乱码国产乱码精品精可以看 | 麻豆久久久久久| 亚洲精品国产无天堂网2021| 精品av久久707| 欧美疯狂性受xxxxx喷水图片| 成人av在线影院| 国内精品国产成人国产三级粉色| 亚洲国产成人tv| 亚洲色图视频网站| 国产精品污网站| 26uuu亚洲| 日韩欧美国产1| 欧美精品99久久久**| 欧美亚男人的天堂| 日本韩国欧美国产| av在线不卡电影| 成人午夜免费av| 成人h精品动漫一区二区三区| 国产美女精品人人做人人爽| 美国十次综合导航| 日本欧美一区二区三区乱码 | 亚洲精品国产一区二区三区四区在线| 国产日韩亚洲欧美综合| 久久综合资源网| 欧美成va人片在线观看| 欧美一区二区播放| 日韩女同互慰一区二区| 日韩一本二本av| 欧美白人最猛性xxxxx69交| 日韩欧美一区二区在线视频| 51精品久久久久久久蜜臀| 在线不卡欧美精品一区二区三区| 欧美色偷偷大香| 欧美日本国产一区| 欧美美女一区二区在线观看| 欧美日韩不卡在线| 日韩视频一区在线观看| 久久综合久久久久88| 久久久国产精华| 亚洲欧美一区二区久久| 一区二区三区四区高清精品免费观看 | 亚洲欧洲国产日韩| 亚洲啪啪综合av一区二区三区| 亚洲人成人一区二区在线观看| 一区二区在线观看免费视频播放| 夜夜夜精品看看| 日本在线不卡视频一二三区| 久久精品国产99久久6| 国产老肥熟一区二区三区| 粉嫩av一区二区三区在线播放| 一本一道综合狠狠老| 欧美日韩一区二区三区高清 | 色悠悠久久综合| 4hu四虎永久在线影院成人| 精品1区2区在线观看| 国产精品免费aⅴ片在线观看| 中文字幕在线不卡一区二区三区| 亚洲一区二区视频在线观看| 久久99精品久久久久久| 成人av免费网站| 欧美麻豆精品久久久久久| 欧美不卡一二三| 一区二区三区久久久| 久久精品久久精品| 色综合色综合色综合| 日韩精品中午字幕| 中文字幕一区日韩精品欧美| 日本不卡一区二区| 成人精品gif动图一区| 欧美精品久久99| 日本一区二区免费在线| 亚洲国产综合视频在线观看| 国产伦理精品不卡| 精品视频在线看| 国产欧美综合色| 日本亚洲天堂网| 97久久久精品综合88久久| 欧美一区二区三区四区在线观看| 国产校园另类小说区| 视频精品一区二区| av男人天堂一区| 精品久久久久香蕉网| 亚洲最大成人综合| 成人丝袜高跟foot| 欧美电影免费观看高清完整版在线观看| 一区二区中文字幕在线| 国产传媒日韩欧美成人| 91精品国产一区二区三区蜜臀| 国产精品传媒视频| 国产成人av自拍| 精品日韩欧美在线| 视频在线观看一区二区三区| 99久久777色| 国产精品久久久久影院色老大| 国产真实乱偷精品视频免| 制服丝袜亚洲精品中文字幕| 一区二区三区波多野结衣在线观看| 国产成人一级电影| 精品伦理精品一区| 日韩av二区在线播放| 欧美日韩在线免费视频| 亚洲乱码一区二区三区在线观看| 国产91精品一区二区麻豆网站| 欧美一区二区三区的| 亚洲福利电影网| 色成年激情久久综合| 亚洲欧美日韩成人高清在线一区| 成人精品视频一区二区三区| 国产欧美日韩在线观看| 国产精品夜夜嗨|