mirror of
https://github.com/openssl/openssl.git
synced 2025-02-17 14:32:04 +08:00
Fix: drbgtest fails when tests are executed in random order
[extended tests] The test_rand_reseed assumed that the global DRBGs were not used previously. This assumption is false when the tests are executed in random order (OPENSSL_TEST_RAND_ORDER). So we uninstantiate them first and add a test for the first instantiation. Reviewed-by: Richard Levitte <levitte@openssl.org> (Merged from https://github.com/openssl/openssl/pull/5680)
This commit is contained in:
parent
8f8be103fd
commit
59f124f90f
@ -691,13 +691,28 @@ static int test_rand_reseed(void)
|
||||
|| !TEST_ptr_eq(private->parent, master))
|
||||
return 0;
|
||||
|
||||
/* uninstantiate the three global DRBGs */
|
||||
RAND_DRBG_uninstantiate(private);
|
||||
RAND_DRBG_uninstantiate(public);
|
||||
RAND_DRBG_uninstantiate(master);
|
||||
|
||||
|
||||
/* Install hooks for the following tests */
|
||||
hook_drbg(master, &master_ctx);
|
||||
hook_drbg(public, &public_ctx);
|
||||
hook_drbg(private, &private_ctx);
|
||||
|
||||
|
||||
/*
|
||||
* Test initial state of shared DRBs
|
||||
* Test initial seeding of shared DRBGs
|
||||
*/
|
||||
if (!TEST_true(test_drbg_reseed(1, master, public, private, 1, 1, 1)))
|
||||
goto error;
|
||||
reset_drbg_hook_ctx();
|
||||
|
||||
|
||||
/*
|
||||
* Test initial state of shared DRBGs
|
||||
*/
|
||||
if (!TEST_true(test_drbg_reseed(1, master, public, private, 0, 0, 0)))
|
||||
goto error;
|
||||
|
Loading…
Reference in New Issue
Block a user