From 2c85756130b499bb68dd0515c2f8a096460bf1c4 Mon Sep 17 00:00:00 2001 From: John Safranek Date: Thu, 13 Nov 2014 18:08:23 -0800 Subject: [PATCH] fixed carry error on array add in HashDRBG --- ctaocrypt/src/random.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/ctaocrypt/src/random.c b/ctaocrypt/src/random.c index 7d8d1c58f..357631f5b 100644 --- a/ctaocrypt/src/random.c +++ b/ctaocrypt/src/random.c @@ -279,8 +279,12 @@ static INLINE void array_add(byte* d, word32 dLen, const byte* s, word32 sLen) d[dIdx] = carry; carry >>= 8; } - if (dIdx > 0) - d[dIdx] += carry; + + for (; carry != 0 && dIdx >= 0; dIdx--) { + carry += d[dIdx]; + d[dIdx] = carry; + carry >>= 8; + } } }