From: Matt Caswell Date: Tue, 22 Nov 2016 16:54:28 +0000 (+0000) Subject: Stop server from expecting Certificate message when not requested X-Git-Tag: OpenSSL_1_1_1-pre1~2639 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=23573051a57ec68fe53f7fd0c3aa75ac6033c496;p=oweals%2Fopenssl.git Stop server from expecting Certificate message when not requested In a non client-auth renegotiation where the original handshake *was* client auth, then the server will expect the client to send a Certificate message anyway resulting in a connection failure. Reviewed-by: Richard Levitte (Merged from https://github.com/openssl/openssl/pull/1982) --- diff --git a/ssl/statem/statem.c b/ssl/statem/statem.c index f39a529463..51a9266e42 100644 --- a/ssl/statem/statem.c +++ b/ssl/statem/statem.c @@ -347,6 +347,8 @@ static int state_machine(SSL *s, int server) */ s->ctx->stats.sess_accept_renegotiate++; } + + s->s3->tmp.cert_request = 0; } else { s->ctx->stats.sess_connect++; @@ -354,7 +356,6 @@ static int state_machine(SSL *s, int server) memset(s->s3->client_random, 0, sizeof(s->s3->client_random)); s->hit = 0; - s->s3->tmp.cert_request = 0; s->s3->tmp.cert_req = 0; if (SSL_IS_DTLS(s)) {