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

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

?? aesopt.h

?? 這是新寫的一個aes算法的源代碼
?? H
?? 第 1 頁 / 共 2 頁
字號:
    length feature of the code.  Include this section if you place more
    emphasis on speed rather than code size.
*/
#if 1
#define FAST_VARIABLE
#endif

/*  12. INTERNAL TABLE CONFIGURATION

    This cipher proceeds by repeating in a number of cycles known as 'rounds'
    which are implemented by a round function which can optionally be speeded
    up using tables.  The basic tables are each 256 32-bit words, with either 
    one or four tables being required for each round function depending on
    how much speed is required. The encryption and decryption round functions
    are different and the last encryption and decrytpion round functions are
    different again making four different round functions in all.

    This means that:
      1. Normal encryption and decryption rounds can each use either 0, 1 
         or 4 tables and table spaces of 0, 1024 or 4096 bytes each.
      2. The last encryption and decryption rounds can also use either 0, 1 
         or 4 tables and table spaces of 0, 1024 or 4096 bytes each.

    Include or exclude the appropriate definitions below to set the number
    of tables used by this implementation.
*/

#if 1   /* set tables for the normal encryption round */
#define ENC_ROUND   FOUR_TABLES
#elif 0
#define ENC_ROUND   ONE_TABLE
#else
#define ENC_ROUND   NO_TABLES
#endif

#if 1   /* set tables for the last encryption round */
#define LAST_ENC_ROUND  FOUR_TABLES
#elif 0
#define LAST_ENC_ROUND  ONE_TABLE
#else
#define LAST_ENC_ROUND  NO_TABLES
#endif

#if 1   /* set tables for the normal decryption round */
#define DEC_ROUND   FOUR_TABLES
#elif 0
#define DEC_ROUND   ONE_TABLE
#else
#define DEC_ROUND   NO_TABLES
#endif

#if 1   /* set tables for the last decryption round */
#define LAST_DEC_ROUND  FOUR_TABLES
#elif 0
#define LAST_DEC_ROUND  ONE_TABLE
#else
#define LAST_DEC_ROUND  NO_TABLES
#endif

/*  The decryption key schedule can be speeded up with tables in the same
    way that the round functions can.  Include or exclude the following 
    defines to set this requirement.
*/
#if 1
#define KEY_SCHED   FOUR_TABLES
#elif 0
#define KEY_SCHED   ONE_TABLE
#else
#define KEY_SCHED   NO_TABLES
#endif

/* END OF CONFIGURATION OPTIONS */

#define NO_TABLES   0   /* DO NOT CHANGE */
#define ONE_TABLE   1   /* DO NOT CHANGE */
#define FOUR_TABLES 4   /* DO NOT CHANGE */
#define NONE        0   /* DO NOT CHANGE */
#define PARTIAL     1   /* DO NOT CHANGE */
#define FULL        2   /* DO NOT CHANGE */

#if defined(BLOCK_SIZE) && ((BLOCK_SIZE & 3) || BLOCK_SIZE < 16 || BLOCK_SIZE > 32)
#error An illegal block size has been specified.
#endif  

#if !defined(BLOCK_SIZE)
#define RC_LENGTH    29
#else
#define RC_LENGTH   5 * BLOCK_SIZE / 4 - (BLOCK_SIZE == 16 ? 10 : 11)
#endif

/* Disable at least some poor combinations of options */

#if ENC_ROUND == NO_TABLES && LAST_ENC_ROUND != NO_TABLES
#undef  LAST_ENC_ROUND
#define LAST_ENC_ROUND  NO_TABLES
#elif ENC_ROUND == ONE_TABLE && LAST_ENC_ROUND == FOUR_TABLES
#undef  LAST_ENC_ROUND
#define LAST_ENC_ROUND  ONE_TABLE 
#endif

#if ENC_ROUND == NO_TABLES && ENC_UNROLL != NONE
#undef  ENC_UNROLL
#define ENC_UNROLL  NONE
#endif

#if DEC_ROUND == NO_TABLES && LAST_DEC_ROUND != NO_TABLES
#undef  LAST_DEC_ROUND
#define LAST_DEC_ROUND  NO_TABLES
#elif DEC_ROUND == ONE_TABLE && LAST_DEC_ROUND == FOUR_TABLES
#undef  LAST_DEC_ROUND
#define LAST_DEC_ROUND  ONE_TABLE 
#endif

#if DEC_ROUND == NO_TABLES && DEC_UNROLL != NONE
#undef  DEC_UNROLL
#define DEC_UNROLL  NONE
#endif

