summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorjsing <>2020-10-14 16:44:15 +0000
committerjsing <>2020-10-14 16:44:15 +0000
commitd01f579537c8999cab6b1bf97cfb2760827ceeae (patch)
tree48a3e74cff5229e78703d45e5305fd0d015a6e1f /src
parentb78b3da503cdbc1eab982be1760a8fc44c08c508 (diff)
downloadopenbsd-d01f579537c8999cab6b1bf97cfb2760827ceeae.tar.gz
openbsd-d01f579537c8999cab6b1bf97cfb2760827ceeae.tar.bz2
openbsd-d01f579537c8999cab6b1bf97cfb2760827ceeae.zip
Mark DTLS methods as DTLS.
Rather than inferring DTLS from the method version, add a field that marks a method as specifically being DTLS. Have SSL_IS_DTLS condition on this rather than on version. ok tb@
Diffstat (limited to 'src')
-rw-r--r--src/lib/libssl/ssl_locl.h5
-rw-r--r--src/lib/libssl/ssl_methods.c8
2 files changed, 10 insertions, 3 deletions
diff --git a/src/lib/libssl/ssl_locl.h b/src/lib/libssl/ssl_locl.h
index f2e1cb97f8..12838bf294 100644
--- a/src/lib/libssl/ssl_locl.h
+++ b/src/lib/libssl/ssl_locl.h
@@ -1,4 +1,4 @@
1/* $OpenBSD: ssl_locl.h,v 1.304 2020/10/11 12:45:52 guenther Exp $ */ 1/* $OpenBSD: ssl_locl.h,v 1.305 2020/10/14 16:44: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 *
@@ -315,7 +315,7 @@ __BEGIN_HIDDEN_DECLS
315 315
316/* Check if an SSL structure is using DTLS. */ 316/* Check if an SSL structure is using DTLS. */
317#define SSL_IS_DTLS(s) \ 317#define SSL_IS_DTLS(s) \
318 (s->method->internal->version == DTLS1_VERSION) 318 (s->method->internal->dtls)
319 319
320/* See if we use signature algorithms extension. */ 320/* See if we use signature algorithms extension. */
321#define SSL_USE_SIGALGS(s) \ 321#define SSL_USE_SIGALGS(s) \
@@ -362,6 +362,7 @@ __BEGIN_HIDDEN_DECLS
362#define NAMED_CURVE_TYPE 3 362#define NAMED_CURVE_TYPE 3
363 363
364typedef struct ssl_method_internal_st { 364typedef struct ssl_method_internal_st {
365 int dtls;
365 int version; 366 int version;
366 367
367 uint16_t min_version; 368 uint16_t min_version;
diff --git a/src/lib/libssl/ssl_methods.c b/src/lib/libssl/ssl_methods.c
index e2d5766e0f..600aa89095 100644
--- a/src/lib/libssl/ssl_methods.c
+++ b/src/lib/libssl/ssl_methods.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: ssl_methods.c,v 1.19 2020/10/11 12:45:52 guenther Exp $ */ 1/* $OpenBSD: ssl_methods.c,v 1.20 2020/10/14 16:44: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 *
@@ -60,6 +60,7 @@
60#include "tls13_internal.h" 60#include "tls13_internal.h"
61 61
62static const SSL_METHOD_INTERNAL DTLSv1_method_internal_data = { 62static const SSL_METHOD_INTERNAL DTLSv1_method_internal_data = {
63 .dtls = 1,
63 .version = DTLS1_VERSION, 64 .version = DTLS1_VERSION,
64 .min_version = DTLS1_VERSION, 65 .min_version = DTLS1_VERSION,
65 .max_version = DTLS1_VERSION, 66 .max_version = DTLS1_VERSION,
@@ -124,6 +125,7 @@ DTLS_server_method(void)
124 125
125#if defined(LIBRESSL_HAS_TLS1_3_CLIENT) && defined(LIBRESSL_HAS_TLS1_3_SERVER) 126#if defined(LIBRESSL_HAS_TLS1_3_CLIENT) && defined(LIBRESSL_HAS_TLS1_3_SERVER)
126static const SSL_METHOD_INTERNAL TLS_method_internal_data = { 127static const SSL_METHOD_INTERNAL TLS_method_internal_data = {
128 .dtls = 0,
127 .version = TLS1_3_VERSION, 129 .version = TLS1_3_VERSION,
128 .min_version = TLS1_VERSION, 130 .min_version = TLS1_VERSION,
129 .max_version = TLS1_3_VERSION, 131 .max_version = TLS1_3_VERSION,
@@ -152,6 +154,7 @@ static const SSL_METHOD TLS_method_data = {
152#endif 154#endif
153 155
154static const SSL_METHOD_INTERNAL TLS_legacy_method_internal_data = { 156static const SSL_METHOD_INTERNAL TLS_legacy_method_internal_data = {
157 .dtls = 0,
155 .version = TLS1_2_VERSION, 158 .version = TLS1_2_VERSION,
156 .min_version = TLS1_VERSION, 159 .min_version = TLS1_VERSION,
157 .max_version = TLS1_2_VERSION, 160 .max_version = TLS1_2_VERSION,
@@ -179,6 +182,7 @@ static const SSL_METHOD TLS_legacy_method_data = {
179}; 182};
180 183
181static const SSL_METHOD_INTERNAL TLSv1_method_internal_data = { 184static const SSL_METHOD_INTERNAL TLSv1_method_internal_data = {
185 .dtls = 0,
182 .version = TLS1_VERSION, 186 .version = TLS1_VERSION,
183 .min_version = TLS1_VERSION, 187 .min_version = TLS1_VERSION,
184 .max_version = TLS1_VERSION, 188 .max_version = TLS1_VERSION,
@@ -206,6 +210,7 @@ static const SSL_METHOD TLSv1_method_data = {
206}; 210};
207 211
208static const SSL_METHOD_INTERNAL TLSv1_1_method_internal_data = { 212static const SSL_METHOD_INTERNAL TLSv1_1_method_internal_data = {
213 .dtls = 0,
209 .version = TLS1_1_VERSION, 214 .version = TLS1_1_VERSION,
210 .min_version = TLS1_1_VERSION, 215 .min_version = TLS1_1_VERSION,
211 .max_version = TLS1_1_VERSION, 216 .max_version = TLS1_1_VERSION,
@@ -233,6 +238,7 @@ static const SSL_METHOD TLSv1_1_method_data = {
233}; 238};
234 239
235static const SSL_METHOD_INTERNAL TLSv1_2_method_internal_data = { 240static const SSL_METHOD_INTERNAL TLSv1_2_method_internal_data = {
241 .dtls = 0,
236 .version = TLS1_2_VERSION, 242 .version = TLS1_2_VERSION,
237 .min_version = TLS1_2_VERSION, 243 .min_version = TLS1_2_VERSION,
238 .max_version = TLS1_2_VERSION, 244 .max_version = TLS1_2_VERSION,