From 3cb286b6006a188af85933399b19544aa7d8fbc0 Mon Sep 17 00:00:00 2001 From: John Safranek Date: Mon, 12 Jun 2017 11:58:39 -0700 Subject: [PATCH] Fix bug where client initiated rekeying failed. --- src/internal.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/internal.c b/src/internal.c index ad4cd1f7..6b99673f 100644 --- a/src/internal.c +++ b/src/internal.c @@ -1347,12 +1347,14 @@ static int DoKexInit(WOLFSSH* ssh, uint8_t* buf, uint32_t len, uint32_t* idx) *idx = begin; ssh->clientState = CLIENT_KEXINIT_DONE; - if (ssh->keyingState == KEYING_UNKEYED) { + if (ssh->keyingState == KEYING_UNKEYED || + ssh->keyingState == KEYING_KEYED) { + WLOG(WS_LOG_DEBUG, "KeyingState now KEXINIT_RECV"); ssh->keyingState = KEYING_KEXINIT_RECV; ret = SendKexInit(ssh); } - else if (KEYING_KEXINIT_SENT) { + else if (ssh->keyingState == KEYING_KEXINIT_SENT) { WLOG(WS_LOG_DEBUG, "KeyingState now KEXINIT_DONE"); ssh->keyingState = KEYING_KEXINIT_DONE; }