summaryrefslogtreecommitdiff
path: root/src/lib/libssl/ssl_srvr.c
diff options
context:
space:
mode:
authorjsing <>2018-11-21 15:13:29 +0000
committerjsing <>2018-11-21 15:13:29 +0000
commitab91451e6ebf1260022c78c25a334e437c04d78e (patch)
tree7992535c747d2aff7dd9a131f8fc65ad2af3636d /src/lib/libssl/ssl_srvr.c
parent1b50b4396296c64d8937c2ec1c7ed2eb5547cf91 (diff)
downloadopenbsd-ab91451e6ebf1260022c78c25a334e437c04d78e.tar.gz
openbsd-ab91451e6ebf1260022c78c25a334e437c04d78e.tar.bz2
openbsd-ab91451e6ebf1260022c78c25a334e437c04d78e.zip
Fix DTLS transcript handling for HelloVerifyRequest.
If DTLS sees a HelloVerifyRequest the transcript is reset - the previous tls1_init_finished_mac() function could be called multiple times and would discard any existing state. The replacement tls1_transcript_init() is more strict and fails if a transcript already exists. Provide an explicit tls1_transcript_reset() function and call it from the appropriate places. This also lets us make DTLS less of a special snowflake and call tls1_transcript_init() in the same place as used for TLS. ok beck@ tb@
Diffstat (limited to 'src/lib/libssl/ssl_srvr.c')
-rw-r--r--src/lib/libssl/ssl_srvr.c7
1 files changed, 2 insertions, 5 deletions
diff --git a/src/lib/libssl/ssl_srvr.c b/src/lib/libssl/ssl_srvr.c
index 27024be856..0667ac8da3 100644
--- a/src/lib/libssl/ssl_srvr.c
+++ b/src/lib/libssl/ssl_srvr.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: ssl_srvr.c,v 1.60 2018/11/11 21:54:47 beck Exp $ */ 1/* $OpenBSD: ssl_srvr.c,v 1.61 2018/11/21 15:13:29 jsing Exp $ */
2/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) 2/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
3 * All rights reserved. 3 * All rights reserved.
4 * 4 *
@@ -368,10 +368,7 @@ ssl3_accept(SSL *s)
368 S3I(s)->hs.next_state = SSL3_ST_SR_CLNT_HELLO_A; 368 S3I(s)->hs.next_state = SSL3_ST_SR_CLNT_HELLO_A;
369 369
370 /* HelloVerifyRequest resets Finished MAC. */ 370 /* HelloVerifyRequest resets Finished MAC. */
371 if (!tls1_transcript_init(s)) { 371 tls1_transcript_reset(s);
372 ret = -1;
373 goto end;
374 }
375 break; 372 break;
376 373
377 case SSL3_ST_SW_SRVR_HELLO_A: 374 case SSL3_ST_SW_SRVR_HELLO_A: