summaryrefslogtreecommitdiff
path: root/kexgex.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 /kexgex.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 'kexgex.c')
-rw-r--r--kexgex.c17
1 files changed, 7 insertions, 10 deletions
diff --git a/kexgex.c b/kexgex.c
index 6e8be78b..df7e668b 100644
--- a/kexgex.c
+++ b/kexgex.c
@@ -24,7 +24,7 @@
*/
#include "includes.h"
-RCSID("$OpenBSD: kexgex.c,v 1.2 2001/04/03 23:32:12 markus Exp $");
+RCSID("$OpenBSD: kexgex.c,v 1.3 2001/04/04 09:48:34 markus Exp $");
#include <openssl/bn.h>
@@ -228,6 +228,8 @@ kexgex_client(Kex *kex)
dh_server_pub,
shared_secret
);
+ /* have keys, free DH */
+ DH_free(dh);
xfree(server_host_key_blob);
BN_free(dh_server_pub);
@@ -242,14 +244,10 @@ kexgex_client(Kex *kex)
kex->session_id = xmalloc(kex->session_id_len);
memcpy(kex->session_id, hash, kex->session_id_len);
}
-
kex_derive_keys(kex, hash, shared_secret);
BN_clear_free(shared_secret);
- kex_send_newkeys();
-
- /* have keys, free DH */
- DH_free(dh);
+ kex_finish(kex);
}
/* server */
@@ -391,14 +389,13 @@ kexgex_server(Kex *kex)
packet_send();
xfree(signature);
xfree(server_host_key_blob);
+ /* have keys, free DH */
+ DH_free(dh);
kex_derive_keys(kex, hash, shared_secret);
BN_clear_free(shared_secret);
- kex_send_newkeys();
-
- /* have keys, free DH */
- DH_free(dh);
+ kex_finish(kex);
}
void