]> git.ipfire.org Git - thirdparty/nettle.git/commitdiff
Test different alignment for hash input.
authorNiels Möller <nisse@lysator.liu.se>
Mon, 11 Mar 2013 07:54:36 +0000 (08:54 +0100)
committerNiels Möller <nisse@lysator.liu.se>
Mon, 11 Mar 2013 07:54:36 +0000 (08:54 +0100)
ChangeLog
testsuite/testutils.c

index 80b21856ff496a1c05b56dc9ce43bc3c959b3f1b..bfaaa70ca58e59332850bdcc0e492d13b96c8450 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2013-03-11  Niels Möller  <nisse@lysator.liu.se>
+
+       * testsuite/testutils.c (test_hash): Test different alignments for
+       the hash input.
+
 2013-03-08  Niels Möller  <nisse@lysator.liu.se>
 
        * armv7/aes-decrypt-internal.asm: New file, 15% speedup.
index b1eb57477e82c59e4975fde054d17ce0ffd28085..a264b4cab86bb08e69b45e2d2c1d55c0ae9fe7b9 100644 (file)
@@ -523,6 +523,8 @@ test_hash(const struct nettle_hash *hash,
 {
   void *ctx = xalloc(hash->context_size);
   uint8_t *buffer = xalloc(hash->digest_size);
+  uint8_t *input;
+  unsigned offset;
 
   ASSERT (digest->length == hash->digest_size);
 
@@ -549,8 +551,25 @@ test_hash(const struct nettle_hash *hash,
 
   ASSERT(buffer[hash->digest_size - 1] == 0);
 
+  input = xalloc (msg->length + 16);
+  for (offset = 0; offset < 16; offset++)
+    {
+      memset (input, 0, msg->length + 16);
+      memcpy (input + offset, msg->data, msg->length);
+      hash->update (ctx, msg->length, input + offset);
+      hash->digest (ctx, hash->digest_size, buffer);
+      if (MEMEQ(hash->digest_size, digest->data, buffer) == 0)
+       {
+         fprintf(stdout, "hash input address: %p\nGot:\n", input + offset);
+         print_hex(hash->digest_size, buffer);
+         fprintf(stdout, "\nExpected:\n");
+         print_hex(hash->digest_size, digest->data);
+         abort();
+       }      
+    }
   free(ctx);
   free(buffer);
+  free(input);
 }
 
 void