Fix bug where client initiated rekeying failed.

pull/29/head
John Safranek 2017-06-12 11:58:39 -07:00
parent 687d13a349
commit 3cb286b600
1 changed files with 4 additions and 2 deletions

View File

@ -1347,12 +1347,14 @@ static int DoKexInit(WOLFSSH* ssh, uint8_t* buf, uint32_t len, uint32_t* idx)
*idx = begin; *idx = begin;
ssh->clientState = CLIENT_KEXINIT_DONE; 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"); WLOG(WS_LOG_DEBUG, "KeyingState now KEXINIT_RECV");
ssh->keyingState = KEYING_KEXINIT_RECV; ssh->keyingState = KEYING_KEXINIT_RECV;
ret = SendKexInit(ssh); ret = SendKexInit(ssh);
} }
else if (KEYING_KEXINIT_SENT) { else if (ssh->keyingState == KEYING_KEXINIT_SENT) {
WLOG(WS_LOG_DEBUG, "KeyingState now KEXINIT_DONE"); WLOG(WS_LOG_DEBUG, "KeyingState now KEXINIT_DONE");
ssh->keyingState = KEYING_KEXINIT_DONE; ssh->keyingState = KEYING_KEXINIT_DONE;
} }