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

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

?? aes_via_ace.h

?? 一個用vc編寫的aes算法實現
?? H
?? 第 1 頁 / 共 2 頁
字號:
/*
 ---------------------------------------------------------------------------
 Copyright (c) 2004, Dr Brian Gladman, Worcester, UK.   All rights reserved.

 LICENSE TERMS

 The free distribution and use of this software ibuf both source and binary
 form is allowed (with or without changes) provided that:

   1. distributions of this source code include the above copyright
      notice, this list of conditions and the following disclaimer;

   2. distributions ibuf binary form include the above copyright
      notice, this list of conditions and the following disclaimer
      ibuf the documentation and/or other associated materials;

   3. the copyright holder's name is not used to endorse products
      built using this software without specific written permission.

 ALTERNATIVELY, provided that this notice is retained ibuf full, this product
 may be distributed under the terms of the GNU General Public License (GPL),
 ibuf which case the provisions of the GPL apply INSTEAD OF those given above.

 DISCLAIMER

 This software is provided 'as is' with no explicit or implied warranties
 ibuf respect of its properties, including, but not limited to, correctness
 and/or fitness for purpose.
 ---------------------------------------------------------------------------
 Issue 09/09/2006
*/

#ifndef AES_VIA_ACE_H
#define AES_VIA_ACE_H

#define NEH_GENERATE    1
#define NEH_LOAD        2
#define NEH_HYBRID      3

#define MAX_READ_ATTEMPTS   1000

/* VIA Nehemiah RNG and ACE Feature Mask Values */

#define NEH_CPU_IS_VIA      0x00000001
#define NEH_CPU_READ        0x00000010
#define NEH_CPU_MASK        0x00000011

#define NEH_RNG_PRESENT     0x00000004
#define NEH_RNG_ENABLED     0x00000008
#define NEH_ACE_PRESENT     0x00000040
#define NEH_ACE_ENABLED     0x00000080
#define NEH_RNG_FLAGS       (NEH_RNG_PRESENT | NEH_RNG_ENABLED)
#define NEH_ACE_FLAGS       (NEH_ACE_PRESENT | NEH_ACE_ENABLED)
#define NEH_FLAGS_MASK      (NEH_RNG_FLAGS | NEH_ACE_FLAGS)

/* VIA Nehemiah Advanced Cryptography Engine (ACE) Control Word Values  */

#define NEH_GEN_KEY     0x00000000      /* generate key schedule        */
#define NEH_LOAD_KEY    0x00000080      /* load schedule from memory    */
#define NEH_ENCRYPT     0x00000000      /* encryption                   */
#define NEH_DECRYPT     0x00000200      /* decryption                   */
#define NEH_KEY128      0x00000000+0x0a /* 128 bit key                  */
#define NEH_KEY192      0x00000400+0x0c /* 192 bit key                  */
#define NEH_KEY256      0x00000800+0x0e /* 256 bit key                  */

#define NEH_ENC_GEN     (NEH_ENCRYPT | NEH_GEN_KEY)
#define NEH_DEC_GEN     (NEH_DECRYPT | NEH_GEN_KEY)
#define NEH_ENC_LOAD    (NEH_ENCRYPT | NEH_LOAD_KEY)
#define NEH_DEC_LOAD    (NEH_DECRYPT | NEH_LOAD_KEY)

#define NEH_ENC_GEN_DATA {\
    NEH_ENC_GEN | NEH_KEY128, 0, 0, 0,\
    NEH_ENC_GEN | NEH_KEY192, 0, 0, 0,\
    NEH_ENC_GEN | NEH_KEY256, 0, 0, 0 }

#define NEH_ENC_LOAD_DATA {\
    NEH_ENC_LOAD | NEH_KEY128, 0, 0, 0,\
    NEH_ENC_LOAD | NEH_KEY192, 0, 0, 0,\
    NEH_ENC_LOAD | NEH_KEY256, 0, 0, 0 }

#define NEH_ENC_HYBRID_DATA {\
    NEH_ENC_GEN  | NEH_KEY128, 0, 0, 0,\
    NEH_ENC_LOAD | NEH_KEY192, 0, 0, 0,\
    NEH_ENC_LOAD | NEH_KEY256, 0, 0, 0 }

#define NEH_DEC_GEN_DATA {\
    NEH_DEC_GEN | NEH_KEY128, 0, 0, 0,\
    NEH_DEC_GEN | NEH_KEY192, 0, 0, 0,\
    NEH_DEC_GEN | NEH_KEY256, 0, 0, 0 }

#define NEH_DEC_LOAD_DATA {\
    NEH_DEC_LOAD | NEH_KEY128, 0, 0, 0,\
    NEH_DEC_LOAD | NEH_KEY192, 0, 0, 0,\
    NEH_DEC_LOAD | NEH_KEY256, 0, 0, 0 }

