summaryrefslogtreecommitdiff
path: root/src/lib
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib')
-rw-r--r--src/lib/libssl/ssl.h4
-rw-r--r--src/lib/libssl/ssl_pkt.c10
2 files changed, 12 insertions, 2 deletions
diff --git a/src/lib/libssl/ssl.h b/src/lib/libssl/ssl.h
index 2122fea936..72de5c15a9 100644
--- a/src/lib/libssl/ssl.h
+++ b/src/lib/libssl/ssl.h
@@ -1,4 +1,4 @@
1/* $OpenBSD: ssl.h,v 1.125 2017/01/26 07:20:57 beck Exp $ */ 1/* $OpenBSD: ssl.h,v 1.126 2017/01/31 15:35:46 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 *
@@ -501,6 +501,8 @@ struct ssl_session_st {
501 501
502/* As server, disallow session resumption on renegotiation */ 502/* As server, disallow session resumption on renegotiation */
503#define SSL_OP_NO_SESSION_RESUMPTION_ON_RENEGOTIATION 0x00010000L 503#define SSL_OP_NO_SESSION_RESUMPTION_ON_RENEGOTIATION 0x00010000L
504/* Disallow client initiated renegotiation. */
505#define SSL_OP_NO_CLIENT_RENEGOTIATION 0x00020000L
504/* If set, always create a new key when using tmp_ecdh parameters */ 506/* If set, always create a new key when using tmp_ecdh parameters */
505#define SSL_OP_SINGLE_ECDH_USE 0x00080000L 507#define SSL_OP_SINGLE_ECDH_USE 0x00080000L
506/* If set, always create a new key when using tmp_dh parameters */ 508/* If set, always create a new key when using tmp_dh parameters */
diff --git a/src/lib/libssl/ssl_pkt.c b/src/lib/libssl/ssl_pkt.c
index 6a1c837944..c57eacd770 100644
--- a/src/lib/libssl/ssl_pkt.c
+++ b/src/lib/libssl/ssl_pkt.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: ssl_pkt.c,v 1.8 2017/01/29 15:31:15 jsing Exp $ */ 1/* $OpenBSD: ssl_pkt.c,v 1.9 2017/01/31 15:35:46 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 *
@@ -1136,6 +1136,14 @@ start:
1136 * now try again to obtain the (application) data we were asked for */ 1136 * now try again to obtain the (application) data we were asked for */
1137 goto start; 1137 goto start;
1138 } 1138 }
1139 /* Disallow client initiated renegotiation if configured. */
1140 if (s->server && SSL_is_init_finished(s) &&
1141 S3I(s)->handshake_fragment_len >= 4 &&
1142 S3I(s)->handshake_fragment[0] == SSL3_MT_CLIENT_HELLO &&
1143 (s->internal->options & SSL_OP_NO_CLIENT_RENEGOTIATION)) {
1144 al = SSL_AD_NO_RENEGOTIATION;
1145 goto f_err;
1146 }
1139 /* If we are a server and get a client hello when renegotiation isn't 1147 /* If we are a server and get a client hello when renegotiation isn't
1140 * allowed send back a no renegotiation alert and carry on. 1148 * allowed send back a no renegotiation alert and carry on.
1141 * WARNING: experimental code, needs reviewing (steve) 1149 * WARNING: experimental code, needs reviewing (steve)