// Copyright (C) 2007 Davis E. King (davis@dlib.net) // License: Boost Software License See LICENSE.txt for the full license. #include #include #include #include #include #include "tester.h" namespace { using namespace test; using namespace dlib; using namespace std; logger dlog("test.md5"); void md5_test ( ) /*! ensures - runs tests on the md5 stuff compliance with the specs !*/ { DLIB_TEST(md5 ("") == "d41d8cd98f00b204e9800998ecf8427e"); DLIB_TEST(md5 ("a") == "0cc175b9c0f1b6a831c399e269772661"); DLIB_TEST(md5 ("abc") == "900150983cd24fb0d6963f7d28e17f72"); DLIB_TEST(md5 ("message digest") == "f96b697d7cb7938d525a2f31aaf161d0"); DLIB_TEST(md5 ("abcdefghijklmnopqrstuvwxyz") == "c3fcd3d76192e4007dfb496cca67e13b"); DLIB_TEST(md5 ("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789") == "d174ab98d277d9f5a5611c2c9f419d9f"); DLIB_TEST(md5 ("12345678901234567890123456789012345678901234567890123456789012345678901234567890") == "57edf4a22be3c955ac49da2e2107b67a"); // make sure the two versions of md5() always agree for (int num = 0; num < 2000; ++num) { std::string temp; for (int i = 0; i < num; ++i) temp += 'a'; istringstream str(temp); DLIB_TEST(md5(temp) == md5(str)); } } class md5_tester : public tester { public: md5_tester ( ) : tester ("test_md5", "Runs tests on the md5 component.") {} void perform_test ( ) { md5_test(); } } a; }