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

? 歡迎來(lái)到蟲(chóng)蟲(chóng)下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲(chóng)蟲(chóng)下載站

?? aesgav.cpp

?? 算法從speakfs提取
?? CPP
?? 第 1 頁(yè) / 共 2 頁(yè)
字號(hào):
        // compile next key as defined by NIST
        block_xor(key, ct + 2 * blen - klen, klen);
    }
}

// Synchronise two comparison files if they get out of step

int sync(int nbr, ifstream& inf, char str[], bool outp)
{   line_type   ty;
    int         nn;

    for(;;)
    {
        ty = find_line(inf, str);

        if(ty == bad_line) return -1;

        if(ty == test_no)
        {
            nn = get_dec(str + 2);

            if(nn >= nbr) return nn;
        }

        if(outp) cout << "\n  " << str;
    }
}

// Compare two test vector files

void comp_vecs(const char *fn1, const char *fn2)
{   char       str1[128], str2[128];
    line_type  ty1, ty2;
    int        no1, no2, err_cnt, np_cnt;
    bool       req;
    ifstream   if1;
    ifstream   if2;

    err_cnt = np_cnt = 0; req = true;

    if1.open(fn1, ios::in);

    if(!if1)   // open first file
    {
        cout << "\n*** 1st file (" << fn1 << ") not found ***"; return;
    }

    if2.open(fn2, ios::in);

    if(!if2)   // open second file
    {
        cout << "\n*** 2nd file (" << fn2 << ") not found ***"; return;
    }

    for(;;)         // while there is still input
    {
        if(req)     // if another line needs to be input
        {
            ty1 = find_line(if1, str1); ty2 = find_line(if2, str2);
        }

        if(ty1 == bad_line && ty2 == bad_line)      // if end of file on both files

            break;

        if(ty1 == bad_line || ty2 == bad_line)      // if end of file on one file
        {
            cout << '\n' << fn1 << (ty1 == bad_line ? " short" : " long")
                                                << "er than " << fn2;
            break;
        }

        if(ty1 == test_no)          // if 'test number' line in file 1

            no1 = get_dec(str1);

        if(ty2 == test_no)          // if 'test number' line in file 2

            no2 = get_dec(str2);

        if(cmp_nocase(str1, str2) == 0)
        {
            req = true; continue;   // if lines are the same continue
        }

        if(ty1 == test_no && ty2 == test_no)    // if not the same but both are at a
        {                                       // 'test number' line
            np_cnt += abs(no2 - no1); req = false;

            if(no2 < no1)   // extra tests in file 2
            {
                cout << "\nextra test(s) in " << fn2 << ":\n  " << str2;
                no2 = sync(no1, if2, str2, np_cnt < 10); // skip tests in file 2
            }

            if(no1 < no2)   // extra test in file 1
            {
                cout << "\nextra test(s) in " << fn1 << ":\n  " << str1;
                no1 = sync(no2, if1, str1, np_cnt < 10);// skip tests in file 1
            }
        }
        else if(ty1 != ty2) // cannot synchronise test vector files
        {
            cout << "\n*** synchronisation error tests " << no1
                    << " and " << no2 << " ***";

            cout.flush(); return;
        }
        else if(ty1 != bad_line)   // test vector mismatch
        {
            err_cnt++;

            cout << "\r*** mismatch error test " << no1 << " ***";
        }

        cout.flush();
    }

    if(np_cnt && !err_cnt)  // all tests present match

        cout << "\nother tests match\n";

    else
    {
        if(err_cnt)
        {
            cout << '\r' << fn1 << " doesn't match " << fn2 
                                            << " (" << err_cnt << "errors)\n"; 
        }
        else
        {
            cout << '\r' << fn1 << " matches " << fn2 << '\n';
        }
    }

    std::cout.flush();
    if1.close(); if2.close();
}

// array of functions to call for each test

typedef void (*f_ep)(ofstream& outf, f_ctx* alg, const word blen, const word klen);
typedef void (*f_dp)(ofstream& outf, f_ctx* alg, const word blen, const word klen);

f_ep f_ptr[8] = { ecb_vk, ecb_vt, ecb_vkn, ecb_vtn, ecb_me, (f_ep)ecb_md, cbc_me, (f_ep)cbc_md };

// do the tests for each algorithm

