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

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

?? csa.c

?? uclinux 下的vlc播放器源代碼
?? C
?? 第 1 頁 / 共 2 頁
字號:
/***************************************************************************** * libcsa.c: CSA scrambler/descrambler ***************************************************************************** * Copyright (C) 2004-2005 Laurent Aimar * $Id: csa.c 13905 2006-01-12 23:10:04Z dionoea $ * * Authors: Laurent Aimar <fenrir@via.ecp.fr> *          Jean-Paul Saman <jpsaman #_at_# m2x.nl> * * 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., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA. *****************************************************************************//* * XXX: A great part is just a copy/past of deCSA but I can't find the * author and the license. If there is a problem with it please e-mail me. */#include <stdlib.h>#include <vlc/vlc.h>#include "csa.h"struct csa_t{    /* odd and even keys */    uint8_t o_ck[8];    uint8_t e_ck[8];    uint8_t o_kk[57];    uint8_t e_kk[57];    /* cypher state */    int     A[11];    int     B[11];    int     X, Y, Z;    int     D, E, F;    int     p, q, r;};static void csa_ComputeKey( uint8_t kk[57], uint8_t ck[8] );static void csa_StreamCypher( csa_t *c, int b_init, uint8_t *ck, uint8_t *sb, uint8_t *cb );static void csa_BlockDecypher( uint8_t kk[57], uint8_t ib[8], uint8_t bd[8] );static void csa_BlockCypher( uint8_t kk[57], uint8_t bd[8], uint8_t ib[8] );/***************************************************************************** * csa_New: *****************************************************************************/csa_t *csa_New(){    csa_t *c = malloc( sizeof( csa_t ) );    memset( c, 0, sizeof( csa_t ) );    return c;}/***************************************************************************** * csa_Delete: *****************************************************************************/void   csa_Delete( csa_t *c ){    free( c );}/***************************************************************************** * csa_SetCW: *****************************************************************************/void csa_SetCW( csa_t *c, uint8_t o_ck[8], uint8_t e_ck[8] ){    memcpy( c->o_ck, o_ck, 8 );    csa_ComputeKey( c->o_kk, o_ck );    memcpy( c->e_ck, e_ck, 8 );    csa_ComputeKey( c->e_kk, e_ck );}/***************************************************************************** * csa_Decrypt: *****************************************************************************/void csa_Decrypt( csa_t *c, uint8_t *pkt, int i_pkt_size ){    uint8_t *ck;    uint8_t *kk;    uint8_t  ib[8], stream[8], block[8];    int     i_hdr, i_residue;    int     i, j, n;    /* transport scrambling control */    if( (pkt[3]&0x80) == 0 )    {        /* not scrambled */        return;    }    if( pkt[3]&0x40 )    {        ck = c->o_ck;        kk = c->o_kk;    }    else    {        ck = c->e_ck;        kk = c->e_kk;    }    /* clear transport scrambling control */    pkt[3] &= 0x3f;    i_hdr = 4;    if( pkt[3]&0x20 )    {        /* skip adaption field */        i_hdr += pkt[4] + 1;    }    if( 188 - i_hdr < 8 )        return;    /* init csa state */    csa_StreamCypher( c, 1, ck, &pkt[i_hdr], ib );    /* */    n = (i_pkt_size - i_hdr) / 8;    if( n < 0 )        return;            i_residue = (i_pkt_size - i_hdr) % 8;        for( i = 1; i < n + 1; i++ )    {        csa_BlockDecypher( kk, ib, block );        if( i != n )        {            csa_StreamCypher( c, 0, ck, NULL, stream );            for( j = 0; j < 8; j++ )            {                /* xor ib with stream */                ib[j] = pkt[i_hdr+8*i+j] ^ stream[j];            }        }        else        {            /* last block */            for( j = 0; j < 8; j++ )            {                ib[j] = 0;            }        }        /* xor ib with block */        for( j = 0; j < 8; j++ )        {            pkt[i_hdr+8*(i-1)+j] = ib[j] ^ block[j];        }    }    if( i_residue > 0 )    {        csa_StreamCypher( c, 0, ck, NULL, stream );        for( j = 0; j < i_residue; j++ )        {            pkt[i_pkt_size - i_residue + j] ^= stream[j];        }    }}/***************************************************************************** * csa_Encrypt: *****************************************************************************/void csa_Encrypt( csa_t *c, uint8_t *pkt, int i_pkt_size, int b_odd ){    uint8_t *ck;    uint8_t *kk;    int i, j;    int i_hdr = 4; /* hdr len */    uint8_t  ib[184/8+2][8], stream[8], block[8];    int n, i_residue;    /* set transport scrambling control */    pkt[3] |= 0x80;    if( b_odd )    {        pkt[3] |= 0x40;    }    if( b_odd )    {        ck = c->o_ck;        kk = c->o_kk;    }    else    {        ck = c->e_ck;        kk = c->e_kk;    }    /* hdr len */    i_hdr = 4;    if( pkt[3]&0x20 )    {        /* skip adaption field */        i_hdr += pkt[4] + 1;    }    n = (i_pkt_size - i_hdr) / 8;    i_residue = (i_pkt_size - i_hdr) % 8;    if( n <= 0 )    {        pkt[3] &= 0x3f;        return;    }    /* */    for( i = 0; i < 8; i++ )    {        ib[n+1][i] = 0;    }    for( i = n; i  > 0; i-- )    {        for( j = 0; j < 8; j++ )        {            block[j] = pkt[i_hdr+8*(i-1)+j] ^ib[i+1][j];        }        csa_BlockCypher( kk, block, ib[i] );    }    /* init csa state */    csa_StreamCypher( c, 1, ck, ib[1], stream );    for( i = 0; i < 8; i++ )    {        pkt[i_hdr+i] = ib[1][i];    }    for( i = 2; i < n+1; i++ )    {        csa_StreamCypher( c, 0, ck, NULL, stream );        for( j = 0; j < 8; j++ )        {            pkt[i_hdr+8*(i-1)+j] = ib[i][j] ^ stream[j];        }    }    if( i_residue > 0 )    {        csa_StreamCypher( c, 0, ck, NULL, stream );        for( j = 0; j < i_residue; j++ )        {            pkt[i_pkt_size - i_residue + j] ^= stream[j];        }    }}/***************************************************************************** * Divers *****************************************************************************/static const uint8_t key_perm[0x40] ={    0x12,0x24,0x09,0x07,0x2A,0x31,0x1D,0x15,0x1C,0x36,0x3E,0x32,0x13,0x21,0x3B,0x40,    0x18,0x14,0x25,0x27,0x02,0x35,0x1B,0x01,0x22,0x04,0x0D,0x0E,0x39,0x28,0x1A,0x29,    0x33,0x23,0x34,0x0C,0x16,0x30,0x1E,0x3A,0x2D,0x1F,0x08,0x19,0x17,0x2F,0x3D,0x11,    0x3C,0x05,0x38,0x2B,0x0B,0x06,0x0A,0x2C,0x20,0x3F,0x2E,0x0F,0x03,0x26,0x10,0x37,};static void csa_ComputeKey( uint8_t kk[57], uint8_t ck[8] ){    int i,j,k;    int bit[64];    int newbit[64];    int kb[9][8];    /* from a cw create 56 key bytes, here kk[1..56] */

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
www国产成人| 亚洲青青青在线视频| 国产精品乱码人人做人人爱| 亚洲高清在线精品| 国产成人综合在线观看| 欧美电影一区二区三区| 国产精品成人免费在线| 美女精品自拍一二三四| 欧美性欧美巨大黑白大战| 国产视频一区二区在线| 日本成人在线电影网| 在线视频一区二区免费| 国产精品三级av| 国产一区二区三区观看| 69p69国产精品| 亚洲成人激情社区| 91影院在线免费观看| 久久亚洲精精品中文字幕早川悠里| 亚洲成av人片在线观看| 色综合天天综合网天天狠天天| 久久久精品综合| 麻豆91精品视频| 在线播放亚洲一区| 亚洲国产日韩精品| 欧美在线不卡视频| 亚洲美女电影在线| 91福利国产精品| 亚洲乱码国产乱码精品精小说 | 视频在线观看91| 欧美丝袜丝nylons| 亚洲高清免费视频| 欧美日韩一区精品| 亚洲国产日韩a在线播放性色| 欧美午夜影院一区| 午夜精品久久久久久久久久久| 欧美日韩一区小说| 日韩国产欧美在线观看| 91精品国产欧美一区二区成人| 日韩成人dvd| 日韩欧美国产一二三区| 久久99精品一区二区三区| 日韩精品一区二区三区中文精品| 奇米精品一区二区三区在线观看| 精品福利一区二区三区免费视频| 久久99精品国产麻豆不卡| 国产欧美久久久精品影院| 粉嫩一区二区三区在线看| 中文字幕欧美一| 欧洲一区二区三区在线| 亚洲成人av一区二区三区| 欧美一区中文字幕| 国产一区中文字幕| 国产精品传媒在线| 色吧成人激情小说| 蜜臀av一区二区在线免费观看| 精品国产污网站| 波多野结衣精品在线| 亚洲黄色片在线观看| 欧美一级夜夜爽| 成人午夜在线视频| 五月综合激情网| 26uuu欧美| 在线中文字幕一区二区| 毛片av一区二区| 日韩理论片网站| 日韩欧美国产1| 91视视频在线观看入口直接观看www| 午夜精品一区在线观看| 亚洲精品一线二线三线无人区| 91啪亚洲精品| 精品一区二区精品| 亚洲日本韩国一区| 精品视频在线视频| 国产福利一区二区三区视频在线| 亚洲国产欧美另类丝袜| 久久这里只有精品视频网| 在线观看视频一区二区欧美日韩| 久久狠狠亚洲综合| 一区二区三区蜜桃| 国产欧美视频在线观看| 7777精品伊人久久久大香线蕉完整版 | 亚洲另类色综合网站| 欧美一区二区三区的| 99re这里只有精品首页| 麻豆精品在线播放| 亚洲精品菠萝久久久久久久| 26uuu亚洲| 这里只有精品免费| 91麻豆国产自产在线观看| 国内精品久久久久影院色| 亚洲国产日韩a在线播放| 中文字幕av一区二区三区高| 日韩欧美国产1| 538prom精品视频线放| 一本大道久久a久久精品综合| 狠狠色丁香九九婷婷综合五月| 五月激情六月综合| 一区二区三区日韩在线观看| 中文字幕欧美一| 中文字幕在线不卡国产视频| 久久久久久久久久久黄色| 日韩午夜在线观看视频| 欧美美女视频在线观看| 日本高清不卡视频| 97se亚洲国产综合自在线观| 成人黄页毛片网站| 成人免费看视频| 不卡的看片网站| 丁香婷婷深情五月亚洲| 国产成人亚洲综合色影视| 国产高清无密码一区二区三区| 国产精品一区免费视频| 精品一区二区三区视频在线观看| 奇米777欧美一区二区| 日本在线不卡一区| 青青草97国产精品免费观看 | 在线亚洲欧美专区二区| 一本色道久久综合精品竹菊| av不卡在线播放| 波多野结衣的一区二区三区| 99久久综合国产精品| av亚洲产国偷v产偷v自拍| 99久久精品国产麻豆演员表| 91视视频在线直接观看在线看网页在线看| 成人午夜激情片| 色悠悠久久综合| 欧美性极品少妇| 91麻豆精品91久久久久同性| 欧美一区二区在线播放| 日韩女优av电影| 久久伊人蜜桃av一区二区| 国产免费久久精品| 亚洲美女区一区| 日本欧美肥老太交大片| 久久99深爱久久99精品| 高清在线不卡av| 欧美午夜电影网| 日韩精品中文字幕在线一区| 26uuu国产在线精品一区二区| 国产精品久久久久久久久免费樱桃 | 欧美乱妇23p| 精品国产一区二区三区久久影院 | 欧美视频一区二区三区四区 | 国产精品久久久久久久久免费樱桃| 亚洲素人一区二区| 午夜精品久久久久久| 国产一区二区精品久久99| www.日韩av| 这里是久久伊人| 日本一区二区三区免费乱视频| 亚洲男同性视频| 激情小说亚洲一区| 色天使久久综合网天天| 精品国产免费一区二区三区四区 | 在线亚洲欧美专区二区| 欧美大度的电影原声| 综合久久久久久久| 日韩福利电影在线| 不卡电影免费在线播放一区| 欧美一区二区三区在线看| 国产精品视频免费看| 视频精品一区二区| 不卡一区二区中文字幕| 欧美成人乱码一区二区三区| 一区二区三区在线播放| 精品一区二区三区日韩| 欧美亚洲自拍偷拍| 日本一区二区不卡视频| 日韩专区在线视频| 91丨porny丨蝌蚪视频| 精品捆绑美女sm三区| 亚洲制服丝袜一区| 成人免费视频免费观看| 日韩欧美在线综合网| 亚洲久本草在线中文字幕| 国产成人亚洲综合色影视| 91麻豆精品91久久久久同性| 玉足女爽爽91| 丁香六月久久综合狠狠色| 欧美一级爆毛片| 午夜精品久久久久久久99水蜜桃 | 国产精品你懂的在线| 久久99蜜桃精品| 欧美精品九九99久久| 一区二区三区精品| 91在线视频官网| 国产精品美女视频| 国产精品亚洲专一区二区三区| 欧美成人福利视频| 蜜桃视频在线观看一区二区| 欧美日韩一级二级| 亚洲高清视频中文字幕| 日本伦理一区二区| 亚洲婷婷国产精品电影人久久| 成人一级黄色片| 欧美国产日韩a欧美在线观看| 久久成人久久爱| 精品捆绑美女sm三区| 国产一区啦啦啦在线观看| 日韩一区二区不卡|