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

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

?? aesgav.cpp

?? 算法從speakfs提取
?? CPP
?? 第 1 頁 / 共 2 頁
字號:
/*
 -------------------------------------------------------------------------
 Copyright (c) 2001, Dr Brian Gladman <brg@gladman.me.uk>, Worcester, UK.
 All rights reserved.

 LICENSE TERMS

 The free distribution and use of this software in 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 in binary form include the above copyright
      notice, this list of conditions and the following disclaimer
      in 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. 

 DISCLAIMER

 This software is provided 'as is' with no explicit or implied warranties
 in respect of its properties, including, but not limited to, correctness 
 and fitness for purpose.
 -------------------------------------------------------------------------
 Issue Date: 15/01/2002
*/

// AES Algorithm Test - Generate local test files for KAT and Monte Carlo
// tests and optionally compare these files with a  reference set of test
// files
//
// usage: aes_gav /t:[knec] /b:[45678] /k:[45678] [/c] 
//
// where:
//
// each of the symbols in square brakets can be used in any combination so
// that:
// 
//         /t:[knec]  selects the tests to be used
//         /b:[45678] selects the block lengths to be used (in 32-bit words)
//         /k:[45678] selects the key lengths to be used (in 32-bit words)
//         /c         selects the comparison of output and reference file(s)
// and:
//         k: generate ECB Known Answer Test files
//         n: generate ECB Known Answer Test files (new)
//         e: generate ECB Monte Carlo Test files
//         c: generate CBC Monte Carlo Test files
//
// The reference files have a ".txt" extension while those generated use
// ".txt" if in a different directory or ".dat" otherwise. The directory
// paths for files are set below. Note that, when compared with the NIST
// test vector sequences, this code implements one additional (all zero)
// test vector as the first vector in each set (test 0).

#ifdef AES_IN_CPP
#include "aescpp.h"
#else
#include "aes.h"
#endif
#include "aesaux.h"
#include "aestst.h"

using   std::cout;
using   std::ofstream;
using   std::ifstream;
using   std::ios;

#if defined(AES_DLL)
fn_ptrs fn;
#endif

// Outputs a test vector file header

void header(ofstream& outf, const int type, const word blen, const word klen)
{   char    buf[32];
    byte    dummy;

    outf << "==============================================";
    outf << "\nAuthor:    Dr B R Gladman (brg@gladman.me.uk)";
    outf << "\nTest:      " << (type < 6 ? "ECB " : "CBC ");
    switch(type)
    {
        case  0:    outf << "Variable Key Known Answer Tests"; break;
        case  2:    outf << "Variable Key Known Answer Tests"; break;
        case  1:    outf << "Variable Text Known Answer Tests"; break;
        case  3:    outf << "Variable Text Known Answer Tests"; break;
        case  4:
        case  6:    outf << "Monte Carlo (Encryption) Tests"; break;
        case  5:
        case  7:    outf << "Monte Carlo (Decryption) Tests"; break;
    }

    outf << "\nAlgorithm: Extended Rijndael (an AES Superset)\nFilename:  " 
         << file_name(buf, type, blen, klen)
         << "\n==============================================\n";

    block_out(block_len, &dummy, outf, 8 * blen);
    block_out(key_len, &dummy, outf, 8 * klen);
    outf << '\n';
}

// Test of Electronic Code Book (ECB) mode with Fixed Key and Variable Text

void ecb_vt(ofstream& outf, f_ctx* alg, const word blen, const word klen)
{   word      j;
    byte      pt[32], ct[32], key[32], dummy;

    block_clear(key, klen);                         // all zero key
    block_out(key_val, key, outf, klen);            // output key value
    f_enc_key(alg, key, klen);                      // set key value

    for(j = 0; j <= 8 * blen; ++j)                  // test vectors include
    {                                               // an all zero one
        block_out(test_no, &dummy, outf, j);        // output test number
        block_clear(pt, blen);                      // set all zero plain text
        if(j)                                       // set bit (j-1) if j <> 0
            *(pt + (j - 1) / 8) = 0x80 >> (j - 1) % 8;
        block_out(pt_val, pt, outf, blen);          // output plaintext
        f_enc_blk(alg, pt , ct);                    // do encryption
        block_out(ct_val, ct, outf, blen);          // output ciphertext
    }
}

