Address a bug in the DRBG tests where the reseeding wasn't properly

reinstantiating the DRBG.

Bug reported by Doug Gibbons.

Reviewed-by: Paul Yang <yang.yang@baishancloud.com>
(Merged from https://github.com/openssl/openssl/pull/8184)
This commit is contained in:
Pauli 2018-12-21 12:03:19 +10:00
parent 03cdfe1efa
commit b1522fa5ef

View file

@ -429,7 +429,7 @@ static int error_check(DRBG_SELFTEST_DATA *td)
*/
/* Test explicit reseed with too large additional input */
if (!init(drbg, td, &t)
if (!instantiate(drbg, td, &t)
|| RAND_DRBG_reseed(drbg, td->adin, drbg->max_adinlen + 1, 0) > 0)
goto err;
@ -440,7 +440,7 @@ static int error_check(DRBG_SELFTEST_DATA *td)
goto err;
/* Test explicit reseed with too much entropy */
if (!init(drbg, td, &t))
if (!instantiate(drbg, td, &t))
goto err;
t.entropylen = drbg->max_entropylen + 1;
if (!TEST_int_le(RAND_DRBG_reseed(drbg, td->adin, td->adinlen, 0), 0)
@ -448,7 +448,7 @@ static int error_check(DRBG_SELFTEST_DATA *td)
goto err;
/* Test explicit reseed with too little entropy */
if (!init(drbg, td, &t))
if (!instantiate(drbg, td, &t))
goto err;
t.entropylen = drbg->min_entropylen - 1;
if (!TEST_int_le(RAND_DRBG_reseed(drbg, td->adin, td->adinlen, 0), 0)