summaryrefslogtreecommitdiff
path: root/testsuite
diff options
context:
space:
mode:
authorNiels Möller <nisse@lysator.liu.se>2020-02-09 09:57:34 +0100
committerNiels Möller <nisse@lysator.liu.se>2020-02-09 09:57:34 +0100
commitf67dd4f0ed34c9e41cde119b0b28c7a4342d37df (patch)
tree6530ae21d180f47b8cbd1dadb8b6132276e5694e /testsuite
parent9c04199d7faef69b63f7d53b9f1ef1c85e37a76e (diff)
downloadnettle-f67dd4f0ed34c9e41cde119b0b28c7a4342d37df.tar.gz
Add meta interface for HMAC functions.
Based on patches by Daiki Ueno.
Diffstat (limited to 'testsuite')
-rw-r--r--testsuite/hmac-test.c98
-rw-r--r--testsuite/testutils.c3
-rw-r--r--testsuite/testutils.h10
3 files changed, 29 insertions, 82 deletions
diff --git a/testsuite/hmac-test.c b/testsuite/hmac-test.c
index f009c800..de1b6bfe 100644
--- a/testsuite/hmac-test.c
+++ b/testsuite/hmac-test.c
@@ -24,12 +24,11 @@ test_main(void)
/* Test vectors for md5, from RFC-2202 */
/* md5 - 1 */
- HMAC_TEST(md5,
+ test_mac (&nettle_hmac_md5,
SHEX("0b0b0b0b0b0b0b0b 0b0b0b0b0b0b0b0b"),
SDATA("Hi There"),
SHEX("9294727a3638bb1c 13f48ef8158bfc9d"));
-
/* md5 - 2 */
HMAC_TEST(md5,
SDATA("Jefe"),
@@ -37,7 +36,7 @@ test_main(void)
SHEX("750c783e6ab0b503 eaa86e310a5db738"));
/* md5 - 3 */
- HMAC_TEST(md5,
+ test_mac(&nettle_hmac_md5,
SHEX("aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa"),
SHEX("dddddddddddddddd dddddddddddddddd"
"dddddddddddddddd dddddddddddddddd"
@@ -56,7 +55,7 @@ test_main(void)
SHEX("697eaf0aca3a3aea 3a75164746ffaa79"));
/* md5 - 5 */
- HMAC_TEST(md5,
+ test_mac(&nettle_hmac_md5,
SHEX("0c0c0c0c0c0c0c0c 0c0c0c0c0c0c0c0c"),
SDATA("Test With Truncation"),
SHEX("56461ef2342edc00 f9bab995"));
@@ -125,73 +124,73 @@ test_main(void)
/* Test vectors for ripemd160, from
http://homes.esat.kuleuven.be/~bosselae/ripemd160.html */
- HMAC_TEST(ripemd160,
+ test_mac(&nettle_hmac_ripemd160,
SHEX("00112233445566778899aabbccddeeff01234567"),
SDATA(""),
SHEX("cf387677bfda8483e63b57e06c3b5ecd8b7fc055"));
- HMAC_TEST(ripemd160,
+ test_mac(&nettle_hmac_ripemd160,
SHEX("00112233445566778899aabbccddeeff01234567"),
SDATA("a"),
SHEX("0d351d71b78e36dbb7391c810a0d2b6240ddbafc"));
- HMAC_TEST(ripemd160,
+ test_mac(&nettle_hmac_ripemd160,
SHEX("00112233445566778899aabbccddeeff01234567"),
SDATA("abc"),
SHEX("f7ef288cb1bbcc6160d76507e0a3bbf712fb67d6"));
- HMAC_TEST(ripemd160,
+ test_mac(&nettle_hmac_ripemd160,
SHEX("00112233445566778899aabbccddeeff01234567"),
SDATA("message digest"),
SHEX("f83662cc8d339c227e600fcd636c57d2571b1c34"));
- HMAC_TEST(ripemd160,
+ test_mac(&nettle_hmac_ripemd160,
SHEX("00112233445566778899aabbccddeeff01234567"),
SDATA("abcdefghijklmnopqrstuvwxyz"),
SHEX("843d1c4eb880ac8ac0c9c95696507957d0155ddb"));
- HMAC_TEST(ripemd160,
+ test_mac(&nettle_hmac_ripemd160,
SHEX("00112233445566778899aabbccddeeff01234567"),
SDATA("abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq"),
SHEX("60f5ef198a2dd5745545c1f0c47aa3fb5776f881"));
- HMAC_TEST(ripemd160,
+ test_mac(&nettle_hmac_ripemd160,
SHEX("00112233445566778899aabbccddeeff01234567"),
SDATA("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"),
SHEX("e49c136a9e5627e0681b808a3b97e6a6e661ae79"));
/* Other key */
- HMAC_TEST(ripemd160,
+ test_mac(&nettle_hmac_ripemd160,
SHEX("0123456789abcdeffedcba987654321000112233"),
SDATA(""),
SHEX("fe69a66c7423eea9c8fa2eff8d9dafb4f17a62f5"));
- HMAC_TEST(ripemd160,
+ test_mac(&nettle_hmac_ripemd160,
SHEX("0123456789abcdeffedcba987654321000112233"),
SDATA("a"),
SHEX("85743e899bc82dbfa36faaa7a25b7cfd372432cd"));
- HMAC_TEST(ripemd160,
+ test_mac(&nettle_hmac_ripemd160,
SHEX("0123456789abcdeffedcba987654321000112233"),
SDATA("abc"),
SHEX("6e4afd501fa6b4a1823ca3b10bd9aa0ba97ba182"));
- HMAC_TEST(ripemd160,
+ test_mac(&nettle_hmac_ripemd160,
SHEX("0123456789abcdeffedcba987654321000112233"),
SDATA("message digest"),
SHEX("2e066e624badb76a184c8f90fba053330e650e92"));
- HMAC_TEST(ripemd160,
+ test_mac(&nettle_hmac_ripemd160,
SHEX("0123456789abcdeffedcba987654321000112233"),
SDATA("abcdefghijklmnopqrstuvwxyz"),
SHEX("07e942aa4e3cd7c04dedc1d46e2e8cc4c741b3d9"));
- HMAC_TEST(ripemd160,
+ test_mac(&nettle_hmac_ripemd160,
SHEX("0123456789abcdeffedcba987654321000112233"),
SDATA("abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq"),
SHEX("b6582318ddcfb67a53a67d676b8ad869aded629a"));
- HMAC_TEST(ripemd160,
+ test_mac(&nettle_hmac_ripemd160,
SHEX("0123456789abcdeffedcba987654321000112233"),
SDATA("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"),
SHEX("f1be3ee877703140d34f97ea1ab3a07c141333e2"));
@@ -199,7 +198,7 @@ test_main(void)
/* Test vectors for sha1, from RFC-2202 */
/* sha1 - 1 */
- HMAC_TEST(sha1,
+ test_mac(&nettle_hmac_sha1,
SHEX("0b0b0b0b0b0b0b0b 0b0b0b0b0b0b0b0b 0b0b0b0b"),
SDATA("Hi There"),
SHEX("b617318655057264 e28bc0b6fb378c8e f146be00"));
@@ -211,7 +210,7 @@ test_main(void)
SHEX("effcdf6ae5eb2fa2 d27416d5f184df9c 259a7c79"));
/* sha1 - 3 */
- HMAC_TEST(sha1,
+ test_mac(&nettle_hmac_sha1,
SHEX("aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaa"),
SHEX("dddddddddddddddd dddddddddddddddd"
"dddddddddddddddd dddddddddddddddd"
@@ -230,7 +229,7 @@ test_main(void)
SHEX("4c9007f4026250c6 bc8414f9bf50c86c 2d7235da"));
/* sha1 - 5 */
- HMAC_TEST(sha1,
+ test_mac(&nettle_hmac_sha1,
SHEX("0c0c0c0c0c0c0c0c 0c0c0c0c0c0c0c0c 0c0c0c0c"),
SDATA("Test With Truncation"),
SHEX("4c1a03424b55e07f e7f27be1"));
@@ -256,47 +255,6 @@ test_main(void)
"Than One Block-Size Data"),
SHEX("e8e99d0f45237d78 6d6bbaa7965c7808 bbff1a91"));
- /* Additional test vectors, from Daniel Kahn Gillmor */
- HMAC_TEST(md5,
- SDATA("monkey monkey monkey monkey"),
- SDATA(""),
- SHEX("e84db42a188813f30a15e611d64c7869"));
-
- HMAC_TEST(md5,
- SDATA("monkey monkey monkey monkey"),
- SDATA("a"),
- SHEX("123662062e67c2aab371cc49db0df134"));
-
- HMAC_TEST(md5,
- SDATA("monkey monkey monkey monkey"),
- SDATA("38"),
- SHEX("0a46cc10a49d4b7025c040c597bf5d76"));
-
- HMAC_TEST(md5,
- SDATA("monkey monkey monkey monkey"),
- SDATA("abc"),
- SHEX("d1f4d89f0e8b2b6ed0623c99ec298310"));
-
- HMAC_TEST(md5,
- SDATA("monkey monkey monkey monkey"),
- SDATA("message digest"),
- SHEX("1627207b9bed5009a4f6e9ca8d2ca01e"));
-
- HMAC_TEST(md5,
- SDATA("monkey monkey monkey monkey"),
- SDATA("abcdefghijklmnopqrstuvwxyz"),
- SHEX("922aae6ab3b3a29202e21ce5f916ae9a"));
-
- HMAC_TEST(md5,
- SDATA("monkey monkey monkey monkey"),
- SDATA("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"),
- SHEX("ede9cb83679ba82d88fbeae865b3f8fc"));
-
- HMAC_TEST(md5,
- SDATA("monkey monkey monkey monkey"),
- SDATA("12345678901234567890123456789012345678901234567890123456789012345678901234567890"),
- SHEX("939dd45512ee3a594b6654f6b8de27f7"));
-
/* Test vectors for sha224, from RFC 4231 */
HMAC_TEST(sha224,
SHEX("0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b"
@@ -490,7 +448,7 @@ test_main(void)
draft-ietf-ipsec-ciph-sha-256-01.txt */
/* Test Case #1: HMAC-SHA-256 with 3-byte input and 32-byte key */
- HMAC_TEST(sha256,
+ test_mac(&nettle_hmac_sha256,
SHEX("0102030405060708 090a0b0c0d0e0f10"
"1112131415161718 191a1b1c1d1e1f20"),
SDATA("abc"),
@@ -498,7 +456,7 @@ test_main(void)
"7f98cc131cb16a66 92759021cfab8181"));
/* Test Case #2: HMAC-SHA-256 with 56-byte input and 32-byte key */
- HMAC_TEST(sha256,
+ test_mac(&nettle_hmac_sha256,
SHEX("0102030405060708 090a0b0c0d0e0f10"
"1112131415161718 191a1b1c1d1e1f20"),
SDATA("abcdbcdecdefdefgefghfghighijhijk"
@@ -508,7 +466,7 @@ test_main(void)
/* Test Case #3: HMAC-SHA-256 with 112-byte (multi-block) input
and 32-byte key */
- HMAC_TEST(sha256,
+ test_mac(&nettle_hmac_sha256,
SHEX("0102030405060708 090a0b0c0d0e0f10"
"1112131415161718 191a1b1c1d1e1f20"),
SDATA("abcdbcdecdefdefgefghfghighijhijk"
@@ -519,7 +477,7 @@ test_main(void)
"73acf0fd060447a5 eb4595bf33a9d1a3"));
/* Test Case #4: HMAC-SHA-256 with 8-byte input and 32-byte key */
- HMAC_TEST(sha256,
+ test_mac(&nettle_hmac_sha256,
SHEX("0b0b0b0b0b0b0b0b 0b0b0b0b0b0b0b0b"
"0b0b0b0b0b0b0b0b 0b0b0b0b0b0b0b0b"),
SDATA("Hi There"),
@@ -527,7 +485,7 @@ test_main(void)
"ba0aa3f3d9ae3c1c 7a3b1696a0b68cf7"));
/* Test Case #6: HMAC-SHA-256 with 50-byte input and 32-byte key */
- HMAC_TEST(sha256,
+ test_mac(&nettle_hmac_sha256,
SHEX("aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa"),
SHEX("dddddddddddddddd dddddddddddddddd"
@@ -550,7 +508,7 @@ test_main(void)
"6ec4af55ef079985 41468eb49bd2e917"));
/* Test Case #8: HMAC-SHA-256 with 20-byte input and 32-byte key */
- HMAC_TEST(sha256,
+ test_mac(&nettle_hmac_sha256,
SHEX("0c0c0c0c0c0c0c0c 0c0c0c0c0c0c0c0c"
"0c0c0c0c0c0c0c0c 0c0c0c0c0c0c0c0c"),
SDATA("Test With Truncation"),
@@ -855,7 +813,7 @@ test_main(void)
draft-kelly-ipsec-ciph-sha2-01.txt */
/* Test case AUTH512-1: */
- HMAC_TEST(sha512,
+ test_mac(&nettle_hmac_sha512,
SHEX("0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b"
"0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b"
"0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b"
@@ -879,7 +837,7 @@ test_main(void)
"fa0ffb93466cfcceaae38c833b7dba38"));
/* Test case AUTH512-3: */
- HMAC_TEST(sha512,
+ test_mac(&nettle_hmac_sha512,
SHEX("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
diff --git a/testsuite/testutils.c b/testsuite/testutils.c
index bb6ad54b..187da0ef 100644
--- a/testsuite/testutils.c
+++ b/testsuite/testutils.c
@@ -963,8 +963,7 @@ test_mac(const struct nettle_mac *mac,
uint8_t *hash = xalloc(mac->digest_size);
unsigned i;
-
- ASSERT (digest->length == mac->digest_size);
+ ASSERT (digest->length <= mac->digest_size);
ASSERT (key->length == mac->key_size);
mac->set_key (ctx, key->data);
mac->update (ctx, msg->length, msg->data);
diff --git a/testsuite/testutils.h b/testsuite/testutils.h
index 221255c5..8ace6a82 100644
--- a/testsuite/testutils.h
+++ b/testsuite/testutils.h
@@ -79,16 +79,6 @@ test_main(void);
extern int verbose;
-#define _NETTLE_HMAC(name, NAME, keysize) { \
- #name, \
- sizeof(struct hmac_##name##_ctx), \
- NAME##_DIGEST_SIZE, \
- NAME##_DIGEST_SIZE, \
- hmac_##name##_set_key, \
- hmac_##name##_update, \
- hmac_##name##_digest, \
-}
-
/* Test functions deallocate their inputs when finished.*/
void
test_cipher(const struct nettle_cipher *cipher,