Fixes so it will compile again under Win32.
[openssl.git] / crypto / rand / md_rand.c
index c2230b10f44c32534d3e3a8909de41b571d1abef..ab7e41c8ec37ef285c4bbf122415e8fe8958ecc7 100644 (file)
  */
 
 #include <stdio.h>
-#include "cryptlib.h"
 #include <sys/types.h>
 #include <time.h>
+#include <string.h>
+#include <openssl/e_os.h>
+#include <openssl/crypto.h>
 
 #if !defined(USE_MD5_RAND) && !defined(USE_SHA1_RAND) && !defined(USE_MDC2_RAND) && !defined(USE_MD2_RAND)
 #ifndef NO_MD5
@@ -82,7 +84,7 @@ We need a message digest of some type
  */
 
 #if defined(USE_MD5_RAND)
-#include "md5.h"
+#include <openssl/md5.h>
 #define MD_DIGEST_LENGTH       MD5_DIGEST_LENGTH
 #define MD_CTX                 MD5_CTX
 #define MD_Init(a)             MD5_Init(a)
@@ -90,7 +92,7 @@ We need a message digest of some type
 #define        MD_Final(a,b)           MD5_Final(a,b)
 #define        MD(a,b,c)               MD5(a,b,c)
 #elif defined(USE_SHA1_RAND)
-#include "sha.h"
+#include <openssl/sha.h>
 #define MD_DIGEST_LENGTH       SHA_DIGEST_LENGTH
 #define MD_CTX                 SHA_CTX
 #define MD_Init(a)             SHA1_Init(a)
@@ -98,7 +100,7 @@ We need a message digest of some type
 #define        MD_Final(a,b)           SHA1_Final(a,b)
 #define        MD(a,b,c)               SHA1(a,b,c)
 #elif defined(USE_MDC2_RAND)
-#include "mdc2.h"
+#include <openssl/mdc2.h>
 #define MD_DIGEST_LENGTH       MDC2_DIGEST_LENGTH
 #define MD_CTX                 MDC2_CTX
 #define MD_Init(a)             MDC2_Init(a)
@@ -106,7 +108,7 @@ We need a message digest of some type
 #define        MD_Final(a,b)           MDC2_Final(a,b)
 #define        MD(a,b,c)               MDC2(a,b,c)
 #elif defined(USE_MD2_RAND)
-#include "md2.h"
+#include <openssl/md2.h>
 #define MD_DIGEST_LENGTH       MD2_DIGEST_LENGTH
 #define MD_CTX                 MD2_CTX
 #define MD_Init(a)             MD2_Init(a)
@@ -115,7 +117,7 @@ We need a message digest of some type
 #define        MD(a,b,c)               MD2(a,b,c)
 #endif
 
-#include "rand.h"
+#include <openssl/rand.h>
 
 /* #define NORAND      1 */
 /* #define PREDICT     1 */
@@ -126,10 +128,10 @@ static unsigned char state[STATE_SIZE+MD_DIGEST_LENGTH];
 static unsigned char md[MD_DIGEST_LENGTH];
 static long md_count[2]={0,0};
 
-char *RAND_version="RAND part of OpenSSL 0.9.1c 23-Dec-1998";
+const char *RAND_version="RAND" OPENSSL_VERSION_PTEXT;
 
 static void ssleay_rand_cleanup(void);
-static void ssleay_rand_seed(unsigned char *buf, int num);
+static void ssleay_rand_seed(const void *buf, int num);
 static void ssleay_rand_bytes(unsigned char *buf, int num);
 
 RAND_METHOD rand_ssleay_meth={
@@ -138,12 +140,12 @@ RAND_METHOD rand_ssleay_meth={
        ssleay_rand_cleanup,
        }; 
 
-RAND_METHOD *RAND_SSLeay()
+RAND_METHOD *RAND_SSLeay(void)
        {
        return(&rand_ssleay_meth);
        }
 
-static void ssleay_rand_cleanup()
+static void ssleay_rand_cleanup(void)
        {
        memset(state,0,sizeof(state));
        state_num=0;
@@ -153,9 +155,7 @@ static void ssleay_rand_cleanup()
        md_count[1]=0;
        }
 
-static void ssleay_rand_seed(buf,num)
-unsigned char *buf;
-int num;
+static void ssleay_rand_seed(const void *buf, int num)
        {
        int i,j,k,st_idx,st_num;
        MD_CTX m;
@@ -202,7 +202,7 @@ int num;
                MD_Final(md,&m);
                md_count[1]++;
 
-               buf+=j;
+               buf=(const char *)buf + j;
 
                for (k=0; k<j; k++)
                        {
@@ -217,9 +217,7 @@ int num;
        memset((char *)&m,0,sizeof(m));
        }
 
-static void ssleay_rand_bytes(buf,num)
-unsigned char *buf;
-int num;
+static void ssleay_rand_bytes(unsigned char *buf, int num)
        {
        int i,j,k,st_num,st_idx;
        MD_CTX m;
@@ -243,19 +241,18 @@ int num;
 
        if (init)
                {
-               init=0;
                CRYPTO_w_unlock(CRYPTO_LOCK_RAND);
                /* put in some default random data, we need more than
                 * just this */
-               RAND_seed((unsigned char *)&m,sizeof(m));
+               RAND_seed(&m,sizeof(m));
 #ifndef MSDOS
                l=getpid();
-               RAND_seed((unsigned char *)&l,sizeof(l));
+               RAND_seed(&l,sizeof(l));
                l=getuid();
-               RAND_seed((unsigned char *)&l,sizeof(l));
+               RAND_seed(&l,sizeof(l));
 #endif
                l=time(NULL);
-               RAND_seed((unsigned char *)&l,sizeof(l));
+               RAND_seed(&l,sizeof(l));
 
 /* #ifdef DEVRANDOM */
                /* 
@@ -283,6 +280,7 @@ int num;
                memset(md,0,MD_DIGEST_LENGTH);
 #endif
                CRYPTO_w_lock(CRYPTO_LOCK_RAND);
+               init=0;
                }
 
        st_idx=state_index;
@@ -332,7 +330,7 @@ int num;
 
 #ifdef WINDOWS
 #include <windows.h>
-#include <rand.h>
+#include <openssl/rand.h>
 
 /*****************************************************************************
  * Initialisation function for the SSL random generator.  Takes the contents
@@ -344,13 +342,13 @@ int num;
  * <URL:http://www.microsoft.com/kb/developr/win_dk/q97193.htm>;
  * the original copyright message is:
  *
-//   (C) Copyright Microsoft Corp. 1993.  All rights reserved.
-//
-//   You have a royalty-free right to use, modify, reproduce and
-//   distribute the Sample Files (and/or any modified version) in
-//   any way you find useful, provided that you agree that
-//   Microsoft has no warranty obligations or liability for any
-//   Sample Application Files which are modified.
+ *   (C) Copyright Microsoft Corp. 1993.  All rights reserved.
+ *
+ *   You have a royalty-free right to use, modify, reproduce and
+ *   distribute the Sample Files (and/or any modified version) in
+ *   any way you find useful, provided that you agree that
+ *   Microsoft has no warranty obligations or liability for any
+ *   Sample Application Files which are modified.
  */
 /*
  * I have modified the loading of bytes via RAND_seed() mechanism since