Commit f3cd81d6 authored by Matt Caswell's avatar Matt Caswell
Browse files

Deprecate RAND_cleanup() and make it a no-op



RAND_cleanup() should not be called expicitly - we should leave
auto-deinit to clean this up instead.

Reviewed-by: default avatarTim Hudson <tjh@openssl.org>
Reviewed-by: default avatarRichard Levitte <levitte@openssl.org>
parent b22234de
Loading
Loading
Loading
Loading
+0 −10
Original line number Diff line number Diff line
@@ -313,7 +313,6 @@ static double ecdh_results[EC_NUM][1];
#if !defined(OPENSSL_NO_DSA) || !defined(OPENSSL_NO_EC)
static const char rnd_seed[] =
    "string to make the random number generator think it has entropy";
static int rnd_fake = 0;
#endif

#ifdef SIGALRM
@@ -2448,7 +2447,6 @@ int speed_main(int argc, char **argv)
#ifndef OPENSSL_NO_DSA
    if (RAND_status() != 1) {
        RAND_seed(rnd_seed, sizeof rnd_seed);
        rnd_fake = 1;
    }
    for (testnum = 0; testnum < DSA_NUM; testnum++) {
        int st = 0;
@@ -2512,14 +2510,11 @@ int speed_main(int argc, char **argv)
                dsa_doit[testnum] = 0;
        }
    }
    if (rnd_fake)
        RAND_cleanup();
#endif

#ifndef OPENSSL_NO_EC
    if (RAND_status() != 1) {
        RAND_seed(rnd_seed, sizeof rnd_seed);
        rnd_fake = 1;
    }
    for (testnum = 0; testnum < EC_NUM; testnum++) {
        int st = 1;
@@ -2601,14 +2596,11 @@ int speed_main(int argc, char **argv)
            }
        }
    }
    if (rnd_fake)
        RAND_cleanup();
#endif

#ifndef OPENSSL_NO_EC
    if (RAND_status() != 1) {
        RAND_seed(rnd_seed, sizeof rnd_seed);
        rnd_fake = 1;
    }
    for (testnum = 0; testnum < EC_NUM; testnum++) {
        if (!ecdh_doit[testnum])
@@ -2700,8 +2692,6 @@ int speed_main(int argc, char **argv)
                ecdh_doit[testnum] = 0;
        }
    }
    if (rnd_fake)
        RAND_cleanup();
#endif
#ifndef NO_FORK
 show_res:
+0 −3
Original line number Diff line number Diff line
@@ -328,6 +328,3 @@ DSA *get_dsa2048()
    return NULL;
}
static const char rnd_seed[] =
    "string to make the random number generator think it has entropy";
static int rnd_fake = 0;
+11 −0
Original line number Diff line number Diff line
/*
 * Licensed under the OpenSSL licenses, (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 * https://www.openssl.org/source/license.html
 * or in the file LICENSE in the source distribution.
 */

#include <openssl/rand.h>

void rand_cleanup_intern(void);
+5 −5
Original line number Diff line number Diff line
@@ -58,7 +58,7 @@
#include <internal/threads.h>
#include <internal/cryptlib_int.h>
#include <openssl/err.h>
#include <openssl/rand.h>
#include <internal/rand.h>
#include <openssl/evp.h>
#include <internal/evp_int.h>
#include <internal/conf.h>
@@ -453,7 +453,7 @@ void OPENSSL_cleanup(void)

#ifdef OPENSSL_INIT_DEBUG
    fprintf(stderr, "OPENSSL_INIT: OPENSSL_cleanup: "
                    "RAND_cleanup()\n");
                    "rand_cleanup_intern()\n");
    fprintf(stderr, "OPENSSL_INIT: OPENSSL_cleanup: "
                    "CONF_modules_free()\n");
#ifndef OPENSSL_NO_ENGINE
@@ -471,14 +471,14 @@ void OPENSSL_cleanup(void)
#endif
    /*
     * Note that cleanup order is important:
     * - RAND_cleanup could call an ENINGE's RAND cleanup function so must be
     * called before ENGINE_cleanup()
     * - rand_cleanup_intern could call an ENINGE's RAND cleanup function so
     * must be called before ENGINE_cleanup()
     * - ENGINEs use CRYPTO_EX_DATA and therefore, must be cleaned up
     * before the ex data handlers are wiped in CRYPTO_cleanup_all_ex_data().
     * - CONF_modules_free() can end up in ENGINE code so must be called before
     * ENGINE_cleanup()
     */
    RAND_cleanup();
    rand_cleanup_intern();
    CONF_modules_free();
#ifndef OPENSSL_NO_ENGINE
    ENGINE_cleanup();
+2 −2
Original line number Diff line number Diff line
@@ -59,7 +59,7 @@
#include <time.h>
#include "internal/cryptlib.h"
#include <openssl/opensslconf.h>
#include <openssl/rand.h>
#include "internal/rand.h"

#include <openssl/engine.h>

@@ -125,7 +125,7 @@ int RAND_set_rand_engine(ENGINE *engine)
}
#endif

void RAND_cleanup(void)
void rand_cleanup_intern(void)
{
    const RAND_METHOD *meth = RAND_get_rand_method();
    if (meth && meth->cleanup)
Loading