void do_tests(bool do_cmp, bool ttype[3], f_ctx* alg, const word blen, const word klen)
{   char       name1[128], name2[128], *sp1, *sp2;
    int        i;
    ofstream   outf;

    cout << "\nGenerate" << (do_cmp ? " and verify" : "") 
         << " tests for aes (block_size = " << 8 * blen 
         << ", key size = " << 8 * klen << ")\n";

    for(i = 0; i < 8; ++i)  // for each type of test /k /x /e /c (2 tests each)
        if(ttype[i / 2])    // if this test required
        {
            // name of file for output of generated test vectors

            sp1 = copy_str(name1, out_path);
            sp2 = copy_str(name2, ref_path);
            file_name(sp1, i, blen, klen);
            copy_str(sp2, sp1);

            outf.open(name1, ios::out);

            if(outf)      // if output file is open write it
            {
                header(outf, i, blen, klen);
                f_ptr[i](outf, alg, blen, klen);
                outf << '\n'; outf.close();

                if(do_cmp)  // compare it with reference if required
                    comp_vecs(name2, name1);
            }
       }
}

#ifdef  AES_DLL

#include "windows.h"

HINSTANCE init_dll(fn_ptrs& fn)
{   HINSTANCE   h_dll;

    if(!(h_dll = LoadLibrary(dll_path)))
    {
        std::cout << "\n\nDynamic link Library AES_DLL not found\n\n"; return 0;
    }

    fn.fn_blk_len = (g_blk_len*)GetProcAddress(h_dll, "_aes_blk_len@8");
    fn.fn_enc_key = (g_enc_key*)GetProcAddress(h_dll, "_aes_enc_key@12");
    fn.fn_dec_key = (g_dec_key*)GetProcAddress(h_dll, "_aes_dec_key@12");
    fn.fn_enc_blk = (g_enc_blk*)GetProcAddress(h_dll, "_aes_enc_blk@12");
    fn.fn_dec_blk = (g_dec_blk*)GetProcAddress(h_dll, "_aes_dec_blk@12");

#if !defined(BLOCK_SIZE)
    if(!fn.fn_enc_key || !fn.fn_dec_key || !fn.fn_enc_blk  || !fn.fn_dec_blk || !fn.fn_blk_len)
#else
    if(!fn.fn_enc_key || !fn.fn_dec_key || !fn.fn_enc_blk  || !fn.fn_dec_blk)
#endif
    {
        std::cout << "\n\nRequired DLL Entry Point(s) not found\n\n"; 
        FreeLibrary(h_dll); 
        return 0;
    }

    return h_dll;
}

#endif  // AES_DLL