// Test of Electronic Code Book (ECB) mode with Fixed Text and Variable Key

void ecb_vk(ofstream& outf, f_ctx* alg, const word blen, const word klen)
{   word      j;
    byte      pt[32], ct[32], key[32], dummy;

    block_clear(pt, blen);                          // all zero plaintext
    block_out(pt_val, pt, outf, blen);              // output plaintext

    for(j = 0; j <= 8 * klen; ++j)                  // 129, 193 or 257 tests
    {
        block_out(test_no, &dummy, outf, j);        // output test number
        block_clear(key, klen);                     // set all zero key
        if(j)                                       // set bit (j-1) if j <> 0
            *(key + (j - 1) / 8) = 0x80 >> (j - 1) % 8;
        block_out(key_val, key, outf, klen);        // output key value
        f_enc_key(alg, key, klen);                  // set key value
        f_enc_blk(alg, pt , ct);                    // alg.encrypt
        block_out(ct_val, ct, outf, blen);          // output ciphertext
    }
}

// Test of Electronic Code Book (ECB) mode with Fixed Key and Variable Text

void ecb_vtn(ofstream& outf, f_ctx* alg, const word blen, const word klen)
{   word      j;
    byte      pt[32], ct[32], key[32], *bp, dummy;

    block_clear(key, klen);                         // all zero key
    block_out(key_val, key, outf, klen);            // output key value
    f_enc_key(alg, key, klen);                      // set key value
    block_clear(pt, blen);                          // set all zero plain text

    for(j = 0; j < 16 * blen; ++j)                  
    {                                               
        block_out(test_no, &dummy, outf, j);        // output test number
        block_out(pt_val, pt, outf, blen);          // output plaintext
        f_enc_blk(alg, pt , ct);                    // do encryption
        block_out(ct_val, ct, outf, blen);          // output ciphertext
        bp = pt + blen - 1 - j / 8;
        if(j < 8 * blen)
            *bp |= (*bp << 1) | 1;
        else
            *(bp + blen) = *(bp + blen) << 1;
    }
}

// Test of Electronic Code Book (ECB) mode with Fixed Text and Variable Key

void ecb_vkn(ofstream& outf, f_ctx* alg, const word blen, const word klen)
{   word      j;
    byte      pt[32], ct[32], key[32], *bp, dummy;

    block_clear(pt, blen);                          // all zero plaintext
    block_out(pt_val, pt, outf, blen);              // output plaintext
    block_clear(key, klen);

    for(j = 0; j < 16 * klen; ++j)
    {
        block_out(test_no, &dummy, outf, j);        // output test number
        block_out(key_val, key, outf, klen);        // output key value
        f_enc_key(alg, key, klen);                  // set key value
        f_enc_blk(alg, pt , ct);                    // alg.encrypt
        block_out(ct_val, ct, outf, blen);          // output ciphertext
        bp = key + klen - 1 - j / 8;
        if(j < 8 * klen)
            *bp |= (*bp << 1) | 1;
        else
            *(bp + klen) = *(bp + klen) << 1;
    }
}

// Monte Carlo Encryption Test of Electronic Code Book (ECB) mode

