summaryrefslogtreecommitdiff
path: root/src/lib
diff options
context:
space:
mode:
authorbeck <>2014-04-16 18:05:55 +0000
committerbeck <>2014-04-16 18:05:55 +0000
commitcd08fd7b7f7dd206dc05c7e18941b10aef11ab9a (patch)
tree516681ebe1121ac72861c67f1ce12851fce7d1ac /src/lib
parent8cf170bf672c7d86b3903a219e445ba6138e7e95 (diff)
downloadopenbsd-cd08fd7b7f7dd206dc05c7e18941b10aef11ab9a.tar.gz
openbsd-cd08fd7b7f7dd206dc05c7e18941b10aef11ab9a.tar.bz2
openbsd-cd08fd7b7f7dd206dc05c7e18941b10aef11ab9a.zip
Thanks to the knobs in http://tools.ietf.org/html/rfc5746, we have a knob
to say "allow this connection to negotiate insecurely". de-fang the code that respects this option to ignore it. ok miod@
Diffstat (limited to 'src/lib')
-rw-r--r--src/lib/libssl/s3_srvr.c4
-rw-r--r--src/lib/libssl/src/ssl/s3_srvr.c4
-rw-r--r--src/lib/libssl/src/ssl/t1_lib.c6
-rw-r--r--src/lib/libssl/t1_lib.c6
4 files changed, 6 insertions, 14 deletions
diff --git a/src/lib/libssl/s3_srvr.c b/src/lib/libssl/s3_srvr.c
index 93510cb58a..1a924f828e 100644
--- a/src/lib/libssl/s3_srvr.c
+++ b/src/lib/libssl/s3_srvr.c
@@ -269,9 +269,7 @@ ssl3_accept(SSL *s)
269 ssl3_init_finished_mac(s); 269 ssl3_init_finished_mac(s);
270 s->state = SSL3_ST_SR_CLNT_HELLO_A; 270 s->state = SSL3_ST_SR_CLNT_HELLO_A;
271 s->ctx->stats.sess_accept++; 271 s->ctx->stats.sess_accept++;
272 } else if (!s->s3->send_connection_binding && 272 } else if (!s->s3->send_connection_binding) {
273 !(s->options &
274 SSL_OP_ALLOW_UNSAFE_LEGACY_RENEGOTIATION)) {
275 /* 273 /*
276 * Server attempting to renegotiate with 274 * Server attempting to renegotiate with
277 * client that doesn't support secure 275 * client that doesn't support secure
diff --git a/src/lib/libssl/src/ssl/s3_srvr.c b/src/lib/libssl/src/ssl/s3_srvr.c
index 93510cb58a..1a924f828e 100644
--- a/src/lib/libssl/src/ssl/s3_srvr.c
+++ b/src/lib/libssl/src/ssl/s3_srvr.c
@@ -269,9 +269,7 @@ ssl3_accept(SSL *s)
269 ssl3_init_finished_mac(s); 269 ssl3_init_finished_mac(s);
270 s->state = SSL3_ST_SR_CLNT_HELLO_A; 270 s->state = SSL3_ST_SR_CLNT_HELLO_A;
271 s->ctx->stats.sess_accept++; 271 s->ctx->stats.sess_accept++;
272 } else if (!s->s3->send_connection_binding && 272 } else if (!s->s3->send_connection_binding) {
273 !(s->options &
274 SSL_OP_ALLOW_UNSAFE_LEGACY_RENEGOTIATION)) {
275 /* 273 /*
276 * Server attempting to renegotiate with 274 * Server attempting to renegotiate with
277 * client that doesn't support secure 275 * client that doesn't support secure
diff --git a/src/lib/libssl/src/ssl/t1_lib.c b/src/lib/libssl/src/ssl/t1_lib.c
index 417b90381b..c4eeb7a41d 100644
--- a/src/lib/libssl/src/ssl/t1_lib.c
+++ b/src/lib/libssl/src/ssl/t1_lib.c
@@ -1296,8 +1296,7 @@ ssl_parse_clienthello_tlsext(SSL *s, unsigned char **p, unsigned char *d,
1296 1296
1297 /* Need RI if renegotiating */ 1297 /* Need RI if renegotiating */
1298 1298
1299 if (!renegotiate_seen && s->renegotiate && 1299 if (!renegotiate_seen && s->renegotiate) {
1300 !(s->options & SSL_OP_ALLOW_UNSAFE_LEGACY_RENEGOTIATION)) {
1301 *al = SSL_AD_HANDSHAKE_FAILURE; 1300 *al = SSL_AD_HANDSHAKE_FAILURE;
1302 SSLerr(SSL_F_SSL_PARSE_CLIENTHELLO_TLSEXT, 1301 SSLerr(SSL_F_SSL_PARSE_CLIENTHELLO_TLSEXT,
1303 SSL_R_UNSAFE_LEGACY_RENEGOTIATION_DISABLED); 1302 SSL_R_UNSAFE_LEGACY_RENEGOTIATION_DISABLED);
@@ -1533,8 +1532,7 @@ ssl_parse_serverhello_tlsext(SSL *s, unsigned char **p, unsigned char *d, int n,
1533 * absence on initial connect only. 1532 * absence on initial connect only.
1534 */ 1533 */
1535 if (!renegotiate_seen 1534 if (!renegotiate_seen
1536 && !(s->options & SSL_OP_LEGACY_SERVER_CONNECT) 1535 && !(s->options & SSL_OP_LEGACY_SERVER_CONNECT)) {
1537 && !(s->options & SSL_OP_ALLOW_UNSAFE_LEGACY_RENEGOTIATION)) {
1538 *al = SSL_AD_HANDSHAKE_FAILURE; 1536 *al = SSL_AD_HANDSHAKE_FAILURE;
1539 SSLerr(SSL_F_SSL_PARSE_SERVERHELLO_TLSEXT, 1537 SSLerr(SSL_F_SSL_PARSE_SERVERHELLO_TLSEXT,
1540 SSL_R_UNSAFE_LEGACY_RENEGOTIATION_DISABLED); 1538 SSL_R_UNSAFE_LEGACY_RENEGOTIATION_DISABLED);
diff --git a/src/lib/libssl/t1_lib.c b/src/lib/libssl/t1_lib.c
index 417b90381b..c4eeb7a41d 100644
--- a/src/lib/libssl/t1_lib.c
+++ b/src/lib/libssl/t1_lib.c
@@ -1296,8 +1296,7 @@ ssl_parse_clienthello_tlsext(SSL *s, unsigned char **p, unsigned char *d,
1296 1296
1297 /* Need RI if renegotiating */ 1297 /* Need RI if renegotiating */
1298 1298
1299 if (!renegotiate_seen && s->renegotiate && 1299 if (!renegotiate_seen && s->renegotiate) {
1300 !(s->options & SSL_OP_ALLOW_UNSAFE_LEGACY_RENEGOTIATION)) {
1301 *al = SSL_AD_HANDSHAKE_FAILURE; 1300 *al = SSL_AD_HANDSHAKE_FAILURE;
1302 SSLerr(SSL_F_SSL_PARSE_CLIENTHELLO_TLSEXT, 1301 SSLerr(SSL_F_SSL_PARSE_CLIENTHELLO_TLSEXT,
1303 SSL_R_UNSAFE_LEGACY_RENEGOTIATION_DISABLED); 1302 SSL_R_UNSAFE_LEGACY_RENEGOTIATION_DISABLED);
@@ -1533,8 +1532,7 @@ ssl_parse_serverhello_tlsext(SSL *s, unsigned char **p, unsigned char *d, int n,
1533 * absence on initial connect only. 1532 * absence on initial connect only.
1534 */ 1533 */
1535 if (!renegotiate_seen 1534 if (!renegotiate_seen
1536 && !(s->options & SSL_OP_LEGACY_SERVER_CONNECT) 1535 && !(s->options & SSL_OP_LEGACY_SERVER_CONNECT)) {
1537 && !(s->options & SSL_OP_ALLOW_UNSAFE_LEGACY_RENEGOTIATION)) {
1538 *al = SSL_AD_HANDSHAKE_FAILURE; 1536 *al = SSL_AD_HANDSHAKE_FAILURE;
1539 SSLerr(SSL_F_SSL_PARSE_SERVERHELLO_TLSEXT, 1537 SSLerr(SSL_F_SSL_PARSE_SERVERHELLO_TLSEXT,
1540 SSL_R_UNSAFE_LEGACY_RENEGOTIATION_DISABLED); 1538 SSL_R_UNSAFE_LEGACY_RENEGOTIATION_DISABLED);