From: Dr. Matthias St. Pierre Date: Mon, 22 Oct 2018 16:05:14 +0000 (+0200) Subject: Test: link drbgtest statically against libcrypto X-Git-Tag: OpenSSL_1_1_1a~33 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=c39df745b08d9d9e8ae323a2b017db1961f5c0b8;p=oweals%2Fopenssl.git Test: link drbgtest statically against libcrypto and remove duplicate rand_drbg_seedlen() implementation again. Reviewed-by: Richard Levitte (Merged from https://github.com/openssl/openssl/pull/7462) (cherry picked from commit 1c615e4ce97715ae3af9255bc57be32a49687966) --- diff --git a/crypto/rand/drbg_lib.c b/crypto/rand/drbg_lib.c index c1d89f8a38..a13282181d 100644 --- a/crypto/rand/drbg_lib.c +++ b/crypto/rand/drbg_lib.c @@ -974,12 +974,8 @@ static int drbg_bytes(unsigned char *out, int count) * Calculates the minimum length of a full entropy buffer * which is necessary to seed (i.e. instantiate) the DRBG * successfully. - * - * NOTE: There is a copy of this function in drbgtest.c. - * If you change anything here, you need to update - * the copy accordingly. */ -static size_t rand_drbg_seedlen(RAND_DRBG *drbg) +size_t rand_drbg_seedlen(RAND_DRBG *drbg) { /* * If no os entropy source is available then RAND_seed(buffer, bufsize) diff --git a/crypto/rand/rand_lcl.h b/crypto/rand/rand_lcl.h index 9a4dc32422..c3e9804dc0 100644 --- a/crypto/rand/rand_lcl.h +++ b/crypto/rand/rand_lcl.h @@ -280,7 +280,7 @@ extern int rand_fork_count; /* DRBG helpers */ int rand_drbg_restart(RAND_DRBG *drbg, const unsigned char *buffer, size_t len, size_t entropy); - +size_t rand_drbg_seedlen(RAND_DRBG *drbg); /* locking api */ int rand_drbg_lock(RAND_DRBG *drbg); int rand_drbg_unlock(RAND_DRBG *drbg); diff --git a/test/build.info b/test/build.info index b2a82a74a9..b6bb711c8b 100644 --- a/test/build.info +++ b/test/build.info @@ -341,7 +341,7 @@ INCLUDE_MAIN___test_libtestutil_OLB = /INCLUDE=MAIN SOURCE[drbgtest]=drbgtest.c INCLUDE[drbgtest]=../include - DEPEND[drbgtest]=../libcrypto libtestutil.a + DEPEND[drbgtest]=../libcrypto.a libtestutil.a SOURCE[drbg_cavs_test]=drbg_cavs_test.c drbg_cavs_data.c INCLUDE[drbg_cavs_test]=../include . .. diff --git a/test/drbgtest.c b/test/drbgtest.c index 755f0b314c..b690475e0c 100644 --- a/test/drbgtest.c +++ b/test/drbgtest.c @@ -892,46 +892,6 @@ static int test_multi_thread(void) } #endif -#ifdef OPENSSL_RAND_SEED_NONE -/* - * Calculates the minimum buffer length which needs to be - * provided to RAND_seed() in order to successfully - * instantiate the DRBG. - * - * Copied from rand_drbg_seedlen() in rand_drbg.c - */ -static size_t rand_drbg_seedlen(RAND_DRBG *drbg) -{ - /* - * If no os entropy source is available then RAND_seed(buffer, bufsize) - * is expected to succeed if and only if the buffer length satisfies - * the following requirements, which follow from the calculations - * in RAND_DRBG_instantiate(). - */ - size_t min_entropy = drbg->strength; - size_t min_entropylen = drbg->min_entropylen; - - /* - * Extra entropy for the random nonce in the absence of a - * get_nonce callback, see comment in RAND_DRBG_instantiate(). - */ - if (drbg->min_noncelen > 0 && drbg->get_nonce == NULL) { - min_entropy += drbg->strength / 2; - min_entropylen += drbg->min_noncelen; - } - - /* - * Convert entropy requirement from bits to bytes - * (dividing by 8 without rounding upwards, because - * all entropy requirements are divisible by 8). - */ - min_entropy >>= 3; - - /* Return a value that satisfies both requirements */ - return min_entropy > min_entropylen ? min_entropy : min_entropylen; -} -#endif /*OPENSSL_RAND_SEED_NONE*/ - /* * Test that instantiation with RAND_seed() works as expected *