summaryrefslogtreecommitdiff
path: root/extra/yassl/taocrypt/test
diff options
context:
space:
mode:
authorunknown <msvensson@shellback.(none)>2006-05-22 15:49:57 +0200
committerunknown <msvensson@shellback.(none)>2006-05-22 15:49:57 +0200
commitb959d36bce2c71b45b65ae86b730feb108951760 (patch)
tree435cf1e3d081d3837f4215a39c9b798e621de571 /extra/yassl/taocrypt/test
parent07188950aefdebe5d55af86b14fe8179e52b5987 (diff)
downloadmariadb-git-b959d36bce2c71b45b65ae86b730feb108951760.tar.gz
Import from yaSSL
Fixes for HPUX etc. Don't define exceptions operator new on hpux as the linker will look for the function extra/yassl/examples/echoserver/echoserver.cpp: Import patch yassl.diff extra/yassl/include/openssl/ssl.h: Import patch yassl.diff extra/yassl/include/socket_wrapper.hpp: Import patch yassl.diff extra/yassl/src/handshake.cpp: Import patch yassl.diff extra/yassl/src/socket_wrapper.cpp: Import patch yassl.diff extra/yassl/src/ssl.cpp: Import patch yassl.diff extra/yassl/src/template_instnt.cpp: Import patch yassl.diff extra/yassl/src/timer.cpp: Import patch yassl.diff extra/yassl/src/yassl_error.cpp: Import patch yassl.diff extra/yassl/src/yassl_int.cpp: Import patch yassl.diff extra/yassl/taocrypt/include/block.hpp: Import patch yassl.diff extra/yassl/taocrypt/include/md4.hpp: Import patch yassl.diff extra/yassl/taocrypt/include/runtime.hpp: Import patch yassl.diff extra/yassl/taocrypt/src/md4.cpp: Import patch yassl.diff extra/yassl/taocrypt/src/template_instnt.cpp: Import patch yassl.diff extra/yassl/taocrypt/taocrypt.dsp: Import patch yassl.diff extra/yassl/taocrypt/test/test.cpp: Import patch yassl.diff extra/yassl/testsuite/test.hpp: Import patch yassl.diff extra/yassl/mySTL/stdexcept.hpp: Don't define exceptions operator new on hpux as the linker will look for the function extra/yassl/taocrypt/src/Makefile.am: Add md4.cpp to Makefile.am
Diffstat (limited to 'extra/yassl/taocrypt/test')
-rw-r--r--extra/yassl/taocrypt/test/test.cpp53
1 files changed, 53 insertions, 0 deletions
diff --git a/extra/yassl/taocrypt/test/test.cpp b/extra/yassl/taocrypt/test/test.cpp
index b8618b18d47..28ef73dfac8 100644
--- a/extra/yassl/taocrypt/test/test.cpp
+++ b/extra/yassl/taocrypt/test/test.cpp
@@ -8,6 +8,7 @@
#include "sha.hpp"
#include "md5.hpp"
#include "md2.hpp"
+#include "md4.hpp"
#include "ripemd.hpp"
#include "hmac.hpp"
#include "arc4.hpp"
@@ -30,6 +31,7 @@ using TaoCrypt::word32;
using TaoCrypt::SHA;
using TaoCrypt::MD5;
using TaoCrypt::MD2;
+using TaoCrypt::MD4;
using TaoCrypt::RIPEMD160;
using TaoCrypt::HMAC;
using TaoCrypt::ARC4;
@@ -89,6 +91,7 @@ void file_test(int, char**);
int sha_test();
int md5_test();
int md2_test();
+int md4_test();
int ripemd_test();
int hmac_test();
int arc4_test();
@@ -165,6 +168,11 @@ void taocrypt_test(void* args)
else
printf( "MD2 test passed!\n");
+ if ( (ret = md4_test()) )
+ err_sys("MD4 test failed!\n", ret);
+ else
+ printf( "MD4 test passed!\n");
+
if ( (ret = ripemd_test()) )
err_sys("RIPEMD test failed!\n", ret);
else
@@ -348,6 +356,51 @@ int md5_test()
}
+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;