Add $(LIB_CFLAGS) for any build.info generator that uses $(CFLAGS)
[openssl.git] / crypto / des / rand_key.c
index 7816a8f25c177af657f779e1c3e083077f6f04e4..da95bfebae29ce9a6303b6af9ef25e69ac0783c5 100644 (file)
@@ -1,4 +1,3 @@
-/* crypto/des/rand_key.c */
 /* ====================================================================
  * Copyright (c) 1998-2000 The OpenSSL Project.  All rights reserved.
  *
@@ -7,7 +6,7 @@
  * are met:
  *
  * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer. 
+ *    notice, this list of conditions and the following disclaimer.
  *
  * 2. Redistributions in binary form must reproduce the above copyright
  *    notice, this list of conditions and the following disclaimer in
 #include <openssl/des.h>
 #include <openssl/rand.h>
 
-void des_random_seed(des_cblock *key)
-       {
-       RAND_seed(key, sizeof(des_cblock));
-       }
-
-int des_random_key(des_cblock *ret)
-       {
-       int r = RAND_bytes((unsigned char *)ret, sizeof(des_cblock));
-       des_set_odd_parity(ret);
-       return r;
-       }
+int DES_random_key(DES_cblock *ret)
+{
+    do {
+        if (RAND_bytes((unsigned char *)ret, sizeof(DES_cblock)) != 1)
+            return (0);
+    } while (DES_is_weak_key(ret));
+    DES_set_odd_parity(ret);
+    return (1);
+}