diff options
author | jsing <> | 2014-10-22 13:02:04 +0000 |
---|---|---|
committer | jsing <> | 2014-10-22 13:02:04 +0000 |
commit | a2960bc2e14b4c5f7d8f78d2a69ebb537ca4afa8 (patch) | |
tree | 32d920c77e1ecf12be5fad632b9ae71343194a7c /src/lib/libcrypto/des/rand_key.c | |
parent | 5a6d7fd5a10b0ad084948463b25822d91091b325 (diff) | |
download | openbsd-a2960bc2e14b4c5f7d8f78d2a69ebb537ca4afa8.tar.gz openbsd-a2960bc2e14b4c5f7d8f78d2a69ebb537ca4afa8.tar.bz2 openbsd-a2960bc2e14b4c5f7d8f78d2a69ebb537ca4afa8.zip |
Use arc4random_buf() instead of RAND_bytes() or RAND_pseudo_bytes().
arc4random_buf() is guaranteed to always succeed - it is worth noting
that a number of the replaced function calls were already missing return
value checks.
ok deraadt@
Diffstat (limited to 'src/lib/libcrypto/des/rand_key.c')
-rw-r--r-- | src/lib/libcrypto/des/rand_key.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/src/lib/libcrypto/des/rand_key.c b/src/lib/libcrypto/des/rand_key.c index 727d36f488..7abb811df4 100644 --- a/src/lib/libcrypto/des/rand_key.c +++ b/src/lib/libcrypto/des/rand_key.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: rand_key.c,v 1.7 2014/07/22 18:09:20 miod Exp $ */ | 1 | /* $OpenBSD: rand_key.c,v 1.8 2014/10/22 13:02:04 jsing Exp $ */ |
2 | /* ==================================================================== | 2 | /* ==================================================================== |
3 | * Copyright (c) 1998-2000 The OpenSSL Project. All rights reserved. | 3 | * Copyright (c) 1998-2000 The OpenSSL Project. All rights reserved. |
4 | * | 4 | * |
@@ -53,15 +53,15 @@ | |||
53 | * | 53 | * |
54 | */ | 54 | */ |
55 | 55 | ||
56 | #include <stdlib.h> | ||
57 | |||
56 | #include <openssl/des.h> | 58 | #include <openssl/des.h> |
57 | #include <openssl/rand.h> | ||
58 | 59 | ||
59 | int | 60 | int |
60 | DES_random_key(DES_cblock *ret) | 61 | DES_random_key(DES_cblock *ret) |
61 | { | 62 | { |
62 | do { | 63 | do { |
63 | if (RAND_bytes((unsigned char *)ret, sizeof(DES_cblock)) != 1) | 64 | arc4random_buf(ret, sizeof(DES_cblock)); |
64 | return (0); | ||
65 | DES_set_odd_parity(ret); | 65 | DES_set_odd_parity(ret); |
66 | } while (DES_is_weak_key(ret)); | 66 | } while (DES_is_weak_key(ret)); |
67 | return (1); | 67 | return (1); |