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

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

?? rtmp_wep.c

?? RT73_Linux_STA_Drv1.0.3.6 linux系統下
?? C
字號:
/*
 ***************************************************************************
 * Ralink Tech Inc.
 * 4F, No. 2 Technology 5th Rd.
 * Science-based Industrial Park
 * Hsin-chu, Taiwan, R.O.C.
 *
 * (c) Copyright 2002-2006, 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
	--------	----------		----------------------------------------------
	Paul Wu		10-28-02		Initial
*/

#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

    Note:
    
    ========================================================================
*/
VOID    RTMPInitWepEngine(
    IN  PRTMP_ADAPTER   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
        
    Note:
    
    ========================================================================
*/
VOID    RTMPEncryptData(
    IN  PRTMP_ADAPTER   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:
        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
        
    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
        
    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
        
    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  PRTMP_ADAPTER   pAdapter,
    IN  PUCHAR  pDest)
{
    pAdapter->PrivateInfo.FCSCRC32 ^= 0xffffffff;             /* complement */
    
#ifdef BIG_ENDIAN
    pAdapter->PrivateInfo.FCSCRC32 = SWAP32(pAdapter->PrivateInfo.FCSCRC32);
#endif
    
    ARCFOUR_ENCRYPT(&pAdapter->PrivateInfo.WEPCONTEXT, pDest, (PUCHAR) &pAdapter->PrivateInfo.FCSCRC32, 4);
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美日韩亚洲综合在线 | 精品欧美乱码久久久久久| 亚洲同性同志一二三专区| 国产精品一线二线三线精华| 精品国产亚洲在线| 波多野结衣精品在线| 久久久久9999亚洲精品| 国产寡妇亲子伦一区二区| 精品国产一区二区亚洲人成毛片 | 精品国产亚洲在线| 国产日韩精品一区二区三区| 99精品视频免费在线观看| 亚洲在线观看免费| 欧美极品aⅴ影院| 日韩高清在线观看| 日韩一级成人av| 成人久久视频在线观看| 激情综合色综合久久| 亚洲综合久久av| 中文字幕精品综合| 555夜色666亚洲国产免| 国产盗摄女厕一区二区三区| 亚洲va韩国va欧美va精品| 欧美高清在线一区| 欧美本精品男人aⅴ天堂| 欧洲精品一区二区| 色一情一乱一乱一91av| 国产欧美视频一区二区三区| 精品国产精品网麻豆系列| 欧美一区二区三区四区久久| 在线观看91视频| 一本大道久久a久久精二百| 成人伦理片在线| 国产精品夜夜嗨| 成人免费av在线| 亚洲免费在线播放| 亚洲色图欧美在线| 夜夜嗨av一区二区三区中文字幕| 亚洲精品综合在线| 亚洲成av人**亚洲成av**| 午夜精品久久久| 激情综合色播五月| 亚洲欧洲成人自拍| 亚洲电影一区二区三区| 免费观看日韩av| 国产suv精品一区二区三区| 92精品国产成人观看免费| 欧美日韩视频在线观看一区二区三区 | 精品裸体舞一区二区三区| 国产精品二三区| 国产精品久久久久久亚洲毛片| 亚洲视频 欧洲视频| 五月开心婷婷久久| 国产成人精品免费| 石原莉奈一区二区三区在线观看| 麻豆成人久久精品二区三区红| 波多野结衣亚洲一区| 欧美一区二区在线不卡| 亚洲欧洲成人精品av97| 激情综合亚洲精品| 日韩一级大片在线| 亚洲制服欧美中文字幕中文字幕| 久久精品一区八戒影视| 亚洲一区二区三区精品在线| 国产一区二区不卡| 欧美日韩精品三区| 国产精品国产三级国产| 麻豆精品在线视频| 5月丁香婷婷综合| 亚洲黄色小说网站| 在线观看网站黄不卡| 高清在线成人网| 久久久777精品电影网影网| 国产综合色视频| 精品福利视频一区二区三区| 久久精品国产一区二区三区免费看| 91麻豆.com| 亚洲国产另类精品专区| 精品视频色一区| 日韩黄色片在线观看| 欧美精品亚洲二区| 秋霞国产午夜精品免费视频 | 成人黄色电影在线 | 久久激情综合网| 日韩视频在线观看一区二区| 日本sm残虐另类| 久久午夜色播影院免费高清| 国产99一区视频免费 | 国产精品成人免费在线| 欧美日韩国产乱码电影| 国产在线观看一区二区| 欧美精彩视频一区二区三区| 91免费精品国自产拍在线不卡| 亚洲国产欧美日韩另类综合| 精品国产91久久久久久久妲己 | 秋霞国产午夜精品免费视频| 国产精品国产三级国产普通话99 | 国产精品二区一区二区aⅴ污介绍| 欧美性一二三区| 成人黄色小视频在线观看| 91.麻豆视频| 91网站在线播放| 久久不见久久见免费视频1| 亚洲人成网站精品片在线观看| 亚洲精品在线观看网站| 亚洲免费观看高清在线观看| 日韩视频永久免费| 欧美色综合天天久久综合精品| 国产精品影音先锋| 国内精品伊人久久久久av一坑| 亚洲精品自拍动漫在线| 欧美综合久久久| 福利一区二区在线| 国内精品在线播放| 日韩制服丝袜先锋影音| 免费国产亚洲视频| 亚洲成人av一区| 亚洲一区二区视频| 中文一区在线播放| 制服丝袜在线91| 精品国产乱码久久久久久牛牛| 欧美老女人在线| 欧美日本在线视频| 成人av免费在线| 成人激情视频网站| 国产成人精品亚洲日本在线桃色 | 狠狠色丁香婷婷综合久久片| 美女爽到高潮91| 日韩高清中文字幕一区| 日本伊人色综合网| 日本大胆欧美人术艺术动态| 图片区小说区区亚洲影院| 日韩成人伦理电影在线观看| 人人精品人人爱| 国产一区欧美一区| 成人福利电影精品一区二区在线观看| av中文字幕一区| 91精品国产色综合久久久蜜香臀| 日韩一区二区精品葵司在线| 欧美人与禽zozo性伦| 国产日韩亚洲欧美综合| 最新日韩在线视频| 美女视频黄 久久| 色综合网站在线| 久久久综合精品| 午夜久久久久久久久久一区二区| 国产精品中文字幕日韩精品| 欧美日韩你懂得| 国产欧美精品国产国产专区| 亚洲一本大道在线| 99热精品一区二区| 精品国产乱码久久久久久夜甘婷婷| 中文字幕第一区综合| 日韩国产精品久久久久久亚洲| 成人avav影音| 精品国产精品一区二区夜夜嗨 | 欧美视频自拍偷拍| 亚洲天堂免费看| 奇米一区二区三区| 色综合久久久久综合体| 亚洲裸体在线观看| 99精品久久只有精品| 国产亚洲一区字幕| 国产高清视频一区| 欧美激情一区三区| 国产精品自拍网站| 色综合欧美在线视频区| 亚洲一区二区三区在线| 91亚洲国产成人精品一区二区三| 久久精品一区二区三区不卡| 国产电影一区在线| 国产精品原创巨作av| 2024国产精品视频| 日本韩国欧美一区| 午夜亚洲国产au精品一区二区 | 中文av一区特黄| 亚洲免费av高清| 欧美日韩一级黄| 久久精品久久99精品久久| 国产精品久久久久久久裸模| av动漫一区二区| 午夜精品久久一牛影视| 色婷婷综合激情| 精品在线你懂的| 亚洲欧洲av在线| 91精品国产综合久久久久久久久久| 国产精品羞羞答答xxdd| 一区二区在线看| 久久久精品天堂| 在线播放中文一区| 不卡av在线网| 久久不见久久见免费视频7| 亚洲一二三区在线观看| 国产精品理伦片| 日韩精品一区二区三区老鸭窝| 欧美在线看片a免费观看| 国产在线精品免费av| 首页国产欧美日韩丝袜| 欧美国产国产综合| 欧美大胆人体bbbb|