int main(int argc, char *argv[])
{   bool    do_cmp, tyf[4], bf[5], kf[5];
    f_ctx   alg;

#if defined(AES_DLL)
    HINSTANCE   h_dll;

    if(!(h_dll = init_dll(fn))) return -1;
#endif

#if !defined(AES_IN_CPP)
    alg.n_blk = 0;
    alg.n_rnd = 0;
#endif

    if(argc == 1)
    {
        cout << "\nusage: aes_gav /t:[knec] /b:[45678] /k:[45678] [/c]";
        cout << "\n";
        cout << "\nwhere the symbols in square brackets can be used in";
        cout << "\nany combination (without the brackets) and have the";
        cout << "\nfollowing meanings:";
        cout << "\n";
        cout << "\n        /t:[knec]   selects which tests are used";
        cout << "\n        /b:[45678]  selects the block lengths used";
        cout << "\n        /k:[45678]  selects the key lengths used";
        cout << "\n        /c          compares output with reference";
        cout << "\nwhere:";
        cout << "\n        k: generate ECB Known Answer Test files";
        cout << "\n        n: generate ECB Known Answer Test files (new)";
        cout << "\n        e: generate ECB Monte Carlo Test files";
        cout << "\n        c: generate CBC Monte Carlo Test files";
        cout << "\n";
        cout << "\nand the characters giving block and key lengths are";
        cout << "\ndigits representing the lengths in 32-bit units.\n\n";
        exit(0);
    }

    cout << "\nRun tests for the AES algorithm"

#if defined(AES_DLL)
    " (DLL Version)\n";
#else
    "\n";
#endif

    do_cmp = test_args(argc, argv, 'c', '\0');

    tyf[0] = test_args(argc, argv, 't', 'k');
    tyf[1] = test_args(argc, argv, 't', 'n');
    tyf[2] = test_args(argc, argv, 't', 'e');
    tyf[3] = test_args(argc, argv, 't', 'c');

    kf[0] = test_args(argc, argv, 'k', '4');
    kf[1] = test_args(argc, argv, 'k', '5');
    kf[2] = test_args(argc, argv, 'k', '6');
    kf[3] = test_args(argc, argv, 'k', '7');
    kf[4] = test_args(argc, argv, 'k', '8');

    if(!(kf[0] || kf[1] || kf[2] || kf[3] || kf[4]))
    {
        kf[0] = kf[2] = kf[4] = true;   // AES key sizes if not specified
        kf[1] = kf[3] = false;
    }

#if !defined(BLOCK_SIZE)
    bf[0] = test_args(argc, argv, 'b', '4');
    bf[1] = test_args(argc, argv, 'b', '5');
    bf[2] = test_args(argc, argv, 'b', '6');
    bf[3] = test_args(argc, argv, 'b', '7');
    bf[4] = test_args(argc, argv, 'b', '8');

    if(!(bf[0] || bf[1] || bf[2] || bf[3] || bf[4]))
    {
        bf[0] = true;                   // AES block size if not specified
        bf[1] = bf[2] = bf[3] = bf[4] = false;
    }
#else
    bf[0] = bf[1] = bf[2] = bf[3] = bf[4] = false;
    bf[(BLOCK_SIZE - 16) / 4] = true;
#endif

    for( int bi = 0; bi < 5; ++bi) if(bf[bi])
    {
#if defined(AES_DLL)
            if(fn.fn_blk_len) f_blk_len(&alg, 16 + 4 * bi);
#elif !defined(BLOCK_SIZE)
            f_blk_len(&alg, 16 + 4 * bi);
#else
            if(16 + 4 * bi != BLOCK_SIZE) continue;
#endif
        for(int ki = 0; ki < 5; ++ki) if(kf[ki])
        {
            do_tests(do_cmp, tyf, &alg, 16 + 4 * bi, 16 + 4 * ki);
        }
    }

#if defined(AES_DLL)
    if(h_dll) FreeLibrary(h_dll);
#endif

    cout << "\n\n";
    return 0;
}

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美日韩亚洲综合| 成人成人成人在线视频| 欧美国产一区视频在线观看| 亚洲成人激情综合网| 日韩久久精品一区| 波多野结衣一区二区三区| 石原莉奈一区二区三区在线观看| 国产亚洲视频系列| 在线观看一区二区视频| 国产精品一区二区三区四区| 亚洲精品国产a久久久久久| 久久女同精品一区二区| 一本高清dvd不卡在线观看| 国产在线视视频有精品| 午夜精品福利久久久| 成人欧美一区二区三区| 2017欧美狠狠色| 欧美一级高清片| 欧美午夜电影一区| 一道本成人在线| 成人激情黄色小说| 成人影视亚洲图片在线| 国产麻豆精品在线观看| 91福利国产成人精品照片| 国产一区二区三区在线观看免费视频| 亚洲一区二区三区四区五区黄| 国产精品国产三级国产专播品爱网 | 国产一区二区三区久久悠悠色av| 国产精品一线二线三线精华| 精品一区二区影视| 成人av在线看| 欧美美女黄视频| 欧美精品一区二区在线观看| 国产精品欧美久久久久一区二区| 一区在线中文字幕| 爽好久久久欧美精品| 精品一区二区免费在线观看| 99久久免费国产| 欧美日本一区二区三区| 国产视频一区在线播放| 亚洲精品国产一区二区精华液| 老汉av免费一区二区三区| 国产成人在线观看免费网站| 欧美视频一区在线| 国产精品成人免费在线| 国产一区二区在线影院| 欧美日韩精品一区二区| 国产视频视频一区| 美女精品一区二区| 91国产视频在线观看| 亚洲精品一区二区三区蜜桃下载| 亚洲精品中文在线影院| 国产不卡视频一区| 久久久国产精品不卡| 日本 国产 欧美色综合| 91福利在线看| 暴力调教一区二区三区| 精品成人佐山爱一区二区| 亚洲一二三专区| 色哟哟一区二区在线观看| 国产精品日产欧美久久久久| 国产毛片精品一区| 欧美精品一区二区三区四区| 日韩中文字幕区一区有砖一区| 91在线观看成人| 亚洲乱码中文字幕| 色综合欧美在线视频区| 韩国三级中文字幕hd久久精品| 日韩一级片在线播放| 免费成人在线观看视频| 日韩一级欧美一级| 国产综合色视频| 国产三级欧美三级日产三级99| 久久99精品久久只有精品| 精品成人一区二区| 波多野结衣在线一区| 中文字幕一区二区日韩精品绯色| 成人丝袜视频网| 亚洲综合无码一区二区| 538在线一区二区精品国产| 日韩av中文在线观看| 精品国产免费人成电影在线观看四季 | 欧美在线观看视频一区二区| 一区二区三区电影在线播| 在线日韩av片| 久久99日本精品| 亚洲人成7777| 久久先锋影音av| 欧美亚洲日本一区| 久久99精品国产.久久久久久| 中文字幕精品三区| 欧美日韩一级黄| 高清av一区二区| 欧美亚日韩国产aⅴ精品中极品| 午夜精品一区二区三区免费视频| 精品国产91久久久久久久妲己 | 欧美艳星brazzers| 国产二区国产一区在线观看| 亚洲成人av福利| 中文字幕av一区二区三区高| 7777精品伊人久久久大香线蕉完整版 | 亚洲国产日韩a在线播放性色| 欧美大片顶级少妇| 欧美美女黄视频| 欧洲激情一区二区| aaa亚洲精品| 欧美精品丝袜久久久中文字幕| 成人看片黄a免费看在线| 免费在线观看视频一区| 亚洲va国产天堂va久久en| 国产午夜亚洲精品不卡| 日韩欧美一级二级三级久久久| 欧美伊人精品成人久久综合97| 91网站最新网址| 北岛玲一区二区三区四区| 国产传媒久久文化传媒| 国产伦精一区二区三区| 国产一区二区成人久久免费影院| 精品亚洲成a人在线观看| 国内欧美视频一区二区| 国产一区在线观看视频| 国产美女娇喘av呻吟久久| 国内久久精品视频| 精品一区二区三区免费| 日韩福利视频网| 色偷偷久久人人79超碰人人澡 | 欧美一区二区三区四区视频| 欧美伊人久久久久久午夜久久久久| 懂色av一区二区夜夜嗨| 91免费版在线看| 欧美色老头old∨ideo| 538在线一区二区精品国产| 国产欧美一二三区| 亚洲最新视频在线观看| 丝袜美腿亚洲一区| 久久精品国产澳门| 91在线云播放| 日韩三级视频中文字幕| 国产精品丝袜一区| 亚洲va欧美va人人爽午夜| 国产麻豆视频精品| 91国在线观看| 国产欧美日韩在线| 亚洲国产成人av好男人在线观看| 免费观看在线色综合| 久草这里只有精品视频| av一二三不卡影片| 精品国产一区二区三区忘忧草| 久久精品视频在线看| 亚洲成av人影院| 波多野结衣中文一区| 欧美一级理论性理论a| 亚洲色图19p| 成人午夜碰碰视频| 欧美精品一区二区三区高清aⅴ| 亚洲另类在线一区| 成人va在线观看| 久久精品人人爽人人爽| 久久精品国产**网站演员| 在线观看不卡一区| 国产精品视频看| 久久99久国产精品黄毛片色诱| 色综合咪咪久久| 中文字幕视频一区| 成人蜜臀av电影| 久久精品一区二区三区av| 久久精品99国产精品日本| 欧美精品精品一区| 麻豆传媒一区二区三区| 精品盗摄一区二区三区| 精品一区二区三区在线播放| 日韩片之四级片| 蜜桃一区二区三区四区| 精品黑人一区二区三区久久| 另类成人小视频在线| 欧美一级一区二区| 狠狠色丁香久久婷婷综合丁香| 精品国产1区2区3区| 国产乱人伦偷精品视频免下载| 久久精品一区四区| 99视频在线观看一区三区| 国产综合久久久久久久久久久久| 久久久www成人免费毛片麻豆| 粉嫩高潮美女一区二区三区 | 中文字幕亚洲区| 91高清视频在线| 男女男精品视频| 国产精品福利一区| 一本色道a无线码一区v| 日本中文字幕不卡| 亚洲欧洲精品一区二区精品久久久| 91黄色免费版| 激情伊人五月天久久综合| 国产精品人成在线观看免费| 日本韩国欧美一区二区三区| 爽爽淫人综合网网站| 国产精品卡一卡二| 日韩无一区二区| 色综合天天综合| 国产在线观看一区二区|