void ecb_me(ofstream& outf, f_ctx* alg, const word blen, const word klen)
{   word  j, k;
    byte  pt[32], ct[64], key[32], dummy;

    block_clear(pt, blen);                          // clear initial plaintext
    block_clear(key, klen);                         // and key blocks
    block_copy(ct + blen, pt, blen);                // put plaintext in upper half
                                                    // of double length buffer
    for(j = 0; j < 400; j++)                        // 400 Monte Carlo tests
    {
        block_out(test_no, &dummy, outf, j);        // output test number
        block_out(key_val, key, outf, klen);        // output key
        block_out(pt_val, pt, outf, blen);          // output plaintext
        f_enc_key(alg, key, klen);                  // set the key

        for(k = 0; k < 5000; ++k)                   // 10000 encryptions alternating
        {                                           // upper and lower blocks in ct
            f_enc_blk(alg, ct + blen, ct); 
            f_enc_blk(alg, ct, ct + blen);
        }

        // compile next key as defined by NIST

        block_xor(key, ct + 2 * blen - klen, klen);
        block_out(ct_val, ct + blen, outf, blen);   // output ciphertext
        block_copy(pt, ct + blen, blen);            // copy cipertext as next plaintext
    }
}

// Monte Carlo Decryption Test of Electronic Code Book (ECB) mode

void ecb_md(ofstream& outf, f_ctx* alg, const word blen, const word klen)
{   word  j, k;
    byte  pt[32], ct[64], key[32], dummy;

    block_clear(pt, blen);                          // clear initial plaintext and key
    block_clear(key, klen);
    block_copy(ct + blen, pt, blen);                // copy plaintext into upper half
                                                    // of double length ciphertext block
    for(j = 0; j < 400; j++)                        // 400 Monte Carlo tests
    {
        block_out(test_no, &dummy, outf, j);        // output test number
        block_out(key_val, key, outf, klen);        // output key
        block_out(ct_val, pt, outf, blen);          // output plaintext
        f_dec_key(alg, key, klen);                  // set key

        for(k = 0; k < 5000; ++k)                   // 10000 decryptions alternating
        {                                           // upper and lower blocks in ct
            f_dec_blk(alg, ct + blen, ct); 
            f_dec_blk(alg, ct, ct + blen);
        }

        // compile next key as defined by NIST

        block_xor(key, ct + 2 * blen - klen, klen);
        block_out(pt_val, ct + blen, outf, blen);   // output ciphertext
        block_copy(pt, ct + blen, blen);            // set ciphertext as next plaintext
    }
}

// Monte Carlo Encryption Test of Cipher Block Chaining (CBC) mode

void cbc_me(ofstream& outf, f_ctx* alg, const word blen, const word klen)
{   word  j, k;
    byte  ct[64], key[32], dummy;

    block_clear(key, klen);                         // clear key: KEY[0]
    block_clear(ct, 2 * blen);                      // clear ct:  PT[0], ct + blen: IV[0]

    for(j = 0; j < 400; j++)                        // 400 Monte Carlo tests
    {
        block_out(test_no, &dummy, outf, j);        // output test number
        block_out(key_val, key, outf, klen);        // output key
        block_out(iv_val, ct + blen, outf, blen);   // output initialisation vector
        block_out(pt_val, ct, outf, blen);          // output plaintext
        f_enc_key(alg, key, klen);                  // set key

        for(k = 0; k < 5000; ++k)                   // 10000 encryptions, two at a time
        {
            block_xor(ct, ct + blen, blen);         // do CBC chaining
            f_enc_blk(alg, ct, ct);                 // do block encryption
            block_xor(ct + blen, ct, blen);         // do CBC chaining
            f_enc_blk(alg, ct + blen, ct + blen);   // do block encryption

        }

        block_out(ct_val, ct + blen, outf, blen);   // output ciphertext
        // compile next key as defined by NIST
        block_xor(key, ct + 2 * blen - klen, klen);
    }
}

// Monte Carlo Encryption Test of Cipher Block Chaining (CBC) mode

