Use RAND_METHOD for implementing RAND_status.
authorBodo Möller <bodo@openssl.org>
Thu, 2 Mar 2000 14:34:58 +0000 (14:34 +0000)
committerBodo Möller <bodo@openssl.org>
Thu, 2 Mar 2000 14:34:58 +0000 (14:34 +0000)
CHANGES
crypto/rand/md_rand.c
crypto/rand/rand.h
crypto/rand/rand_lib.c

diff --git a/CHANGES b/CHANGES
index a674db246d0d5d6b73add71b2e4a07cd96f51b40..e3d8337f4bf093c813d5cea8870123e30cf7d2b8 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -4,6 +4,11 @@
 
  Changes between 0.9.5 and 0.9.6  [XX XXX 2000]
 
+  *) Include RAND_status() into RAND_METHOD instead of implementing
+     it only for md_rand.c  Otherwise replacing the PRNG by calling
+     RAND_set_rand_method would be impossible.
+     [Bodo Moeller]
+
   *) Don't let DSA_generate_key() enter an infinite loop if the random
      number generation fails.
      [Bodo Moeller]
index 583fc137d81fbc5ec5308a9f38b88da1a68d62c0..1a366ae5c84c93ddce906f985b05034cb550dc04 100644 (file)
@@ -156,6 +156,7 @@ static void ssleay_rand_seed(const void *buf, int num);
 static void ssleay_rand_add(const void *buf, int num, double add_entropy);
 static int ssleay_rand_bytes(unsigned char *buf, int num);
 static int ssleay_rand_pseudo_bytes(unsigned char *buf, int num);
+static int ssleay_rand_status(void);
 
 RAND_METHOD rand_ssleay_meth={
        ssleay_rand_seed,
@@ -163,6 +164,7 @@ RAND_METHOD rand_ssleay_meth={
        ssleay_rand_cleanup,
        ssleay_rand_add,
        ssleay_rand_pseudo_bytes,
+       ssleay_rand_status
        }; 
 
 RAND_METHOD *RAND_SSLeay(void)
@@ -502,7 +504,7 @@ static int ssleay_rand_pseudo_bytes(unsigned char *buf, int num)
        return (ret);
        }
 
-int RAND_status(void)
+static int ssleay_rand_status(void)
        {
        if (!initialized)
                ssleay_rand_initialize();
index f14a115225772c613059709775f9002d7bc09a52..79cb9047a2754729e685d91c574c640cfe0312b2 100644 (file)
@@ -70,6 +70,7 @@ typedef struct rand_meth_st
        void (*cleanup)(void);
        void (*add)(const void *buf, int num, double entropy);
        int (*pseudorand)(unsigned char *buf, int num);
+       int (*status)(void);
        } RAND_METHOD;
 
 #ifdef BN_DEBUG
index b09a300c46e5bb84353ab6de01a0cc6b24a88e79..7da74aab0ef3364b58c31a4593818225ccdc1e41 100644 (file)
@@ -108,3 +108,10 @@ int RAND_pseudo_bytes(unsigned char *buf, int num)
                return rand_meth->pseudorand(buf,num);
        return(-1);
        }
+
+int RAND_status(void)
+       {
+       if (rand_meth != NULL)
+               return rand_meth->status();
+       return 0;
+       }