fix n, the length of additional input
authorNIIBE Yutaka <gniibe@fsij.org>
Thu, 20 Sep 2012 05:56:11 +0000 (14:56 +0900)
committerNIIBE Yutaka <gniibe@fsij.org>
Thu, 20 Sep 2012 05:56:11 +0000 (14:56 +0900)
src/random.c

index 736c392..7fabf85 100644 (file)
@@ -140,8 +140,13 @@ static void ep_add (uint8_t entropy_bits)
 
 static const uint32_t *ep_output (void)
 {
-  int n = (SHA256_BLOCK_SIZE - 9) - 
-    ((5 + NUM_NOISE_INPUTS) % SHA256_BLOCK_SIZE);
+#if ((SHA256_BLOCK_SIZE - 9) - ((5 + NUM_NOISE_INPUTS) % SHA256_BLOCK_SIZE)) \
+    > SHA256_DIGEST_SIZE
+  int n = SHA256_DIGEST_SIZE;
+#else
+  int n = (SHA256_BLOCK_SIZE - 9)
+    - ((5 + NUM_NOISE_INPUTS) % SHA256_BLOCK_SIZE);
+#endif
 
   if (PROBABILITY_50_BY_TICK ())
     n = n - 3;