void cbc_md(ofstream& outf, f_ctx* alg, const word blen, const word klen)
{   word  j, k;
    byte  pt[32], ct[64], key[32], dummy;

    block_clear(key, klen);                         // clear key: KEY[0]
    block_clear(ct, 2 * blen);                      // clear ct: IV[0] ct + blen: CT[0]

    for(j = 0; j < 400; j++)                        // 400 Monte Carlo tests
    {
        block_out(test_no, &dummy, outf, j);        // output test number
        block_out(key_val, key, outf, klen);        // output key
        block_out(iv_val, ct, outf, blen);          // output initialisation vector
        block_out(ct_val, ct + blen, outf, blen);   // output ciphertext
        f_dec_key(alg, key, klen);                  // set key

        for(k = 0; k < 5000; ++k)                   // 10000 encryptions, two at a time
        {
            f_dec_blk(alg, ct + blen, pt);          // do block decryption

            block_xor(ct, pt, blen);                // do CBC chaining

            f_dec_blk(alg, ct, pt);                 // do block decryption

            block_xor(ct + blen, pt, blen);         // do CBC chaining
        }

        block_out(pt_val, ct + blen, outf, blen);   // output plaintext

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美午夜理伦三级在线观看| 久久精品国产99久久6| 国产成人av电影| 久久久久久久久久久久久久久99| 韩国中文字幕2020精品| 精品国产青草久久久久福利| 国产精品综合二区| 国产精品国产a级| 91久久久免费一区二区| 性做久久久久久免费观看欧美| 欧美日韩精品是欧美日韩精品| 天堂午夜影视日韩欧美一区二区| 欧美一区二区三区免费视频 | av电影一区二区| 亚洲综合色噜噜狠狠| 666欧美在线视频| 国精产品一区一区三区mba桃花| 国产午夜一区二区三区| 成人激情免费视频| 日韩影院免费视频| 欧美精品一区二区三区一线天视频| 国产精品一级片在线观看| 18欧美亚洲精品| 欧美一三区三区四区免费在线看| 国产麻豆9l精品三级站| 亚洲欧美一区二区三区国产精品 | 国产精品久久久久9999吃药| 色偷偷久久人人79超碰人人澡 | 国内精品视频666| 亚洲欧美日韩国产综合在线| 欧美一级一级性生活免费录像| 国产精品自拍毛片| 亚洲电影在线免费观看| 久久新电视剧免费观看| 在线亚洲免费视频| 国产在线精品免费| 亚洲一区二区综合| 中文一区二区完整视频在线观看| 欧美日韩一级二级| av综合在线播放| 精品一区二区三区免费观看| 亚洲女与黑人做爰| 久久亚洲精品国产精品紫薇 | 91精品国产综合久久精品图片| 国产经典欧美精品| 日韩精品乱码免费| 亚洲欧洲日韩综合一区二区| 欧美一区二区在线看| 91美女在线视频| 国产成人精品综合在线观看 | 另类人妖一区二区av| 亚洲精品菠萝久久久久久久| 久久久久九九视频| 日韩三级视频中文字幕| 色婷婷综合久久久久中文一区二区 | 亚洲免费观看在线视频| 久久久久国产精品麻豆ai换脸| 91精品国产高清一区二区三区蜜臀| 99精品欧美一区二区蜜桃免费 | 亚洲高清视频在线| 一区二区三区电影在线播| 中文字幕巨乱亚洲| 欧美激情综合五月色丁香| 日韩免费观看2025年上映的电影| 欧美天堂亚洲电影院在线播放| 99久久婷婷国产综合精品| 国产精品亚洲一区二区三区妖精| 九九久久精品视频| 免费看欧美女人艹b| 天天综合色天天综合| 亚洲一区二区三区四区在线免费观看 | 91天堂素人约啪| 成人福利电影精品一区二区在线观看| 久久精品国产一区二区三| 日韩高清欧美激情| 午夜精品视频在线观看| 亚洲1区2区3区4区| 亚洲第一会所有码转帖| 亚洲国产成人av| 亚洲不卡一区二区三区| 午夜精品久久久久久久久久| 亚洲桃色在线一区| 亚洲免费观看在线观看| 亚洲电影在线免费观看| 爽好久久久欧美精品| 日日夜夜精品免费视频| 免费不卡在线视频| 国产一区不卡视频| 成人动漫视频在线| 91麻豆福利精品推荐| 91一区二区在线观看| 欧美在线观看视频一区二区| 欧美日韩在线观看一区二区| 欧美日产国产精品| 日韩精品中文字幕一区二区三区 | 国产视频视频一区| 中文字幕欧美一| 亚洲一区二三区| 青青国产91久久久久久| 国产精品91xxx| 色呦呦一区二区三区| 欧美日韩在线播放一区| 欧美一区二区福利在线| 亚洲国产精品成人久久综合一区| 亚洲码国产岛国毛片在线| 丝袜脚交一区二区| 国产精品原创巨作av| 91美女片黄在线观看91美女| 欧美一区二区三区四区视频| 久久亚洲免费视频| 亚洲曰韩产成在线| 毛片一区二区三区| 波多野结衣在线aⅴ中文字幕不卡| 色婷婷激情综合| 日韩精品一区二区三区视频| 国产精品久久久久久一区二区三区| 一区二区三区国产精品| 久久99精品久久久久久动态图 | 国产精品免费久久久久| 亚洲一区二区视频| 国产精品综合网| 欧美日韩免费在线视频| 久久精品视频免费| 亚洲.国产.中文慕字在线| 懂色一区二区三区免费观看| 欧美嫩在线观看| 国产精品五月天| 蜜桃视频一区二区三区 | 国产aⅴ精品一区二区三区色成熟| 欧美在线三级电影| 国产视频一区二区在线| 日本视频中文字幕一区二区三区| 国产91丝袜在线18| 7777精品伊人久久久大香线蕉的 | 日韩一区二区三区高清免费看看| 国产精品久久久久精k8| 久久精品99国产精品| 91豆麻精品91久久久久久| 久久久五月婷婷| 图片区小说区区亚洲影院| 成人av电影观看| www亚洲一区| 奇米精品一区二区三区四区| 91高清视频免费看| 亚洲欧洲在线观看av| 国产福利一区二区三区视频| 91精品麻豆日日躁夜夜躁| 亚洲精品中文在线| 成人国产精品免费| 中文字幕av一区二区三区免费看| 美女一区二区久久| 91精品国产色综合久久不卡电影| 一区二区成人在线| 一本在线高清不卡dvd| 国产精品人妖ts系列视频| 国产精品自拍网站| 久久一区二区视频| 国产一区二区三区在线看麻豆| 日韩一级二级三级| 日韩二区在线观看| 69久久99精品久久久久婷婷| 一区二区免费看| 色菇凉天天综合网| 亚洲精品国久久99热| av中文字幕一区| 亚洲老妇xxxxxx| 91麻豆精品在线观看| 亚洲欧美成人一区二区三区| 国产亚洲精品bt天堂精选| 久久精品72免费观看| 久久婷婷久久一区二区三区| 国产美女一区二区三区| 国产婷婷一区二区| 成人美女视频在线观看18| 国产欧美日韩精品a在线观看| 国产福利91精品一区| 欧美国产97人人爽人人喊| 国产成人午夜精品影院观看视频 | 午夜久久久久久久久久一区二区| 在线视频你懂得一区| 亚洲国产精品久久一线不卡| 在线观看日韩一区| 午夜免费久久看| 日韩午夜av一区| 国产一区二区三区在线观看精品| 国产女人18水真多18精品一级做| 粉嫩一区二区三区性色av| 亚洲日穴在线视频| 欧美日本高清视频在线观看| 日韩电影免费一区| 久久久久久久免费视频了| 国产a精品视频| 亚洲第四色夜色| 久久综合久久鬼色| av在线播放一区二区三区| 亚洲国产日韩在线一区模特| 欧美一区在线视频| 成人免费视频视频| 午夜精品一区二区三区电影天堂| 精品国产sm最大网站|