summaryrefslogtreecommitdiff
path: root/src/lib/libcrypto/des/rand_key.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/libcrypto/des/rand_key.c')
-rw-r--r--src/lib/libcrypto/des/rand_key.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/src/lib/libcrypto/des/rand_key.c b/src/lib/libcrypto/des/rand_key.c
index 7816a8f25c..ee1a6c274e 100644
--- a/src/lib/libcrypto/des/rand_key.c
+++ b/src/lib/libcrypto/des/rand_key.c
@@ -63,7 +63,11 @@ void des_random_seed(des_cblock *key)
63 63
64int des_random_key(des_cblock *ret) 64int des_random_key(des_cblock *ret)
65 { 65 {
66 int r = RAND_bytes((unsigned char *)ret, sizeof(des_cblock)); 66 do
67 {
68 if (RAND_bytes((unsigned char *)ret, sizeof(des_cblock)) != 1)
69 return (0);
70 } while (des_is_weak_key(ret));
67 des_set_odd_parity(ret); 71 des_set_odd_parity(ret);
68 return r; 72 return (1);
69 } 73 }