diff --git a/drbg.h b/drbg.h index 043fa198..b219b861 100644 --- a/drbg.h +++ b/drbg.h @@ -519,9 +519,11 @@ void Hash_DRBG::Hash_Generate(const byte* additional PutWord(false, BIG_ENDIAN_ORDER, p1, static_cast(r)); i -= 8; j -= 8; k=0; carry = static_cast(r >> 64); #else + byte t[8]; + PutWord(false, BIG_ENDIAN_ORDER, t, m_reseed); while (k>=0) { - carry = m_v[i] + m_c[i] + h[j] + GetByte(BIG_ENDIAN_ORDER, m_reseed, k) + carry; + carry = m_v[i] + m_c[i] + h[j] + t[k] + carry; m_v[i] = static_cast(carry); i--; j--; k--; carry >>= 8; }