summaryrefslogtreecommitdiff
path: root/dh.c
diff options
context:
space:
mode:
Diffstat (limited to 'dh.c')
-rw-r--r--dh.c10
1 files changed, 4 insertions, 6 deletions
diff --git a/dh.c b/dh.c
index 996428b7f..c7a3e18be 100644
--- a/dh.c
+++ b/dh.c
@@ -23,7 +23,7 @@
23 */ 23 */
24 24
25#include "includes.h" 25#include "includes.h"
26RCSID("$OpenBSD: dh.c,v 1.24 2003/04/08 20:21:28 itojun Exp $"); 26RCSID("$OpenBSD: dh.c,v 1.26 2003/12/16 15:51:54 markus Exp $");
27 27
28#include "xmalloc.h" 28#include "xmalloc.h"
29 29
@@ -198,7 +198,7 @@ dh_gen_key(DH *dh, int need)
198 198
199 if (dh->p == NULL) 199 if (dh->p == NULL)
200 fatal("dh_gen_key: dh->p == NULL"); 200 fatal("dh_gen_key: dh->p == NULL");
201 if (2*need >= BN_num_bits(dh->p)) 201 if (need > INT_MAX / 2 || 2 * need >= BN_num_bits(dh->p))
202 fatal("dh_gen_key: group too small: %d (2*need %d)", 202 fatal("dh_gen_key: group too small: %d (2*need %d)",
203 BN_num_bits(dh->p), 2*need); 203 BN_num_bits(dh->p), 2*need);
204 do { 204 do {
@@ -279,11 +279,9 @@ int
279dh_estimate(int bits) 279dh_estimate(int bits)
280{ 280{
281 281
282 if (bits < 64) 282 if (bits <= 128)
283 return (512); /* O(2**63) */
284 if (bits < 128)
285 return (1024); /* O(2**86) */ 283 return (1024); /* O(2**86) */
286 if (bits < 192) 284 if (bits <= 192)
287 return (2048); /* O(2**116) */ 285 return (2048); /* O(2**116) */
288 return (4096); /* O(2**156) */ 286 return (4096); /* O(2**156) */
289} 287}