summaryrefslogtreecommitdiffstats
path: root/ssl/statem/statem.c
diff options
context:
space:
mode:
authorMatt Caswell <matt@openssl.org>2016-11-22 16:54:28 +0000
committerMatt Caswell <matt@openssl.org>2017-01-23 14:04:44 +0000
commit23573051a57ec68fe53f7fd0c3aa75ac6033c496 (patch)
tree05d822835f5ea35acb7b094fdfdb0686bf670169 /ssl/statem/statem.c
parent10305baf26f1a43348e855266ed1f21840ec3d7d (diff)
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 <levitte@openssl.org> (Merged from https://github.com/openssl/openssl/pull/1982)
Diffstat (limited to 'ssl/statem/statem.c')
-rw-r--r--ssl/statem/statem.c3
1 files changed, 2 insertions, 1 deletions
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)) {