72 lines
1.7 KiB
C++
72 lines
1.7 KiB
C++
// Copyright (C) 2007 Davis E. King (davis@dlib.net)
|
|
// License: Boost Software License See LICENSE.txt for the full license.
|
|
|
|
|
|
#include <dlib/md5.h>
|
|
#include <sstream>
|
|
#include <string>
|
|
#include <cstdlib>
|
|
#include <ctime>
|
|
|
|
#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;
|
|
|
|
}
|
|
|
|
|
|
|