/*  upr(x,n):  rotates bytes within words by n positions, moving bytes to
               higher index positions with wrap around into low positions
    ups(x,n):  moves bytes by n positions to higher index positions in 
               words but without wrap around
    bval(x,n): extracts a byte from a word

    NOTE:      The definitions given here are intended only for use with 
               unsigned variables and with shift counts that are compile
               time constants
*/

#if (INTERNAL_BYTE_ORDER == AES_LITTLE_ENDIAN)
#if defined(_MSC_VER)
#define upr(x,n)        _lrotl((aes_32t)(x), 8 * (n))
#else
#define upr(x,n)        ((aes_32t)(x) << 8 * (n) | (aes_32t)(x) >> 32 - 8 * (n))
#endif
#define ups(x,n)        ((aes_32t)(x) << 8 * (n))
#define bval(x,n)       ((aes_08t)((x) >> 8 * (n)))
#define bytes2word(b0, b1, b2, b3)  \
        (((aes_32t)(b3) << 24) | ((aes_32t)(b2) << 16) | ((aes_32t)(b1) << 8) | (b0))
#endif

#if (INTERNAL_BYTE_ORDER == AES_BIG_ENDIAN)
#define upr(x,n)        ((aes_32t)(x) >> 8 * (n) | (aes_32t)(x) << 32 - 8 * (n))
#define ups(x,n)        ((aes_32t)(x) >> 8 * (n)))
#define bval(x,n)       ((aes_08t)((x) >> 24 - 8 * (n)))
#define bytes2word(b0, b1, b2, b3)  \
        (((aes_32t)(b0) << 24) | ((aes_32t)(b1) << 16) | ((aes_32t)(b2) << 8) | (b3))
#endif

#if defined(SAFE_IO)

#define word_in(x)      bytes2word((x)[0], (x)[1], (x)[2], (x)[3])
#define word_out(x,v)   { (x)[0] = bval(v,0); (x)[1] = bval(v,1);   \
                          (x)[2] = bval(v,2); (x)[3] = bval(v,3);   }

#elif (INTERNAL_BYTE_ORDER == PLATFORM_BYTE_ORDER)

#define word_in(x)      *(aes_32t*)(x)
#define word_out(x,v)   *(aes_32t*)(x) = (v)

#else

#if !defined(bswap_32)
#if !defined(_MSC_VER)
#define _lrotl(x,n)     ((aes_32t)(x) <<  n | (aes_32t)(x) >> 32 - n)
#endif
#define bswap_32(x)     ((_lrotl((x),8) & 0x00ff00ff) | (_lrotl((x),24) & 0xff00ff00)) 
#endif

#define word_in(x)      bswap_32(*(aes_32t*)(x))
#define word_out(x,v)   *(aes_32t*)(x) = bswap_32(v)

#endif

/* the finite field modular polynomial and elements */

#define WPOLY   0x011b
#define BPOLY     0x1b

/* multiply four bytes in GF(2^8) by 'x' {02} in parallel */

#define m1  0x80808080
#define m2  0x7f7f7f7f
#define FFmulX(x)  ((((x) & m2) << 1) ^ ((((x) & m1) >> 7) * BPOLY))

/* The following defines provide alternative definitions of FFmulX that might
   give improved performance if a fast 32-bit multiply is not available. Note
   that a temporary variable u needs to be defined where FFmulX is used.

#define FFmulX(x) (u = (x) & m1, u |= (u >> 1), ((x) & m2) << 1) ^ ((u >> 3) | (u >> 6)) 
#define m4  (0x01010101 * BPOLY)
#define FFmulX(x) (u = (x) & m1, ((x) & m2) << 1) ^ ((u - (u >> 7)) & m4) 
*/

/* Work out which tables are needed for the different options   */

#ifdef  AES_ASM
#ifdef  ENC_ROUND
#undef  ENC_ROUND
#endif
#define ENC_ROUND   FOUR_TABLES
#ifdef  LAST_ENC_ROUND
#undef  LAST_ENC_ROUND
#endif
#define LAST_ENC_ROUND  FOUR_TABLES
#ifdef  DEC_ROUND
#undef  DEC_ROUND
#endif
#define DEC_ROUND   FOUR_TABLES
#ifdef  LAST_DEC_ROUND
#undef  LAST_DEC_ROUND
#endif
#define LAST_DEC_ROUND  FOUR_TABLES
#ifdef  KEY_SCHED
#undef  KEY_SCHED
#define KEY_SCHED   FOUR_TABLES
#endif
#endif

