Use RAND_METHOD for implementing RAND_status.
[openssl.git] / crypto / rand / rand_lib.c
index 6bea09211cee76baf85fcac841b88a6fed92018b..7da74aab0ef3364b58c31a4593818225ccdc1e41 100644 (file)
@@ -57,9 +57,8 @@
  */
 
 #include <stdio.h>
-#include <sys/types.h>
 #include <time.h>
-#include "rand.h"
+#include <openssl/rand.h>
 
 #ifdef NO_RAND
 static RAND_METHOD *rand_meth=NULL;
@@ -68,36 +67,51 @@ extern RAND_METHOD rand_ssleay_meth;
 static RAND_METHOD *rand_meth= &rand_ssleay_meth;
 #endif
 
-void RAND_set_rand_method(meth)
-RAND_METHOD *meth;
+void RAND_set_rand_method(RAND_METHOD *meth)
        {
        rand_meth=meth;
        }
 
-RAND_METHOD *RAND_get_rand_method()
+RAND_METHOD *RAND_get_rand_method(void)
        {
        return(rand_meth);
        }
 
-void RAND_cleanup()
+void RAND_cleanup(void)
        {
        if (rand_meth != NULL)
                rand_meth->cleanup();
        }
 
-void RAND_seed(buf,num)
-const void *buf;
-int num;
+void RAND_seed(const void *buf, int num)
        {
        if (rand_meth != NULL)
                rand_meth->seed(buf,num);
        }
 
-void RAND_bytes(buf,num)
-unsigned char *buf;
-int num;
+void RAND_add(const void *buf, int num, double entropy)
        {
        if (rand_meth != NULL)
-               rand_meth->bytes(buf,num);
+               rand_meth->add(buf,num,entropy);
        }
 
+int RAND_bytes(unsigned char *buf, int num)
+       {
+       if (rand_meth != NULL)
+               return rand_meth->bytes(buf,num);
+       return(-1);
+       }
+
+int RAND_pseudo_bytes(unsigned char *buf, int num)
+       {
+       if (rand_meth != NULL)
+               return rand_meth->pseudorand(buf,num);
+       return(-1);
+       }
+
+int RAND_status(void)
+       {
+       if (rand_meth != NULL)
+               return rand_meth->status();
+       return 0;
+       }