| 848 | |
| 849 | |
| 850 | int hc128_test() |
| 851 | { |
| 852 | byte cipher[16]; |
| 853 | byte plain[16]; |
| 854 | |
| 855 | const char* keys[] = |
| 856 | { |
| 857 | "\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", |
| 858 | "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", |
| 859 | "\x00\x53\xA6\xF9\x4C\x9F\xF2\x45\x98\xEB\x3E\x91\xE4\x37\x8A\xDD", |
| 860 | "\x0F\x62\xB5\x08\x5B\xAE\x01\x54\xA7\xFA\x4D\xA0\xF3\x46\x99\xEC" |
| 861 | }; |
| 862 | |
| 863 | const char* ivs[] = |
| 864 | { |
| 865 | "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", |
| 866 | "\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", |
| 867 | "\x0D\x74\xDB\x42\xA9\x10\x77\xDE\x45\xAC\x13\x7A\xE1\x48\xAF\x16", |
| 868 | "\x28\x8F\xF6\x5D\xC4\x2B\x92\xF9\x60\xC7\x2E\x95\xFC\x63\xCA\x31" |
| 869 | }; |
| 870 | |
| 871 | testVector test_hc128[] = |
| 872 | { |
| 873 | testVector("\x00\x00\x00\x00\x00\x00\x00\x00", |
| 874 | "\x37\x86\x02\xB9\x8F\x32\xA7\x48"), |
| 875 | testVector("\x00\x00\x00\x00\x00\x00\x00\x00", |
| 876 | "\x33\x7F\x86\x11\xC6\xED\x61\x5F"), |
| 877 | testVector("\x00\x00\x00\x00\x00\x00\x00\x00", |
| 878 | "\x2E\x1E\xD1\x2A\x85\x51\xC0\x5A"), |
| 879 | testVector("\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", |
| 880 | "\x1C\xD8\xAE\xDD\xFE\x52\xE2\x17\xE8\x35\xD0\xB7\xE8\x4E\x29") |
| 881 | }; |
| 882 | |
| 883 | int times( sizeof(test_hc128) / sizeof(testVector) ); |
| 884 | for (int i = 0; i < times; ++i) { |
| 885 | HC128::Encryption enc; |
| 886 | HC128::Decryption dec; |
| 887 | |
| 888 | enc.SetKey((byte*)keys[i], (byte*)ivs[i]); |
| 889 | dec.SetKey((byte*)keys[i], (byte*)ivs[i]); |
| 890 | |
| 891 | enc.Process(cipher, test_hc128[i].input_, test_hc128[i].outLen_); |
| 892 | dec.Process(plain, cipher, test_hc128[i].outLen_); |
| 893 | |
| 894 | if (memcmp(plain, test_hc128[i].input_, test_hc128[i].outLen_)) |
| 895 | return -330 - i; |
| 896 | |
| 897 | if (memcmp(cipher, test_hc128[i].output_, test_hc128[i].outLen_)) |
| 898 | return -340 - i; |
| 899 | } |
| 900 | |
| 901 | return 0; |
| 902 | } |
| 903 | |
| 904 | |
| 905 | int des_test() |
no test coverage detected