#if defined(ENCRYPTION) || defined(AES_ASM)
#if ENC_ROUND == ONE_TABLE
#define FT1_SET
#elif ENC_ROUND == FOUR_TABLES
#define FT4_SET
#else
#define SBX_SET
#endif
#if LAST_ENC_ROUND == ONE_TABLE
#define FL1_SET
#elif LAST_ENC_ROUND == FOUR_TABLES
#define FL4_SET
#elif !defined(SBX_SET)
#define SBX_SET
#endif
#endif

#if defined(DECRYPTION) || defined(AES_ASM)
#if DEC_ROUND == ONE_TABLE
#define IT1_SET
#elif DEC_ROUND == FOUR_TABLES
#define IT4_SET
#else
#define ISB_SET
#endif
#if LAST_DEC_ROUND == ONE_TABLE
#define IL1_SET
#elif LAST_DEC_ROUND == FOUR_TABLES
#define IL4_SET
#elif !defined(ISB_SET)
#define ISB_SET
#endif
#endif

#if defined(ENCRYPTION_KEY_SCHEDULE) || defined(DECRYPTION_KEY_SCHEDULE)
#if KEY_SCHED == ONE_TABLE
#define LS1_SET
#define IM1_SET
#elif KEY_SCHED == FOUR_TABLES
#define LS4_SET
#define IM4_SET
#elif !defined(SBX_SET)
#define SBX_SET
#endif
#endif

#ifdef  FIXED_TABLES
#define prefx   extern const
#else
#define prefx   extern
extern aes_08t  tab_init;
void gen_tabs(void);
#endif

prefx aes_32t  rcon_tab[29];

#ifdef  SBX_SET
prefx aes_08t s_box[256];
#endif

#ifdef  ISB_SET
prefx aes_08t inv_s_box[256];
#endif

#ifdef  FT1_SET
prefx aes_32t ft_tab[256];
#endif

#ifdef  FT4_SET
prefx aes_32t ft_tab[4][256];
#endif

#ifdef  FL1_SET
prefx aes_32t fl_tab[256];
#endif

#ifdef  FL4_SET
prefx aes_32t fl_tab[4][256];
#endif

#ifdef  IT1_SET
prefx aes_32t it_tab[256];
#endif

#ifdef  IT4_SET
prefx aes_32t it_tab[4][256];
#endif

#ifdef  IL1_SET
prefx aes_32t il_tab[256];
#endif

#ifdef  IL4_SET
prefx aes_32t il_tab[4][256];
#endif

#ifdef  LS1_SET
#ifdef  FL1_SET
#undef  LS1_SET
#else
prefx aes_32t ls_tab[256];
#endif
#endif

#ifdef  LS4_SET
#ifdef  FL4_SET
#undef  LS4_SET
#else
prefx aes_32t ls_tab[4][256];
#endif
#endif

#ifdef  IM1_SET
prefx aes_32t im_tab[256];
#endif

#ifdef  IM4_SET
prefx aes_32t im_tab[4][256];
#endif

/* Set the number of columns in nc.  Note that it is important
   that nc is a constant which is known at compile time if the
   highest speed version of the code is needed.
*/

#if defined(BLOCK_SIZE)
#define nc  (BLOCK_SIZE >> 2)
#else
#define nc  (cx->n_blk >> 2)
#endif

/* generic definitions of Rijndael macros that use tables    */

#define no_table(x,box,vf,rf,c) bytes2word( \
    box[bval(vf(x,0,c),rf(0,c))], \
    box[bval(vf(x,1,c),rf(1,c))], \
    box[bval(vf(x,2,c),rf(2,c))], \
    box[bval(vf(x,3,c),rf(3,c))])

#define one_table(x,op,tab,vf,rf,c) \
 (     tab[bval(vf(x,0,c),rf(0,c))] \
  ^ op(tab[bval(vf(x,1,c),rf(1,c))],1) \
  ^ op(tab[bval(vf(x,2,c),rf(2,c))],2) \
  ^ op(tab[bval(vf(x,3,c),rf(3,c))],3))

#define four_tables(x,tab,vf,rf,c) \
 (  tab[0][bval(vf(x,0,c),rf(0,c))] \
  ^ tab[1][bval(vf(x,1,c),rf(1,c))] \
  ^ tab[2][bval(vf(x,2,c),rf(2,c))] \
  ^ tab[3][bval(vf(x,3,c),rf(3,c))])

#define vf1(x,r,c)  (x)
#define rf1(r,c)    (r)
#define rf2(r,c)    ((r-c)&3)

/* perform forward and inverse column mix operation on four bytes in long word x in */
/* parallel. NOTE: x must be a simple variable, NOT an expression in these macros.  */

#define dec_fmvars
#if defined(FM4_SET)    /* not currently used */
#define fwd_mcol(x)     four_tables(x,fm_tab,vf1,rf1,0)
#elif defined(FM1_SET)  /* not currently used */
#define fwd_mcol(x)     one_table(x,upr,fm_tab,vf1,rf1,0)
#else
#undef  dec_fmvars
#define dec_fmvars      aes_32t f1, f2;
#define fwd_mcol(x)     (f1 = (x), f2 = FFmulX(f1), f2 ^ upr(f1 ^ f2, 3) ^ upr(f1, 2) ^ upr(f1, 1))
#endif

#define dec_imvars
#if defined(IM4_SET)
#define inv_mcol(x)     four_tables(x,im_tab,vf1,rf1,0)
#elif defined(IM1_SET)
#define inv_mcol(x)     one_table(x,upr,im_tab,vf1,rf1,0)
#else
#undef  dec_imvars
#define dec_imvars      aes_32t    f2, f4, f8, f9;
#define inv_mcol(x) \
    (f9 = (x), f2 = FFmulX(f9), f4 = FFmulX(f2), f8 = FFmulX(f4), f9 ^= f8, \
    f2 ^= f4 ^ f8 ^ upr(f2 ^ f9,3) ^ upr(f4 ^ f9,2) ^ upr(f9,1))
#endif

#if defined(FL4_SET)
#define ls_box(x,c)     four_tables(x,fl_tab,vf1,rf2,c)
#elif   defined(LS4_SET)
#define ls_box(x,c)     four_tables(x,ls_tab,vf1,rf2,c)
#elif defined(FL1_SET)
#define ls_box(x,c)     one_table(x,upr,fl_tab,vf1,rf2,c)
#elif defined(LS1_SET)
#define ls_box(x,c)     one_table(x,upr,ls_tab,vf1,rf2,c)
#else
#define ls_box(x,c)     no_table(x,s_box,vf1,rf2,c)
#endif

