VMS stuff I forgot...
authorRichard Levitte <levitte@openssl.org>
Sat, 3 Jan 2009 09:25:32 +0000 (09:25 +0000)
committerRichard Levitte <levitte@openssl.org>
Sat, 3 Jan 2009 09:25:32 +0000 (09:25 +0000)
crypto/install.com
crypto/rand/md_rand.c
makevms.com

index e05cef2..9501573 100644 (file)
@@ -62,6 +62,7 @@ $     EXHEADER_BF := blowfish.h
 $      EXHEADER_CAST := cast.h
 $      EXHEADER_CAMELLIA := camellia.h
 $      EXHEADER_SEED := seed.h
+$      EXHEADER_MODES := modes.h
 $      EXHEADER_BN := bn.h
 $      EXHEADER_EC := ec.h
 $      EXHEADER_RSA := rsa.h
index 810b4c2..88088ce 100644 (file)
@@ -272,8 +272,16 @@ static void ssleay_rand_add(const void *buf, int num, double add)
                        }
                else
                        MD_Update(&m,&(state[st_idx]),j);
-                       
+
+               /* DO NOT REMOVE THE FOLLOWING CALL TO MD_Update()! */
                MD_Update(&m,buf,j);
+               /* We know that line may cause programs such as
+                  purify and valgrind to complain about use of
+                  uninitialized data.  The problem is not, it's
+                  with the caller.  Removing that line will make
+                  sure you get really bad randomness and thereby
+                  other problems such as very insecure keys. */
+
                MD_Update(&m,(unsigned char *)&(md_c[0]),sizeof(md_c));
                MD_Final(&m,local_md);
                md_c[1]++;
@@ -466,9 +474,15 @@ static int ssleay_rand_bytes(unsigned char *buf, int num)
 #endif
                MD_Update(&m,local_md,MD_DIGEST_LENGTH);
                MD_Update(&m,(unsigned char *)&(md_c[0]),sizeof(md_c));
-#ifndef PURIFY
-               MD_Update(&m,buf,j); /* purify complains */
+
+#ifndef PURIFY /* purify complains */
+               /* DO NOT REMOVE THE FOLLOWING CALL TO MD_Update()! */
+               MD_Update(&m,buf,j);
+               /* We know that line may cause programs such as
+                  purify and valgrind to complain about use of
+                  uninitialized data.  */
 #endif
+
                k=(st_idx+MD_DIGEST_LENGTH/2)-st_num;
                if (k > 0)
                        {
index 933dfcd..092ce9e 100755 (executable)
@@ -454,6 +454,7 @@ $ EXHEADER_BF := blowfish.h
 $ EXHEADER_CAST := cast.h
 $ EXHEADER_CAMELLIA := camellia.h
 $ EXHEADER_SEED := seed.h
+$ EXHEADER_MODES := modes.h
 $ EXHEADER_BN := bn.h
 $ EXHEADER_EC := ec.h
 $ EXHEADER_RSA := rsa.h