From e4d0f70254d0b20306123f7144515bde4db2a091 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Niels=20M=C3=B6ller?= <nisse@lysator.liu.se>
Date: Tue, 25 Jun 2013 17:11:48 +0200
Subject: [PATCH] test_aead: Allow digest size smaller than the block size.

---
 ChangeLog             |  3 +++
 testsuite/testutils.c | 10 +++++-----
 2 files changed, 8 insertions(+), 5 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index a7af3865..a838b574 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,8 @@
 2013-06-25  Niels Möller  <nisse@lysator.liu.se>
 
+	* testsuite/testutils.c (test_aead): Allow digest size smaller
+	than the block size.
+
 	* tools/nettle-pbkdf2.c: New command line tool.
 	* tools/Makefile.in (TARGETS): Added nettle-pbkdf2.
 	(nettle-pbkdf2$(EXEEXT)): New target.
diff --git a/testsuite/testutils.c b/testsuite/testutils.c
index 9e2d5b5a..4f57c550 100644
--- a/testsuite/testutils.c
+++ b/testsuite/testutils.c
@@ -476,7 +476,7 @@ test_aead(const struct nettle_aead *aead,
   ASSERT (cleartext->length == ciphertext->length);
   length = cleartext->length;
 
-  ASSERT (digest->length == aead->block_size);
+  ASSERT (digest->length <= aead->block_size);
 
   data = xalloc(length);
   
@@ -492,10 +492,10 @@ test_aead(const struct nettle_aead *aead,
   if (length)
     aead->encrypt(ctx, length, data, cleartext->data);
 
-  aead->digest(ctx, aead->block_size, buffer);
+  aead->digest(ctx, digest->length, buffer);
 
   ASSERT(MEMEQ(length, data, ciphertext->data));
-  ASSERT(MEMEQ(aead->block_size, buffer, digest->data));
+  ASSERT(MEMEQ(digest->length, buffer, digest->data));
 
   /* decryption */
   memset(buffer, 0, aead->block_size);
@@ -507,10 +507,10 @@ test_aead(const struct nettle_aead *aead,
   if (length)
     aead->decrypt(ctx, length, data, data);
 
-  aead->digest(ctx, aead->block_size, buffer);
+  aead->digest(ctx, digest->length, buffer);
 
   ASSERT(MEMEQ(length, data, cleartext->data));
-  ASSERT(MEMEQ(aead->block_size, buffer, digest->data));
+  ASSERT(MEMEQ(digest->length, buffer, digest->data));
 
   free(ctx);
   free(data);
-- 
GitLab