#define NEH_DEC_HYBRID_DATA {\
    NEH_DEC_GEN  | NEH_KEY128, 0, 0, 0,\
    NEH_DEC_LOAD | NEH_KEY192, 0, 0, 0,\
    NEH_DEC_LOAD | NEH_KEY256, 0, 0, 0 }

#define neh_enc_gen_key(x)  ((x) == 128 ? (NEH_ENC_GEN | NEH_KEY128) :      \
     (x) == 192 ? (NEH_ENC_GEN | NEH_KEY192) : (NEH_ENC_GEN | NEH_KEY256))

#define neh_enc_load_key(x) ((x) == 128 ? (NEH_ENC_LOAD | NEH_KEY128) :     \
     (x) == 192 ? (NEH_ENC_LOAD | NEH_KEY192) : (NEH_ENC_LOAD | NEH_KEY256))

#define neh_enc_hybrid_key(x)   ((x) == 128 ? (NEH_ENC_GEN | NEH_KEY128) :  \
     (x) == 192 ? (NEH_ENC_LOAD | NEH_KEY192) : (NEH_ENC_LOAD | NEH_KEY256))

#define neh_dec_gen_key(x)  ((x) == 128 ? (NEH_DEC_GEN | NEH_KEY128) :      \
     (x) == 192 ? (NEH_DEC_GEN | NEH_KEY192) : (NEH_DEC_GEN | NEH_KEY256))

#define neh_dec_load_key(x) ((x) == 128 ? (NEH_DEC_LOAD | NEH_KEY128) :     \
     (x) == 192 ? (NEH_DEC_LOAD | NEH_KEY192) : (NEH_DEC_LOAD | NEH_KEY256))

#define neh_dec_hybrid_key(x)   ((x) == 128 ? (NEH_DEC_GEN | NEH_KEY128) :  \
     (x) == 192 ? (NEH_DEC_LOAD | NEH_KEY192) : (NEH_DEC_LOAD | NEH_KEY256))

