From cc604d23befdfc6f097815e285dc85a09b47e0b0 Mon Sep 17 00:00:00 2001 From: toddouska Date: Thu, 30 Jul 2015 16:45:31 -0700 Subject: [PATCH] fix psk no server hint sanity check --- src/internal.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/internal.c b/src/internal.c index fa4208c44..e4b6d9536 100644 --- a/src/internal.c +++ b/src/internal.c @@ -4780,9 +4780,17 @@ static int SanityCheckMsgReceived(WOLFSSL* ssl, byte type) } } if (ssl->msgsReceived.got_server_key_exchange == 0) { + int pskNoServerHint = 0; /* not required in this case */ + + #ifndef NO_PSK + if (ssl->specs.kea == psk_kea && + ssl->arrays->server_hint[0] == 0) + pskNoServerHint = 1; + #endif if (ssl->specs.static_ecdh == 1 || ssl->specs.kea == rsa_kea || - ssl->specs.kea == ntru_kea) { + ssl->specs.kea == ntru_kea || + pskNoServerHint) { WOLFSSL_MSG("No KeyExchange required"); } else { WOLFSSL_MSG("No ServerKeyExchange before ServerDone");