summaryrefslogtreecommitdiff
path: root/src/lib/libssl/ssl_lib.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/libssl/ssl_lib.c')
-rw-r--r--src/lib/libssl/ssl_lib.c36
1 files changed, 33 insertions, 3 deletions
diff --git a/src/lib/libssl/ssl_lib.c b/src/lib/libssl/ssl_lib.c
index 11f46161a9..a4ca1afb1d 100644
--- a/src/lib/libssl/ssl_lib.c
+++ b/src/lib/libssl/ssl_lib.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: ssl_lib.c,v 1.123 2016/12/30 16:57:01 jsing Exp $ */ 1/* $OpenBSD: ssl_lib.c,v 1.124 2017/01/03 16:57:15 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 *
@@ -2516,14 +2516,44 @@ ssl_enabled_version_range(SSL *s, uint16_t *min_ver, uint16_t *max_ver)
2516 2516
2517 /* Everything has been disabled... */ 2517 /* Everything has been disabled... */
2518 if (min_version == 0 || max_version == 0) 2518 if (min_version == 0 || max_version == 0)
2519 return -1; 2519 return 0;
2520 2520
2521 if (min_ver != NULL) 2521 if (min_ver != NULL)
2522 *min_ver = min_version; 2522 *min_ver = min_version;
2523 if (max_ver != NULL) 2523 if (max_ver != NULL)
2524 *max_ver = max_version; 2524 *max_ver = max_version;
2525 2525
2526 return 0; 2526 return 1;
2527}
2528
2529int
2530ssl_max_shared_version(SSL *s, uint16_t peer_ver, uint16_t *max_ver)
2531{
2532 uint16_t min_version, max_version, shared_version;
2533
2534 *max_ver = 0;
2535
2536 if (peer_ver >= TLS1_2_VERSION)
2537 shared_version = TLS1_2_VERSION;
2538 else if (peer_ver >= TLS1_1_VERSION)
2539 shared_version = TLS1_1_VERSION;
2540 else if (peer_ver >= TLS1_VERSION)
2541 shared_version = TLS1_VERSION;
2542 else
2543 return 0;
2544
2545 if (!ssl_enabled_version_range(s, &min_version, &max_version))
2546 return 0;
2547
2548 if (shared_version < min_version)
2549 return 0;
2550
2551 if (shared_version > max_version)
2552 shared_version = max_version;
2553
2554 *max_ver = shared_version;
2555
2556 return 1;
2527} 2557}
2528 2558
2529uint16_t 2559uint16_t