From 896e1b836fd2a57a4fec70f07114f02f3860ad12 Mon Sep 17 00:00:00 2001 From: Jouni Malinen Date: Mon, 5 Jan 2015 17:12:27 +0200 Subject: [PATCH] tests: Move MD5 test cases into hwsim framework Signed-off-by: Jouni Malinen --- src/crypto/crypto_module_tests.c | 85 +++++++++++++++++++++++++++++ tests/Makefile | 6 +-- tests/test-md5.c | 93 -------------------------------- 3 files changed, 86 insertions(+), 98 deletions(-) delete mode 100644 tests/test-md5.c diff --git a/src/crypto/crypto_module_tests.c b/src/crypto/crypto_module_tests.c index 5b76fce7f..1399b43d1 100644 --- a/src/crypto/crypto_module_tests.c +++ b/src/crypto/crypto_module_tests.c @@ -13,6 +13,7 @@ #include "crypto/aes_wrap.h" #include "crypto/aes.h" #include "crypto/ms_funcs.h" +#include "crypto/crypto.h" static int test_siv(void) @@ -727,6 +728,89 @@ static int test_key_wrap(void) } +static int test_md5(void) +{ + struct { + char *data; + char *hash; + } tests[] = { + { + "", + "\xd4\x1d\x8c\xd9\x8f\x00\xb2\x04" + "\xe9\x80\x09\x98\xec\xf8\x42\x7e" + }, + { + "a", + "\x0c\xc1\x75\xb9\xc0\xf1\xb6\xa8" + "\x31\xc3\x99\xe2\x69\x77\x26\x61" + }, + { + "abc", + "\x90\x01\x50\x98\x3c\xd2\x4f\xb0" + "\xd6\x96\x3f\x7d\x28\xe1\x7f\x72" + }, + { + "message digest", + "\xf9\x6b\x69\x7d\x7c\xb7\x93\x8d" + "\x52\x5a\x2f\x31\xaa\xf1\x61\xd0" + }, + { + "abcdefghijklmnopqrstuvwxyz", + "\xc3\xfc\xd3\xd7\x61\x92\xe4\x00" + "\x7d\xfb\x49\x6c\xca\x67\xe1\x3b" + }, + { + "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz" + "0123456789", + "\xd1\x74\xab\x98\xd2\x77\xd9\xf5" + "\xa5\x61\x1c\x2c\x9f\x41\x9d\x9f" + }, + { + "12345678901234567890123456789012345678901234567890" + "123456789012345678901234567890", + "\x57\xed\xf4\xa2\x2b\xe3\xc9\x55" + "\xac\x49\xda\x2e\x21\x07\xb6\x7a" + } + }; + unsigned int i; + u8 hash[16]; + const u8 *addr[2]; + size_t len[2]; + int errors = 0; + + for (i = 0; i < ARRAY_SIZE(tests); i++) { + wpa_printf(MSG_INFO, "MD5 test case %d", i); + + addr[0] = (u8 *) tests[i].data; + len[0] = strlen(tests[i].data); + if (md5_vector(1, addr, len, hash) < 0 || + os_memcmp(hash, tests[i].hash, 16) != 0) { + wpa_printf(MSG_INFO, " FAIL"); + errors++; + } else + wpa_printf(MSG_INFO, " OK"); + + if (len[0]) { + addr[0] = (u8 *) tests[i].data; + len[0] = strlen(tests[i].data); + addr[1] = (u8 *) tests[i].data + 1; + len[1] = strlen(tests[i].data) - 1; + if (md5_vector(1, addr, len, hash) < 0 || + os_memcmp(hash, tests[i].hash, 16) != 0) { + wpa_printf(MSG_INFO, " FAIL"); + errors++; + } else + wpa_printf(MSG_INFO, " OK"); + } + } + + if (!errors) + wpa_printf(MSG_INFO, "MD5 test cases passed"); + + return errors; +} + + static int test_ms_funcs(void) { /* Test vector from RFC2759 example */ @@ -835,6 +919,7 @@ int crypto_module_tests(void) test_cbc() || test_ecb() || test_key_wrap() || + test_md5() || test_ms_funcs()) ret = -1; diff --git a/tests/Makefile b/tests/Makefile index b64265103..782396a37 100644 --- a/tests/Makefile +++ b/tests/Makefile @@ -1,4 +1,4 @@ -TESTS=test-base64 test-md4 test-md5 test-milenage \ +TESTS=test-base64 test-md4 test-milenage \ test-rsa-sig-ver \ test-sha1 \ test-sha256 test-aes test-asn1 test-x509 test-x509v3 test-list test-rc4 @@ -59,9 +59,6 @@ test-list: test-list.o $(LIBS) test-md4: test-md4.o $(LIBS) $(LDO) $(LDFLAGS) -o $@ $^ $(LLIBS) -test-md5: test-md5.o $(LIBS) - $(LDO) $(LDFLAGS) -o $@ $^ $(LLIBS) - test-milenage: test-milenage.o $(LIBS) $(LDO) $(LDFLAGS) -o $@ $^ $(LLIBS) @@ -88,7 +85,6 @@ run-tests: $(TESTS) ./test-aes ./test-list ./test-md4 - ./test-md5 ./test-milenage ./test-rsa-sig-ver ./test-sha1 diff --git a/tests/test-md5.c b/tests/test-md5.c deleted file mode 100644 index b5246a409..000000000 --- a/tests/test-md5.c +++ /dev/null @@ -1,93 +0,0 @@ -/* - * Test program for MD5 (test vectors from RFC 1321) - * Copyright (c) 2006, Jouni Malinen - * - * This software may be distributed under the terms of the BSD license. - * See README for more details. - */ - -#include "includes.h" - -#include "common.h" -#include "crypto/crypto.h" - -int main(int argc, char *argv[]) -{ - struct { - char *data; - char *hash; - } tests[] = { - { - "", - "\xd4\x1d\x8c\xd9\x8f\x00\xb2\x04" - "\xe9\x80\x09\x98\xec\xf8\x42\x7e" - }, - { - "a", - "\x0c\xc1\x75\xb9\xc0\xf1\xb6\xa8" - "\x31\xc3\x99\xe2\x69\x77\x26\x61" - }, - { - "abc", - "\x90\x01\x50\x98\x3c\xd2\x4f\xb0" - "\xd6\x96\x3f\x7d\x28\xe1\x7f\x72" - }, - { - "message digest", - "\xf9\x6b\x69\x7d\x7c\xb7\x93\x8d" - "\x52\x5a\x2f\x31\xaa\xf1\x61\xd0" - }, - { - "abcdefghijklmnopqrstuvwxyz", - "\xc3\xfc\xd3\xd7\x61\x92\xe4\x00" - "\x7d\xfb\x49\x6c\xca\x67\xe1\x3b" - }, - { - "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz" - "0123456789", - "\xd1\x74\xab\x98\xd2\x77\xd9\xf5" - "\xa5\x61\x1c\x2c\x9f\x41\x9d\x9f" - }, - { - "12345678901234567890123456789012345678901234567890" - "123456789012345678901234567890", - "\x57\xed\xf4\xa2\x2b\xe3\xc9\x55" - "\xac\x49\xda\x2e\x21\x07\xb6\x7a" - } - }; - unsigned int i; - u8 hash[16]; - const u8 *addr[2]; - size_t len[2]; - int errors = 0; - - for (i = 0; i < ARRAY_SIZE(tests); i++) { - printf("MD5 test case %d:", i); - - addr[0] = (u8 *) tests[i].data; - len[0] = strlen(tests[i].data); - md5_vector(1, addr, len, hash); - if (memcmp(hash, tests[i].hash, 16) != 0) { - printf(" FAIL"); - errors++; - } else - printf(" OK"); - - if (len[0]) { - addr[0] = (u8 *) tests[i].data; - len[0] = strlen(tests[i].data); - addr[1] = (u8 *) tests[i].data + 1; - len[1] = strlen(tests[i].data) - 1; - md5_vector(1, addr, len, hash); - if (memcmp(hash, tests[i].hash, 16) != 0) { - printf(" FAIL"); - errors++; - } else - printf(" OK"); - } - - printf("\n"); - } - - return errors; -}