diff options
Diffstat (limited to 'dh.c')
-rw-r--r-- | dh.c | 9 |
1 files changed, 6 insertions, 3 deletions
@@ -23,13 +23,14 @@ | |||
23 | */ | 23 | */ |
24 | 24 | ||
25 | #include "includes.h" | 25 | #include "includes.h" |
26 | RCSID("$OpenBSD: dh.c,v 1.19 2001/12/27 19:37:22 markus Exp $"); | 26 | RCSID("$OpenBSD: dh.c,v 1.20 2002/03/06 00:20:54 markus Exp $"); |
27 | 27 | ||
28 | #include "xmalloc.h" | 28 | #include "xmalloc.h" |
29 | 29 | ||
30 | #include <openssl/bn.h> | 30 | #include <openssl/bn.h> |
31 | #include <openssl/dh.h> | 31 | #include <openssl/dh.h> |
32 | #include <openssl/evp.h> | 32 | #include <openssl/evp.h> |
33 | #include <openssl/err.h> | ||
33 | 34 | ||
34 | #include "buffer.h" | 35 | #include "buffer.h" |
35 | #include "cipher.h" | 36 | #include "cipher.h" |
@@ -207,8 +208,10 @@ dh_gen_key(DH *dh, int need) | |||
207 | if ((dh->priv_key = BN_new()) == NULL) | 208 | if ((dh->priv_key = BN_new()) == NULL) |
208 | fatal("dh_gen_key: BN_new failed"); | 209 | fatal("dh_gen_key: BN_new failed"); |
209 | /* generate a 2*need bits random private exponent */ | 210 | /* generate a 2*need bits random private exponent */ |
210 | if (!BN_rand(dh->priv_key, 2*need, 0, 0)) | 211 | if (!BN_rand(dh->priv_key, 2*need, 0, 0)) { |
211 | fatal("dh_gen_key: BN_rand failed"); | 212 | int ecode = ERR_get_error(); |
213 | fatal("dh_gen_key: BN_rand failed: %s", ERR_error_string(ecode, NULL)); | ||
214 | } | ||
212 | if (DH_generate_key(dh) == 0) | 215 | if (DH_generate_key(dh) == 0) |
213 | fatal("DH_generate_key"); | 216 | fatal("DH_generate_key"); |
214 | for (i = 0; i <= BN_num_bits(dh->priv_key); i++) | 217 | for (i = 0; i <= BN_num_bits(dh->priv_key); i++) |