⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 test.cpp

📁 这个文件是windows mysql源码
💻 CPP
📖 第 1 页 / 共 3 页
字号:
    testVector test_sha[] =    {        testVector("abc",                 "\xdd\xaf\x35\xa1\x93\x61\x7a\xba\xcc\x41\x73\x49\xae\x20\x41"                 "\x31\x12\xe6\xfa\x4e\x89\xa9\x7e\xa2\x0a\x9e\xee\xe6\x4b\x55"                 "\xd3\x9a\x21\x92\x99\x2a\x27\x4f\xc1\xa8\x36\xba\x3c\x23\xa3"                 "\xfe\xeb\xbd\x45\x4d\x44\x23\x64\x3c\xe8\x0e\x2a\x9a\xc9\x4f"                 "\xa5\x4c\xa4\x9f"),        testVector("abcdefghbcdefghicdefghijdefghijkefghijklfghijklmghijklmnhi"                   "jklmnoijklmnopjklmnopqklmnopqrlmnopqrsmnopqrstnopqrstu",                  "\x8e\x95\x9b\x75\xda\xe3\x13\xda\x8c\xf4\xf7\x28\x14\xfc\x14"                 "\x3f\x8f\x77\x79\xc6\xeb\x9f\x7f\xa1\x72\x99\xae\xad\xb6\x88"                 "\x90\x18\x50\x1d\x28\x9e\x49\x00\xf7\xe4\x33\x1b\x99\xde\xc4"                 "\xb5\x43\x3a\xc7\xd3\x29\xee\xb6\xdd\x26\x54\x5e\x96\xe5\x5b"                 "\x87\x4b\xe9\x09")    };    int times( sizeof(test_sha) / sizeof(testVector) );    for (int i = 0; i < times; ++i) {        sha.Update(test_sha[i].input_, test_sha[i].inLen_);        sha.Final(hash);        if (memcmp(hash, test_sha[i].output_, SHA512::DIGEST_SIZE) != 0)            return -1 - i;    }    return 0;}int sha384_test(){    SHA384 sha;    byte   hash[SHA384::DIGEST_SIZE];    testVector test_sha[] =    {        testVector("abc",                 "\xcb\x00\x75\x3f\x45\xa3\x5e\x8b\xb5\xa0\x3d\x69\x9a\xc6\x50"                 "\x07\x27\x2c\x32\xab\x0e\xde\xd1\x63\x1a\x8b\x60\x5a\x43\xff"                 "\x5b\xed\x80\x86\x07\x2b\xa1\xe7\xcc\x23\x58\xba\xec\xa1\x34"                 "\xc8\x25\xa7"),        testVector("abcdefghbcdefghicdefghijdefghijkefghijklfghijklmghijklmnhi"                   "jklmnoijklmnopjklmnopqklmnopqrlmnopqrsmnopqrstnopqrstu",                  "\x09\x33\x0c\x33\xf7\x11\x47\xe8\x3d\x19\x2f\xc7\x82\xcd\x1b"                 "\x47\x53\x11\x1b\x17\x3b\x3b\x05\xd2\x2f\xa0\x80\x86\xe3\xb0"                 "\xf7\x12\xfc\xc7\xc7\x1a\x55\x7e\x2d\xb9\x66\xc3\xe9\xfa\x91"                 "\x74\x60\x39")    };    int times( sizeof(test_sha) / sizeof(testVector) );    for (int i = 0; i < times; ++i) {        sha.Update(test_sha[i].input_, test_sha[i].inLen_);        sha.Final(hash);        if (memcmp(hash, test_sha[i].output_, SHA384::DIGEST_SIZE) != 0)            return -1 - i;    }    return 0;}#endif // WORD64_AVAILABLEint sha224_test(){    SHA224 sha;    byte   hash[SHA224::DIGEST_SIZE];    testVector test_sha[] =    {        testVector("abc",                 "\x23\x09\x7d\x22\x34\x05\xd8\x22\x86\x42\xa4\x77\xbd\xa2\x55"                 "\xb3\x2a\xad\xbc\xe4\xbd\xa0\xb3\xf7\xe3\x6c\x9d\xa7"),        testVector("abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq",                 "\x75\x38\x8b\x16\x51\x27\x76\xcc\x5d\xba\x5d\xa1\xfd\x89\x01"                 "\x50\xb0\xc6\x45\x5c\xb4\xf5\x8b\x19\x52\x52\x25\x25")    };    int times( sizeof(test_sha) / sizeof(testVector) );    for (int i = 0; i < times; ++i) {        sha.Update(test_sha[i].input_, test_sha[i].inLen_);        sha.Final(hash);        if (memcmp(hash, test_sha[i].output_, SHA224::DIGEST_SIZE) != 0)            return -1 - i;    }    return 0;}int md5_test(){    MD5  md5;    byte hash[MD5::DIGEST_SIZE];    testVector test_md5[] =    {        testVector("abc",                  "\x90\x01\x50\x98\x3c\xd2\x4f\xb0\xd6\x96\x3f\x7d\x28\xe1\x7f"                 "\x72"),        testVector("message digest",                  "\xf9\x6b\x69\x7d\x7c\xb7\x93\x8d\x52\x5a\x2f\x31\xaa\xf1\x61"                 "\xd0"),        testVector("abcdefghijklmnopqrstuvwxyz",                 "\xc3\xfc\xd3\xd7\x61\x92\xe4\x00\x7d\xfb\x49\x6c\xca\x67\xe1"                 "\x3b"),        testVector("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz012345"                 "6789",                 "\xd1\x74\xab\x98\xd2\x77\xd9\xf5\xa5\x61\x1c\x2c\x9f\x41\x9d"                 "\x9f"),        testVector("1234567890123456789012345678901234567890123456789012345678"                 "9012345678901234567890",                 "\x57\xed\xf4\xa2\x2b\xe3\xc9\x55\xac\x49\xda\x2e\x21\x07\xb6"                 "\x7a")    };    int times( sizeof(test_md5) / sizeof(testVector) );    for (int i = 0; i < times; ++i) {        md5.Update(test_md5[i].input_, test_md5[i].inLen_);        md5.Final(hash);        if (memcmp(hash, test_md5[i].output_, MD5::DIGEST_SIZE) != 0)            return -5 - i;    }    return 0;}int md4_test(){    MD4  md4;    byte hash[MD4::DIGEST_SIZE];    testVector test_md4[] =    {        testVector("",                 "\x31\xd6\xcf\xe0\xd1\x6a\xe9\x31\xb7\x3c\x59\xd7\xe0\xc0\x89"                 "\xc0"),        testVector("a",                 "\xbd\xe5\x2c\xb3\x1d\xe3\x3e\x46\x24\x5e\x05\xfb\xdb\xd6\xfb"                 "\x24"),        testVector("abc",                  "\xa4\x48\x01\x7a\xaf\x21\xd8\x52\x5f\xc1\x0a\xe8\x7a\xa6\x72"                 "\x9d"),        testVector("message digest",                  "\xd9\x13\x0a\x81\x64\x54\x9f\xe8\x18\x87\x48\x06\xe1\xc7\x01"                 "\x4b"),        testVector("abcdefghijklmnopqrstuvwxyz",                 "\xd7\x9e\x1c\x30\x8a\xa5\xbb\xcd\xee\xa8\xed\x63\xdf\x41\x2d"                 "\xa9"),        testVector("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz012345"                 "6789",                 "\x04\x3f\x85\x82\xf2\x41\xdb\x35\x1c\xe6\x27\xe1\x53\xe7\xf0"                 "\xe4"),        testVector("1234567890123456789012345678901234567890123456789012345678"                 "9012345678901234567890",                 "\xe3\x3b\x4d\xdc\x9c\x38\xf2\x19\x9c\x3e\x7b\x16\x4f\xcc\x05"                 "\x36")    };    int times( sizeof(test_md4) / sizeof(testVector) );    for (int i = 0; i < times; ++i) {        md4.Update(test_md4[i].input_, test_md4[i].inLen_);        md4.Final(hash);        if (memcmp(hash, test_md4[i].output_, MD4::DIGEST_SIZE) != 0)            return -5 - i;    }    return 0;}int md2_test(){    MD2  md5;    byte hash[MD2::DIGEST_SIZE];    testVector test_md2[] =    {        testVector("",                   "\x83\x50\xe5\xa3\xe2\x4c\x15\x3d\xf2\x27\x5c\x9f\x80\x69"                   "\x27\x73"),        testVector("a",                   "\x32\xec\x01\xec\x4a\x6d\xac\x72\xc0\xab\x96\xfb\x34\xc0"                   "\xb5\xd1"),        testVector("abc",                   "\xda\x85\x3b\x0d\x3f\x88\xd9\x9b\x30\x28\x3a\x69\xe6\xde"                   "\xd6\xbb"),        testVector("message digest",                   "\xab\x4f\x49\x6b\xfb\x2a\x53\x0b\x21\x9f\xf3\x30\x31\xfe"                   "\x06\xb0"),        testVector("abcdefghijklmnopqrstuvwxyz",                   "\x4e\x8d\xdf\xf3\x65\x02\x92\xab\x5a\x41\x08\xc3\xaa\x47"                   "\x94\x0b"),        testVector("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"                   "0123456789",                   "\xda\x33\xde\xf2\xa4\x2d\xf1\x39\x75\x35\x28\x46\xc3\x03"                   "\x38\xcd"),        testVector("12345678901234567890123456789012345678901234567890123456"                   "789012345678901234567890",                   "\xd5\x97\x6f\x79\xd8\x3d\x3a\x0d\xc9\x80\x6c\x3c\x66\xf3"                   "\xef\xd8")    };    int times( sizeof(test_md2) / sizeof(testVector) );    for (int i = 0; i < times; ++i) {        md5.Update(test_md2[i].input_, test_md2[i].inLen_);        md5.Final(hash);        if (memcmp(hash, test_md2[i].output_, MD2::DIGEST_SIZE) != 0)            return -10 - i;    }    return 0;}int ripemd_test(){    RIPEMD160  ripe160;    byte hash[RIPEMD160::DIGEST_SIZE];    testVector test_ripemd[] =    {        testVector("",                   "\x9c\x11\x85\xa5\xc5\xe9\xfc\x54\x61\x28\x08\x97\x7e\xe8"                   "\xf5\x48\xb2\x25\x8d\x31"),        testVector("a",                   "\x0b\xdc\x9d\x2d\x25\x6b\x3e\xe9\xda\xae\x34\x7b\xe6\xf4"                   "\xdc\x83\x5a\x46\x7f\xfe"),        testVector("abc",                   "\x8e\xb2\x08\xf7\xe0\x5d\x98\x7a\x9b\x04\x4a\x8e\x98\xc6"                   "\xb0\x87\xf1\x5a\x0b\xfc"),        testVector("message digest",                   "\x5d\x06\x89\xef\x49\xd2\xfa\xe5\x72\xb8\x81\xb1\x23\xa8"                   "\x5f\xfa\x21\x59\x5f\x36"),        testVector("abcdefghijklmnopqrstuvwxyz",                   "\xf7\x1c\x27\x10\x9c\x69\x2c\x1b\x56\xbb\xdc\xeb\x5b\x9d"                   "\x28\x65\xb3\x70\x8d\xbc"),        testVector("abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq",                   "\x12\xa0\x53\x38\x4a\x9c\x0c\x88\xe4\x05\xa0\x6c\x27\xdc"                   "\xf4\x9a\xda\x62\xeb\x2b"),        testVector("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123"                   "456789",                   "\xb0\xe2\x0b\x6e\x31\x16\x64\x02\x86\xed\x3a\x87\xa5\x71"                   "\x30\x79\xb2\x1f\x51\x89"),        testVector("12345678901234567890123456789012345678901234567890123456"                   "789012345678901234567890",                   "\x9b\x75\x2e\x45\x57\x3d\x4b\x39\xf4\xdb\xd3\x32\x3c\xab"                   "\x82\xbf\x63\x32\x6b\xfb"),    };    int times( sizeof(test_ripemd) / sizeof(testVector) );    for (int i = 0; i < times; ++i) {        ripe160.Update(test_ripemd[i].input_, test_ripemd[i].inLen_);        ripe160.Final(hash);        if (memcmp(hash, test_ripemd[i].output_, RIPEMD160::DIGEST_SIZE) != 0)            return -100 - i;    }    return 0;}int hmac_test(){    HMAC<MD5> hmacMD5;    byte hash[MD5::DIGEST_SIZE];    const char* keys[]=    {        "\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b",        "Jefe",        "\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA"    };    testVector test_hmacMD5[] =     {        testVector("Hi There",                 "\x92\x94\x72\x7a\x36\x38\xbb\x1c\x13\xf4\x8e\xf8\x15\x8b\xfc"                 "\x9d"),        testVector("what do ya want for nothing?",                 "\x75\x0c\x78\x3e\x6a\xb0\xb5\x03\xea\xa8\x6e\x31\x0a\x5d\xb7"                 "\x38"),        testVector("\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD"                 "\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD"                 "\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD"                 "\xDD\xDD\xDD\xDD\xDD\xDD",                 "\x56\xbe\x34\x52\x1d\x14\x4c\x88\xdb\xb8\xc7\x33\xf0\xe8\xb3"                 "\xf6")    };    int times( sizeof(test_hmacMD5) / sizeof(testVector) );    for (int i = 0; i < times; ++i) {        hmacMD5.SetKey((byte*)keys[i], strlen(keys[i]));        hmacMD5.Update(test_hmacMD5[i].input_, test_hmacMD5[i].inLen_);        hmacMD5.Final(hash);        if (memcmp(hash, test_hmacMD5[i].output_, MD5::DIGEST_SIZE) != 0)            return -20 - i;    }    return 0;}int arc4_test(){    byte cipher[16];    byte plain[16];    const char* keys[] =     {                   "\x01\x23\x45\x67\x89\xab\xcd\xef",        "\x01\x23\x45\x67\x89\xab\xcd\xef",        "\x00\x00\x00\x00\x00\x00\x00\x00",        "\xef\x01\x23\x45"    };    testVector test_arc4[] =    {        testVector("\x01\x23\x45\x67\x89\xab\xcd\xef",                   "\x75\xb7\x87\x80\x99\xe0\xc5\x96"),        testVector("\x00\x00\x00\x00\x00\x00\x00\x00",                   "\x74\x94\xc2\xe7\x10\x4b\x08\x79"),        testVector("\x00\x00\x00\x00\x00\x00\x00\x00",                   "\xde\x18\x89\x41\xa3\x37\x5d\x3a"),        testVector("\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00",                   "\xd6\xa1\x41\xa7\xec\x3c\x38\xdf\xbd\x61")    };    int times( sizeof(test_arc4) / sizeof(testVector) );    for (int i = 0; i < times; ++i) {        ARC4::Encryption enc;        ARC4::Decryption dec;        enc.SetKey((byte*)keys[i], strlen(keys[i]));        dec.SetKey((byte*)keys[i], strlen(keys[i]));        enc.Process(cipher, test_arc4[i].input_, test_arc4[i].outLen_);        dec.Process(plain,  cipher, test_arc4[i].outLen_);        if (memcmp(plain, test_arc4[i].input_, test_arc4[i].outLen_))            return -30 - i;        if (memcmp(cipher, test_arc4[i].output_, test_arc4[i].outLen_))            return -40 - i;    }    return 0;}int des_test(){    //ECB mode    DES_ECB_Encryption enc;    DES_ECB_Decryption dec;    const int sz = TaoCrypt::DES_BLOCK_SIZE * 3;    const byte key[] = { 0x01,0x23,0x45,0x67,0x89,0xab,0xcd,0xef };    const byte iv[] =  { 0x12,0x34,0x56,0x78,0x90,0xab,0xcd,0xef };    enc.SetKey(key, sizeof(key));    enc.Process(cipher, msg, sz);    dec.SetKey(key, sizeof(key));    dec.Process(plain, cipher, sz);    if (memcmp(plain, msg, sz))        return -50;    const byte verify1[] =     {        0xf9,0x99,0xb8,0x8e,0xaf,0xea,0x71,0x53,        0x6a,0x27,0x17,0x87,0xab,0x88,0x83,0xf9,        0x89,0x3d,0x51,0xec,0x4b,0x56,0x3b,0x53    };    if (memcmp(cipher, verify1, sz))        return -51;    // CBC mode    DES_CBC_Encryption enc2;    DES_CBC_Decryption dec2;    enc2.SetKey(key, sizeof(key), iv);    enc2.Process(cipher, msg, sz);    dec2.SetKey(key, sizeof(key), iv);    dec2.Process(plain, cipher, sz);    if (memcmp(plain, msg, sz))        return -52;    const byte verify2[] =     {

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -