added md2 and md4 test vectors
authorAndreas Steffen <andreas.steffen@strongswan.org>
Thu, 18 Jun 2009 07:32:57 +0000 (09:32 +0200)
committerAndreas Steffen <andreas.steffen@strongswan.org>
Thu, 18 Jun 2009 07:32:57 +0000 (09:32 +0200)
src/libstrongswan/plugins/test_vectors/Makefile.am
src/libstrongswan/plugins/test_vectors/test_vectors.h
src/libstrongswan/plugins/test_vectors/test_vectors/md2.c [new file with mode: 0644]
src/libstrongswan/plugins/test_vectors/test_vectors/md4.c [new file with mode: 0644]

index 4df30a6..813e7e9 100644 (file)
@@ -18,6 +18,8 @@ libstrongswan_test_vectors_la_SOURCES = \
        test_vectors/rc5.c \
        test_vectors/serpent_cbc.c \
        test_vectors/twofish_cbc.c \
+       test_vectors/md2.c \
+       test_vectors/md4.c \
        test_vectors/md5.c \
        test_vectors/md5_hmac.c \
        test_vectors/sha1.c \
index a85f8a9..7ef154b 100644 (file)
@@ -73,6 +73,20 @@ TEST_VECTOR_SIGNER(sha512_hmac_s1)
 TEST_VECTOR_SIGNER(sha512_hmac_s2)
 TEST_VECTOR_SIGNER(sha512_hmac_s3)
 
+TEST_VECTOR_HASHER(md2_1)
+TEST_VECTOR_HASHER(md2_2)
+TEST_VECTOR_HASHER(md2_3)
+TEST_VECTOR_HASHER(md2_4)
+TEST_VECTOR_HASHER(md2_5)
+TEST_VECTOR_HASHER(md2_6)
+TEST_VECTOR_HASHER(md2_7)
+TEST_VECTOR_HASHER(md4_1)
+TEST_VECTOR_HASHER(md4_2)
+TEST_VECTOR_HASHER(md4_3)
+TEST_VECTOR_HASHER(md4_4)
+TEST_VECTOR_HASHER(md4_5)
+TEST_VECTOR_HASHER(md4_6)
+TEST_VECTOR_HASHER(md4_7)
 TEST_VECTOR_HASHER(md5_1)
 TEST_VECTOR_HASHER(md5_2)
 TEST_VECTOR_HASHER(md5_3)
diff --git a/src/libstrongswan/plugins/test_vectors/test_vectors/md2.c b/src/libstrongswan/plugins/test_vectors/test_vectors/md2.c
new file mode 100644 (file)
index 0000000..3348e12
--- /dev/null
@@ -0,0 +1,63 @@
+/*
+ * Copyright (C) 2009 Martin Willi
+ * Hochschule fuer Technik Rapperswil
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by the
+ * Free Software Foundation; either version 2 of the Licenseor (at your
+ * option) any later version.  See <http://www.fsf.org/copyleft/gpl.txt>.
+ *
+ * This program is distributed in the hope that it will be usefulbut
+ * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+ * or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * for more details.
+ */
+
+#include <crypto/crypto_tester.h>
+
+/**
+ * MD2 vectors from RFC 1319
+ */
+hasher_test_vector_t md2_1 = {
+       .alg = HASH_MD2, .len = 0,
+       .data   = "",
+       .hash   = "\x83\x50\xe5\xa3\xe2\x4c\x15\x3d\xf2\x27\x5c\x9f\x80\x69\x27\x73"
+};
+
+hasher_test_vector_t md2_2 = {
+       .alg = HASH_MD2, .len = 1,
+       .data   = "a",
+       .hash   = "\x32\xec\x01\xec\x4a\x6d\xac\x72\xc0\xab\x96\xfb\x34\xc0\xb5\xd1"
+};
+
+hasher_test_vector_t md2_3 = {
+       .alg = HASH_MD2, .len = 3,
+       .data   = "abc",
+       .hash   = "\xda\x85\x3b\x0d\x3f\x88\xd9\x9b\x30\x28\x3a\x69\xe6\xde\xd6\xbb"
+};
+
+hasher_test_vector_t md2_4 = {
+       .alg = HASH_MD2, .len = 14,
+       .data   = "message digest",
+       .hash   = "\xab\x4f\x49\x6b\xfb\x2a\x53\x0b\x21\x9f\xf3\x30\x31\xfe\x06\xb0"
+};
+
+hasher_test_vector_t md2_5 = {
+       .alg = HASH_MD2, .len = 26,
+       .data   = "abcdefghijklmnopqrstuvwxyz",
+       .hash   = "\x4e\x8d\xdf\xf3\x65\x02\x92\xab\x5a\x41\x08\xc3\xaa\x47\x94\x0b"
+};
+
+hasher_test_vector_t md2_6 = {
+       .alg = HASH_MD2, .len = 62,
+       .data   = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789",
+       .hash   = "\xda\x33\xde\xf2\xa4\x2d\xf1\x39\x75\x35\x28\x46\xc3\x03\x38\xcd"
+};
+
+hasher_test_vector_t md2_7 = {
+       .alg = HASH_MD2, .len = 80,
+       .data   = "1234567890123456789012345678901234567890"
+                         "1234567890123456789012345678901234567890",
+       .hash   = "\xd5\x97\x6f\x79\xd8\x3d\x3a\x0d\xc9\x80\x6c\x3c\x66\xf3\xef\xd8"
+};
+
diff --git a/src/libstrongswan/plugins/test_vectors/test_vectors/md4.c b/src/libstrongswan/plugins/test_vectors/test_vectors/md4.c
new file mode 100644 (file)
index 0000000..ef9406f
--- /dev/null
@@ -0,0 +1,63 @@
+/*
+ * Copyright (C) 2009 Andreas Steffen
+ * Hochschule fuer Technik Rapperswil
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by the
+ * Free Software Foundation; either version 2 of the Licenseor (at your
+ * option) any later version.  See <http://www.fsf.org/copyleft/gpl.txt>.
+ *
+ * This program is distributed in the hope that it will be usefulbut
+ * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+ * or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * for more details.
+ */
+
+#include <crypto/crypto_tester.h>
+
+/**
+ * MD4 vectors from RFC 1320
+ */
+hasher_test_vector_t md4_1 = {
+       .alg = HASH_MD4, .len = 0,
+       .data   = "",
+       .hash   = "\x31\xd6\xcf\xe0\xd1\x6a\xe9\x31\xb7\x3c\x59\xd7\xe0\xc0\x89\xc0"
+};
+
+hasher_test_vector_t md4_2 = {
+       .alg = HASH_MD4, .len = 1,
+       .data   = "a",
+       .hash   = "\xbd\xe5\x2c\xb3\x1d\xe3\x3e\x46\x24\x5e\x05\xfb\xdb\xd6\xfb\x24"
+};
+
+hasher_test_vector_t md4_3 = {
+       .alg = HASH_MD4, .len = 3,
+       .data   = "abc",
+       .hash   = "\xa4\x48\x01\x7a\xaf\x21\xd8\x52\x5f\xc1\x0a\xe8\x7a\xa6\x72\x9d"
+};
+
+hasher_test_vector_t md4_4 = {
+       .alg = HASH_MD4, .len = 14,
+       .data   = "message digest",
+       .hash   = "\xd9\x13\x0a\x81\x64\x54\x9f\xe8\x18\x87\x48\x06\xe1\xc7\x01\x4b"
+};
+
+hasher_test_vector_t md4_5 = {
+       .alg = HASH_MD4, .len = 26,
+       .data   = "abcdefghijklmnopqrstuvwxyz",
+       .hash   = "\xd7\x9e\x1c\x30\x8a\xa5\xbb\xcd\xee\xa8\xed\x63\xdf\x41\x2d\xa9"
+};
+
+hasher_test_vector_t md4_6 = {
+       .alg = HASH_MD4, .len = 62,
+       .data   = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789",
+       .hash   = "\x04\x3f\x85\x82\xf2\x41\xdb\x35\x1c\xe6\x27\xe1\x53\xe7\xf0\xe4"
+};
+
+hasher_test_vector_t md4_7 = {
+       .alg = HASH_MD4, .len = 80,
+       .data   = "1234567890123456789012345678901234567890"
+                         "1234567890123456789012345678901234567890",
+       .hash   = "\xe3\x3b\x4d\xdc\x9c\x38\xf2\x19\x9c\x3e\x7b\x16\x4f\xcc\x05\x36"
+};
+