shithub: blake2

Download patch

ref: 73bd0dc6529657b972cdd00b16bfe7d788d73f8c
parent: 1dd635899748e2c28cba606fe0841cf36ab8bbed
author: Samuel Neves <sneves@dei.uc.pt>
date: Tue Oct 11 12:18:48 EDT 2016

length bug

--- a/ref/blake2xs-ref.c
+++ b/ref/blake2xs-ref.c
@@ -93,11 +93,12 @@
   for (i = 0; outlen > 0; ++i) {
     const size_t block_size = (outlen < BLAKE2S_OUTBYTES) ? outlen : BLAKE2S_OUTBYTES;
     /* Initialize state */
+    P->digest_length = block_size;
     store32(&P->node_offset, i);
     blake2s_init_param(C, P);
     /* Process key if needed */
     blake2s_update(C, root, BLAKE2S_OUTBYTES);
-    blake2s_final(C, (uint8_t *)out + i * BLAKE2S_OUTBYTES, BLAKE2S_OUTBYTES);
+    blake2s_final(C, (uint8_t *)out + i * BLAKE2S_OUTBYTES, block_size);
     outlen -= block_size;
   }
   secure_zero_memory(root, sizeof(root));
@@ -132,12 +133,12 @@
     return -1;
   }
 
-  /* Compute the root of the tree */
+  /* Absorb the input message */
   if (blake2xs_update(S, in, inlen) < 0) {
     return -1;
   }
 
-  /* Compute the final hash using the counter construction */
+  /* Compute the root node of the tree and the final hash using the counter construction */
   return blake2xs_final(S, out, outlen);
 }
 
--