summaryrefslogtreecommitdiff
path: root/kexgexc.c
diff options
context:
space:
mode:
authorDamien Miller <djm@mindrot.org>2006-11-05 05:32:02 +1100
committerDamien Miller <djm@mindrot.org>2006-11-05 05:32:02 +1100
commit570c2ab1b619ea36a06bfbf21d88a82683cc4213 (patch)
tree7564b301ac020a29c41f456b7e47b6e252af5e9d /kexgexc.c
parent3975ee2c3ce78af4f62ff8e9e5b636ef378b7f6b (diff)
- markus@cvs.openbsd.org 2006/10/31 16:33:12
[kexdhc.c kexdhs.c kexgexc.c kexgexs.c] check DH_compute_key() for -1 even if it should not happen because of earlier calls to dh_pub_is_valid(); report krahmer at suse.de; ok djm
Diffstat (limited to 'kexgexc.c')
-rw-r--r--kexgexc.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/kexgexc.c b/kexgexc.c
index 2c19713e1..49d50116a 100644
--- a/kexgexc.c
+++ b/kexgexc.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: kexgexc.c,v 1.9 2006/08/03 03:34:42 deraadt Exp $ */ 1/* $OpenBSD: kexgexc.c,v 1.10 2006/10/31 16:33:12 markus Exp $ */
2/* 2/*
3 * Copyright (c) 2000 Niels Provos. All rights reserved. 3 * Copyright (c) 2000 Niels Provos. All rights reserved.
4 * Copyright (c) 2001 Markus Friedl. All rights reserved. 4 * Copyright (c) 2001 Markus Friedl. All rights reserved.
@@ -51,7 +51,8 @@ kexgex_client(Kex *kex)
51 BIGNUM *p = NULL, *g = NULL; 51 BIGNUM *p = NULL, *g = NULL;
52 Key *server_host_key; 52 Key *server_host_key;
53 u_char *kbuf, *hash, *signature = NULL, *server_host_key_blob = NULL; 53 u_char *kbuf, *hash, *signature = NULL, *server_host_key_blob = NULL;
54 u_int klen, kout, slen, sbloblen, hashlen; 54 u_int klen, slen, sbloblen, hashlen;
55 int kout;
55 int min, max, nbits; 56 int min, max, nbits;
56 DH *dh; 57 DH *dh;
57 58
@@ -150,7 +151,8 @@ kexgex_client(Kex *kex)
150 151
151 klen = DH_size(dh); 152 klen = DH_size(dh);
152 kbuf = xmalloc(klen); 153 kbuf = xmalloc(klen);
153 kout = DH_compute_key(kbuf, dh_server_pub, dh); 154 if ((kout = DH_compute_key(kbuf, dh_server_pub, dh)) < 0)
155 fatal("DH_compute_key: failed");
154#ifdef DEBUG_KEXDH 156#ifdef DEBUG_KEXDH
155 dump_digest("shared secret", kbuf, kout); 157 dump_digest("shared secret", kbuf, kout);
156#endif 158#endif