summaryrefslogtreecommitdiff
path: root/kexdh.c
diff options
context:
space:
mode:
authorBen Lindstrom <mouring@eviladmin.org>2001-04-04 17:52:53 +0000
committerBen Lindstrom <mouring@eviladmin.org>2001-04-04 17:52:53 +0000
commit238abf6a14d6ed038918fa35f618089230e68fd6 (patch)
tree7a856c03b822853fc08ef711e6a0bf05c738e6a0 /kexdh.c
parent22b19b43e420c9fc711a38631187820573d0f047 (diff)
- markus@cvs.openbsd.org 2001/04/04 09:48:35
[kex.c kex.h kexdh.c kexgex.c packet.c sshconnect2.c sshd.c] don't sent multiple kexinit-requests. send newkeys, block while waiting for newkeys. fix comments.
Diffstat (limited to 'kexdh.c')
-rw-r--r--kexdh.c14
1 files changed, 7 insertions, 7 deletions
diff --git a/kexdh.c b/kexdh.c
index 8449ec06a..7b6a22040 100644
--- a/kexdh.c
+++ b/kexdh.c
@@ -23,7 +23,7 @@
23 */ 23 */
24 24
25#include "includes.h" 25#include "includes.h"
26RCSID("$OpenBSD: kexdh.c,v 1.2 2001/04/03 23:32:12 markus Exp $"); 26RCSID("$OpenBSD: kexdh.c,v 1.3 2001/04/04 09:48:34 markus Exp $");
27 27
28#include <openssl/crypto.h> 28#include <openssl/crypto.h>
29#include <openssl/bn.h> 29#include <openssl/bn.h>
@@ -170,8 +170,8 @@ kexdh_client(Kex *kex)
170 shared_secret 170 shared_secret
171 ); 171 );
172 xfree(server_host_key_blob); 172 xfree(server_host_key_blob);
173 DH_free(dh);
174 BN_free(dh_server_pub); 173 BN_free(dh_server_pub);
174 DH_free(dh);
175 175
176 if (key_verify(server_host_key, (u_char *)signature, slen, hash, 20) != 1) 176 if (key_verify(server_host_key, (u_char *)signature, slen, hash, 20) != 1)
177 fatal("key_verify failed for server_host_key"); 177 fatal("key_verify failed for server_host_key");
@@ -187,7 +187,7 @@ kexdh_client(Kex *kex)
187 187
188 kex_derive_keys(kex, hash, shared_secret); 188 kex_derive_keys(kex, hash, shared_secret);
189 BN_clear_free(shared_secret); 189 BN_clear_free(shared_secret);
190 kex_send_newkeys(); 190 kex_finish(kex);
191} 191}
192 192
193/* server */ 193/* server */
@@ -283,15 +283,15 @@ kexdh_server(Kex *kex)
283 packet_put_bignum2(dh->pub_key); /* f */ 283 packet_put_bignum2(dh->pub_key); /* f */
284 packet_put_string((char *)signature, slen); 284 packet_put_string((char *)signature, slen);
285 packet_send(); 285 packet_send();
286
286 xfree(signature); 287 xfree(signature);
287 xfree(server_host_key_blob); 288 xfree(server_host_key_blob);
289 /* have keys, free DH */
290 DH_free(dh);
288 291
289 kex_derive_keys(kex, hash, shared_secret); 292 kex_derive_keys(kex, hash, shared_secret);
290 BN_clear_free(shared_secret); 293 BN_clear_free(shared_secret);
291 kex_send_newkeys(); 294 kex_finish(kex);
292
293 /* have keys, free DH */
294 DH_free(dh);
295} 295}
296 296
297void 297void