Bring des_locl.h at the same level as in the 0.9.7 branch.
[openssl.git] / crypto / des / rand_key.c
index 7816a8f25c177af657f779e1c3e083077f6f04e4..23981655685800ea24a459af3b7694d9df26eb99 100644 (file)
 #include <openssl/des.h>
 #include <openssl/rand.h>
 
-void des_random_seed(des_cblock *key)
+int DES_random_key(DES_cblock *ret)
        {
-       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;
+       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);
        }