#endif

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品护士白丝一区av| 处破女av一区二区| 波多野结衣中文字幕一区| 欧美三区在线观看| 国产精品视频一二三| 麻豆精品久久精品色综合| 97se亚洲国产综合自在线观| 久久嫩草精品久久久精品| 午夜视频一区在线观看| 91在线观看免费视频| 久久一区二区视频| 蜜臀精品一区二区三区在线观看| 色狠狠一区二区三区香蕉| 国产女人aaa级久久久级| 韩国v欧美v日本v亚洲v| 欧美一级在线免费| 天堂一区二区在线| 欧美亚洲一区三区| 亚洲人成亚洲人成在线观看图片| 国产成人在线看| 久久综合九色综合97婷婷女人| 日韩影院免费视频| 在线成人午夜影院| 日韩高清一区在线| 91精品国产综合久久国产大片| 亚洲综合色噜噜狠狠| 色综合久久综合中文综合网| 亚洲图片另类小说| 99精品国产视频| 国产精品国产三级国产普通话三级| 国产成人av影院| 国产精品免费久久久久| 不卡的电视剧免费网站有什么| 国产日韩欧美麻豆| 成人免费看视频| 中文字幕中文字幕一区| 99国产精品久久久久久久久久 | 亚洲女人的天堂| 91丨九色丨蝌蚪富婆spa| 亚洲免费电影在线| 色88888久久久久久影院野外| 亚洲一区在线观看免费观看电影高清 | 欧美一区二区在线视频| 免费在线观看一区二区三区| 日韩精品中文字幕在线一区| 蓝色福利精品导航| 久久精品一区二区三区不卡牛牛| 丁香啪啪综合成人亚洲小说| 亚洲欧美日韩国产成人精品影院 | 日韩一区二区三区电影在线观看 | 久久精品一区二区三区av| 成人av在线资源网站| 亚洲黄色av一区| 欧美福利一区二区| 国产精品自产自拍| 综合激情成人伊人| 欧美日韩精品一区二区三区| 韩国三级在线一区| 亚洲婷婷综合色高清在线| 欧美四级电影网| 狠狠网亚洲精品| 亚洲色图一区二区三区| 91精品国产欧美一区二区成人| 久国产精品韩国三级视频| 中文字幕不卡的av| 欧美日韩精品专区| 国产aⅴ综合色| 亚洲va欧美va人人爽| 久久网站热最新地址| 在线亚洲+欧美+日本专区| 久久精品国产99久久6| 亚洲视频一二三区| 欧美精品一区二区三区蜜臀| 色综合咪咪久久| 国产在线一区观看| 亚洲国产精品久久一线不卡| 久久日韩精品一区二区五区| 欧日韩精品视频| 成人午夜又粗又硬又大| 婷婷综合久久一区二区三区| 中文字幕 久热精品 视频在线| 91精品国产欧美一区二区18| 色先锋aa成人| 国产成人午夜片在线观看高清观看| 亚洲成人av电影在线| 中文字幕中文字幕一区二区| 欧美电影免费观看完整版| 在线亚洲免费视频| 99re热这里只有精品免费视频| 精品一区二区三区香蕉蜜桃| 午夜精品影院在线观看| 欧美国产日韩亚洲一区| 精品电影一区二区三区| 69久久夜色精品国产69蝌蚪网| 成人动漫视频在线| 国产激情偷乱视频一区二区三区| 日韩av中文在线观看| 一区二区在线观看视频| 国产精品久久久久久久久久免费看 | 国产丝袜美腿一区二区三区| 日韩免费一区二区| 欧美一级日韩不卡播放免费| 欧美性受xxxx| 色偷偷久久人人79超碰人人澡| 成人小视频免费观看| 国产一区日韩二区欧美三区| 日本女优在线视频一区二区| 亚洲国产精品久久久久秋霞影院| 综合久久国产九一剧情麻豆| 国产精品久久久久久久久晋中| 国产午夜一区二区三区| 国产亚洲一二三区| 久久久久99精品国产片| xf在线a精品一区二区视频网站| 日韩欧美色电影| 日韩三级.com| 欧美va天堂va视频va在线| 日韩美一区二区三区| 精品福利一区二区三区| 欧美精品一区二区三区蜜桃视频 | 中文字幕一区二区三区蜜月| 国产精品国产三级国产有无不卡 | 激情另类小说区图片区视频区| 日本在线不卡视频| 日韩1区2区日韩1区2区| 美美哒免费高清在线观看视频一区二区| 亚洲成av人片| 久久精品国产一区二区三区免费看| 美女网站在线免费欧美精品| 久久精品噜噜噜成人av农村| 国产在线一区二区| 成人h动漫精品| 在线视频你懂得一区| 538在线一区二区精品国产| 欧美一区二区三区在线电影| 日韩欧美在线网站| 国产日韩亚洲欧美综合| 亚洲欧美偷拍三级| 天天影视网天天综合色在线播放| 久久99久国产精品黄毛片色诱| 国产久卡久卡久卡久卡视频精品| 丰满白嫩尤物一区二区| 欧美三级在线播放| 久久婷婷一区二区三区| 亚洲同性gay激情无套| 日韩vs国产vs欧美| 国产91精品精华液一区二区三区 | 国产日韩欧美在线一区| 综合自拍亚洲综合图不卡区| 午夜在线电影亚洲一区| 国产一区中文字幕| 色婷婷国产精品久久包臀| 欧美tickling挠脚心丨vk| 亚洲视频一二区| 久久精品国产亚洲高清剧情介绍| www.亚洲色图.com| 欧美一级高清片在线观看| 亚洲欧美综合另类在线卡通| 日韩综合小视频| 不卡欧美aaaaa| 精品日韩99亚洲| 一区二区三区日韩精品视频| 国产另类ts人妖一区二区| 在线观看免费亚洲| 国产精品无遮挡| 久久99国产精品久久99| 欧美三级电影在线观看| 国产人伦精品一区二区| 日韩有码一区二区三区| 99麻豆久久久国产精品免费 | 欧美精品精品一区| 亚洲三级电影网站| 国产成人av电影| 日韩欧美卡一卡二| 亚洲小说欧美激情另类| 95精品视频在线| 欧美国产日韩在线观看| 激情欧美一区二区三区在线观看| 欧美三级中文字| 亚洲免费观看高清完整版在线观看熊| 国产乱国产乱300精品| 日韩一级黄色片| 亚洲福利一二三区| 色综合久久88色综合天天| 国产精品久久毛片| 成人教育av在线| 欧美激情在线一区二区| 国产精品一区二区三区乱码| 日韩欧美aaaaaa| 久久精品国产成人一区二区三区| 欧美日本在线观看| 午夜视频在线观看一区二区| 在线视频国内自拍亚洲视频| 亚洲精品亚洲人成人网| 99re在线视频这里只有精品| 九色综合狠狠综合久久| 亚洲二区在线视频| 日韩av不卡在线观看| 国产一区二区影院| 国产精品高清亚洲|