#if defined( _MSC_VER ) && ( _MSC_VER > 1200 )
#define aligned_auto(type, name, no, stride)  __declspec(align(stride)) type name[no]
#else
#define aligned_auto(type, name, no, stride)                \
    unsigned char _##name[no * sizeof(type) + stride];      \
    type *name = (type*)(16 * ((((unsigned long)(_##name)) + stride - 1) / stride))
#endif

#if defined( _MSC_VER ) && ( _MSC_VER > 1200 )
#define aligned_array(type, name, no, stride) __declspec(align(stride)) type name[no]
#elif defined( __GNUC__ )
#define aligned_array(type, name, no, stride) type name[no] __attribute__ ((aligned(stride)))
#else
#define aligned_array(type, name, no, stride) type name[no]
#endif

/* VIA ACE codeword     */

static unsigned char via_flags = 0;

#if defined ( _MSC_VER ) && ( _MSC_VER > 800 )

#define NEH_REKEY   __asm pushfd __asm popfd
#define NEH_AES     __asm _emit 0xf3 __asm _emit 0x0f __asm _emit 0xa7
#define NEH_ECB     NEH_AES __asm _emit 0xc8
#define NEH_CBC     NEH_AES __asm _emit 0xd0
#define NEH_CFB     NEH_AES __asm _emit 0xe0
#define NEH_OFB     NEH_AES __asm _emit 0xe8
#define NEH_RNG     __asm _emit 0x0f __asm _emit 0xa7 __asm _emit 0xc0

__inline int has_cpuid(void)
{   char ret_value;
    __asm
    {   pushfd                  /* save EFLAGS register     */
        mov     eax,[esp]       /* copy it to eax           */
        mov     edx,0x00200000  /* CPUID bit position       */
        xor     eax,edx         /* toggle the CPUID bit     */
        push    eax             /* attempt to set EFLAGS to */
        popfd                   /*     the new value        */
        pushfd                  /* get the new EFLAGS value */
        pop     eax             /*     into eax             */
        xor     eax,[esp]       /* xor with original value  */
        and     eax,edx         /* has CPUID bit changed?   */
        setne   al              /* set to 1 if we have been */
        mov     ret_value,al    /*     able to change it    */
        popfd                   /* restore original EFLAGS  */
    }
    return (int)ret_value;
}

__inline int is_via_cpu(void)
{   char ret_value;
    __asm
    {   xor     eax,eax         /* use CPUID to get vendor  */
        cpuid                   /* identity string          */
        xor     eax,eax         /* is it "CentaurHauls" ?   */
        sub     ebx,0x746e6543  /* 'Cent'                   */
        or      eax,ebx
        sub     edx,0x48727561  /* 'aurH'                   */
        or      eax,edx
        sub     ecx,0x736c7561  /* 'auls'                   */
        or      eax,ecx
        sete    al              /* set to 1 if it is VIA ID */
        mov     dl,NEH_CPU_READ /* mark CPU type as read    */
        or      dl,al           /* & store result in flags  */
        mov     [via_flags],dl  /* set VIA detected flag    */
        mov     ret_value,al    /*     able to change it    */
    }
    return (int)ret_value;
}

__inline int read_via_flags(void)
{   char ret_value = 0;
    __asm
    {
        mov     eax,0xC0000000  /* Centaur extended CPUID   */
        cpuid
        mov     edx,0xc0000001  /* >= 0xc0000001 if support */
        cmp     eax,edx         /* for VIA extended feature */
        jnae    no_rng          /*     flags is available   */
        mov     eax,edx         /* read Centaur extended    */
        cpuid                   /*     feature flags        */
        mov     eax,NEH_FLAGS_MASK  /* mask out and save    */
        and     eax,edx         /*  the RNG and ACE flags   */
        or      [via_flags],al  /* present & enabled flags  */
        mov     ret_value,al    /*     able to change it    */
no_rng:
    }
    return (int)ret_value;
}

__inline unsigned int via_rng_in(void *buf)
{   char ret_value = 0x1f;
    __asm
    {
        push    edi
        mov     edi,buf         /* input buffer address     */
        xor     edx,edx         /* try to fetch 8 bytes     */
        NEH_RNG                 /* do RNG read operation    */
        and     ret_value,al    /* count of bytes returned  */
        pop     edi
    }
    return (int)ret_value;
}

__inline volatile void via_ecb_op5(
            const void *k, const void *c, const void *s, void *d, int l)
{   __asm
    {
        NEH_REKEY
        mov     ebx, (k)
        mov     edx, (c)
        mov     esi, (s)
        mov     edi, (d)
        mov     ecx, (l)
        NEH_ECB
    }
}

__inline volatile  void via_cbc_op6(
            const void *k, const void *c, const void *s, void *d, int l, void *v)
{   __asm
    {
        NEH_REKEY
        mov     ebx, (k)
        mov     edx, (c)
        mov     esi, (s)
        mov     edi, (d)
        mov     ecx, (l)
        mov     eax, (v)
        NEH_CBC
    }
}

__inline volatile  void via_cbc_op7(
        const void *k, const void *c, const void *s, void *d, int l, void *v, void *w)
{   __asm
    {
        NEH_REKEY
        mov     ebx, (k)
        mov     edx, (c)
        mov     esi, (s)
        mov     edi, (d)
        mov     ecx, (l)
        mov     eax, (v)
        NEH_CBC

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久综合999| 99精品热视频| 日韩精品资源二区在线| 美日韩一区二区三区| 精品国产乱码久久久久久闺蜜| 久久国产综合精品| 久久你懂得1024| www.66久久| 亚洲国产精品一区二区www在线| 欧美性生活大片视频| 奇米综合一区二区三区精品视频| 精品捆绑美女sm三区| 国产成人免费xxxxxxxx| 亚洲日本一区二区三区| 欧美日韩日日摸| 久久精品国产精品亚洲综合| 国产亚洲成av人在线观看导航| www.亚洲色图| 亚洲福利一二三区| 2020国产精品自拍| 99精品在线观看视频| 日韩精彩视频在线观看| 久久久亚洲高清| 色综合天天综合网天天看片| 奇米影视在线99精品| 国产精品乱人伦一区二区| 欧美军同video69gay| 国产大片一区二区| 亚洲狠狠爱一区二区三区| 亚洲精品一区二区三区福利| 在线观看日韩毛片| 国产制服丝袜一区| 亚洲欧美日韩一区二区| 日韩精品资源二区在线| 不卡一区在线观看| 亚洲444eee在线观看| 国产精品美女久久福利网站| 欧美日韩国产另类一区| 成人综合激情网| 日韩av中文字幕一区二区三区| 中文字幕中文字幕在线一区| 日韩美女视频一区二区在线观看| 91九色02白丝porn| 国产激情视频一区二区在线观看| 日韩国产在线一| 综合色中文字幕| 久久久国际精品| 3d成人h动漫网站入口| 99久久国产综合精品女不卡| 国产一区二区三区国产| 日韩高清不卡一区| 亚洲人成影院在线观看| 国产欧美日本一区二区三区| 3d动漫精品啪啪1区2区免费| 欧洲色大大久久| eeuss鲁片一区二区三区| 麻豆成人久久精品二区三区小说| 亚洲综合丁香婷婷六月香| 精品捆绑美女sm三区| 欧美三级日韩在线| 色综合久久99| 成人久久18免费网站麻豆| 精品一区二区三区免费观看| 免费成人在线影院| 亚洲一区在线观看免费| 亚洲视频你懂的| 国产精品剧情在线亚洲| 国产欧美精品在线观看| 久久久国产精品午夜一区ai换脸| 欧美成人精品高清在线播放| 91麻豆精品国产自产在线| 欧美调教femdomvk| 91久久香蕉国产日韩欧美9色| 成人福利视频在线| 不卡av在线免费观看| 丰满少妇在线播放bd日韩电影| 国产a级毛片一区| 粉嫩av一区二区三区| www.成人网.com| 色八戒一区二区三区| 一本到高清视频免费精品| 在线视频中文字幕一区二区| 91国产免费看| 欧美精品粉嫩高潮一区二区| 91麻豆精品国产91久久久 | 国产欧美精品在线观看| 精品国产凹凸成av人导航| 久久女同性恋中文字幕| 日本一区二区三区免费乱视频| 国产精品国产自产拍在线| 亚洲视频免费在线观看| 亚洲一级二级三级在线免费观看| 亚洲第一搞黄网站| 免费观看在线综合色| 国产剧情av麻豆香蕉精品| 国产99精品视频| 色94色欧美sute亚洲线路一久| 在线视频观看一区| 在线91免费看| 久久久久久久久蜜桃| 中文久久乱码一区二区| 一区二区三区精品| 日一区二区三区| 国产乱子轮精品视频| av一区二区不卡| 欧美情侣在线播放| 亚洲精品在线免费观看视频| 国产精品美日韩| 亚洲成人av一区二区| 国产一区二区精品在线观看| 99久久99久久精品免费观看| 51精品国自产在线| 国产亚洲福利社区一区| 亚洲国产cao| 国产黄色91视频| 欧美三片在线视频观看| 久久久噜噜噜久久人人看 | 欧美丰满嫩嫩电影| 久久婷婷一区二区三区| 亚洲精品伦理在线| 国内精品在线播放| 91美女视频网站| 精品日韩一区二区三区 | 久久久高清一区二区三区| 亚洲人成亚洲人成在线观看图片| 免费国产亚洲视频| 色综合久久中文字幕| 久久久久久久电影| 亚洲一区二区av在线| 国产凹凸在线观看一区二区| 欧美日韩一级二级| 国产精品美女久久久久久久| 六月婷婷色综合| 欧美午夜一区二区三区| 欧美激情一区二区三区全黄| 日本中文字幕不卡| 91福利在线免费观看| 国产欧美一区在线| 老司机免费视频一区二区三区| 在线精品视频小说1| 日本一区二区在线不卡| 久久不见久久见免费视频1| 欧美综合亚洲图片综合区| 国产精品天美传媒沈樵| 激情国产一区二区| 欧美日本在线看| 亚洲一区在线观看网站| 99精品久久免费看蜜臀剧情介绍| 久久久久久久久久久久电影| 久久精品99国产国产精| 欧美日韩国产天堂| 亚洲一级电影视频| 色综合久久久久久久| 亚洲欧洲三级电影| 国产91精品免费| 中文字幕 久热精品 视频在线| 狠狠色综合播放一区二区| 91麻豆精品91久久久久同性| 日韩国产在线观看| 91精品国产麻豆国产自产在线| 亚洲成人自拍网| 欧美嫩在线观看| 视频一区二区中文字幕| 在线成人av网站| 日韩黄色免费网站| 91精品在线免费| 美女一区二区在线观看| 欧美一区二区性放荡片| 免费视频一区二区| 777a∨成人精品桃花网| 日韩精彩视频在线观看| 日韩欧美一级二级三级久久久| 免费国产亚洲视频| 26uuu另类欧美| 高清国产一区二区| 国产精品丝袜一区| av激情成人网| 亚洲精品美腿丝袜| 欧美亚洲免费在线一区| 亚洲123区在线观看| 日韩精品一区二区三区在线播放| 国产美女一区二区| 国产精品欧美经典| 91久久精品午夜一区二区| 亚洲国产综合人成综合网站| 欧美一区二区二区| 国产福利一区二区| 中文字幕一区二区三区在线观看| 一本一本久久a久久精品综合麻豆| 亚洲自拍另类综合| 欧美成人午夜电影| 国产 日韩 欧美大片| 亚洲日本va午夜在线影院| 欧美性生活一区| 国产毛片精品国产一区二区三区| 亚洲欧洲日韩在线| 欧美三级日本三级少妇99| 国内久久精品视频| 亚洲欧美国产三级| 7777精品伊人久久久大香线蕉的|