diff options
author | Damien Miller <djm@mindrot.org> | 2006-11-05 05:32:02 +1100 |
---|---|---|
committer | Damien Miller <djm@mindrot.org> | 2006-11-05 05:32:02 +1100 |
commit | 570c2ab1b619ea36a06bfbf21d88a82683cc4213 (patch) | |
tree | 7564b301ac020a29c41f456b7e47b6e252af5e9d /kexgexc.c | |
parent | 3975ee2c3ce78af4f62ff8e9e5b636ef378b7f6b (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.c | 8 |
1 files changed, 5 insertions, 3 deletions
@@ -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 |