X-Git-Url: https://git.stg.codes/stg.git/blobdiff_plain/4e95741287ce4385f16eaf9d621cedd4dccbcfe3..92430d277d40e31dcdcd527047e40ee5a19af399:/tests/test_crypto.cpp diff --git a/tests/test_crypto.cpp b/tests/test_crypto.cpp index 47dbcbb4..8db8ab72 100644 --- a/tests/test_crypto.cpp +++ b/tests/test_crypto.cpp @@ -423,11 +423,48 @@ namespace tut BLOWFISH_CTX ctx; InitContext("pr7Hhen", 7, &ctx); - char longTest[] = "abcdefghijklmnopqrstuvwxyz 0123456789 ABCDEFGHIJKLMNOPQRSTUVWXYZ"; - EncryptString(longTest, longTest, sizeof(longTest), &ctx); + std::string source("abcdefghijklmnopqrstuvwxyz 0123456789 ABCDEFGHIJKLMNOPQRSTUVWXYZ"); + char longTest[source.length() + 8]; + EncryptString(longTest, source.c_str(), source.length() + 1, &ctx); DecryptString(longTest, longTest, sizeof(longTest), &ctx); - ensure("DecryptString(EncryptString(longTest)) == longTest", equalString(longTest, "abcdefghijklmnopqrstuvwxyz 0123456789 ABCDEFGHIJKLMNOPQRSTUVWXYZ", sizeof(longTest))); + ensure_equals("DecryptString(EncryptString(longTest)) == longTest", source, std::string(longTest)); + } + + template<> + template<> + void testobject::test<8>() + { + set_test_name("Check old string encryption"); + + BLOWFISH_CTX ctx; + InitContext("123456", 7, &ctx); + const unsigned char source[] = {0xe9, 0xfe, 0xcb, 0xc5, 0xad, 0x3e, 0x87, 0x39, + 0x3d, 0xd5, 0xf4, 0xed, 0xb0, 0x15, 0xe6, 0xcb, + 0x3d, 0xd5, 0xf4, 0xed, 0xb0, 0x15, 0xe6, 0xcb, + 0x3d, 0xd5, 0xf4, 0xed, 0xb0, 0x15, 0xe6, 0xcb}; + char res[32]; + DecryptString(res, source, 32, &ctx); + + ensure_equals("DecryptString(...) == 'admin'", std::string(res), "admin"); + } + + template<> + template<> + void testobject::test<9>() + { + set_test_name("Check new string encryption"); + + BLOWFISH_CTX ctx; + InitContext("123456", 7, &ctx); + const unsigned char source[] = {0xe9, 0xfe, 0xcb, 0xc5, 0xad, 0x3e, 0x87, 0x39, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; + char res[32]; + DecryptString(res, source, 32, &ctx); + + ensure_equals("DecryptString(...) == 'admin'", std::string(res), "admin"); } }