diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/lib/libssl/ssl_ciphers.c | 25 | ||||
| -rw-r--r-- | src/lib/libssl/ssl_lib.c | 22 | ||||
| -rw-r--r-- | src/lib/libssl/ssl_locl.h | 28 | ||||
| -rw-r--r-- | src/lib/libssl/ssl_methods.c | 66 | ||||
| -rw-r--r-- | src/lib/libssl/ssl_packet.c | 7 | ||||
| -rw-r--r-- | src/lib/libssl/ssl_versions.c | 98 | ||||
| -rw-r--r-- | src/lib/libssl/tls13_client.c | 4 | ||||
| -rw-r--r-- | src/lib/libssl/tls13_legacy.c | 6 | ||||
| -rw-r--r-- | src/lib/libssl/tls13_server.c | 4 |
9 files changed, 132 insertions, 128 deletions
diff --git a/src/lib/libssl/ssl_ciphers.c b/src/lib/libssl/ssl_ciphers.c index 399e274ad4..85c60b1abb 100644 --- a/src/lib/libssl/ssl_ciphers.c +++ b/src/lib/libssl/ssl_ciphers.c | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | /* $OpenBSD: ssl_ciphers.c,v 1.9 2020/09/15 15:28:38 schwarze Exp $ */ | 1 | /* $OpenBSD: ssl_ciphers.c,v 1.10 2021/02/25 17:06:05 jsing Exp $ */ |
| 2 | /* | 2 | /* |
| 3 | * Copyright (c) 2015-2017 Doug Hogan <doug@openbsd.org> | 3 | * Copyright (c) 2015-2017 Doug Hogan <doug@openbsd.org> |
| 4 | * Copyright (c) 2015-2018, 2020 Joel Sing <jsing@openbsd.org> | 4 | * Copyright (c) 2015-2018, 2020 Joel Sing <jsing@openbsd.org> |
| @@ -36,28 +36,17 @@ ssl_cipher_in_list(STACK_OF(SSL_CIPHER) *ciphers, const SSL_CIPHER *cipher) | |||
| 36 | } | 36 | } |
| 37 | 37 | ||
| 38 | int | 38 | int |
| 39 | ssl_cipher_allowed_in_version_range(const SSL_CIPHER *cipher, uint16_t min_ver, | 39 | ssl_cipher_allowed_in_tls_version_range(const SSL_CIPHER *cipher, uint16_t min_ver, |
| 40 | uint16_t max_ver) | 40 | uint16_t max_ver) |
| 41 | { | 41 | { |
| 42 | /* XXX: We only support DTLSv1 which is effectively TLSv1.1 */ | ||
| 43 | if (min_ver == DTLS1_VERSION || max_ver == DTLS1_VERSION) | ||
| 44 | min_ver = max_ver = TLS1_1_VERSION; | ||
| 45 | |||
| 46 | switch(cipher->algorithm_ssl) { | 42 | switch(cipher->algorithm_ssl) { |
| 47 | case SSL_SSLV3: | 43 | case SSL_SSLV3: |
| 48 | if (min_ver <= TLS1_2_VERSION) | 44 | return (min_ver <= TLS1_2_VERSION); |
| 49 | return 1; | ||
| 50 | break; | ||
| 51 | case SSL_TLSV1_2: | 45 | case SSL_TLSV1_2: |
| 52 | if (min_ver <= TLS1_2_VERSION && TLS1_2_VERSION <= max_ver) | 46 | return (min_ver <= TLS1_2_VERSION && TLS1_2_VERSION <= max_ver); |
| 53 | return 1; | ||
| 54 | break; | ||
| 55 | case SSL_TLSV1_3: | 47 | case SSL_TLSV1_3: |
| 56 | if (min_ver <= TLS1_3_VERSION && TLS1_3_VERSION <= max_ver) | 48 | return (min_ver <= TLS1_3_VERSION && TLS1_3_VERSION <= max_ver); |
| 57 | return 1; | ||
| 58 | break; | ||
| 59 | } | 49 | } |
| 60 | |||
| 61 | return 0; | 50 | return 0; |
| 62 | } | 51 | } |
| 63 | 52 | ||
| @@ -72,13 +61,13 @@ ssl_cipher_list_to_bytes(SSL *s, STACK_OF(SSL_CIPHER) *ciphers, CBB *cbb) | |||
| 72 | if (ciphers == NULL) | 61 | if (ciphers == NULL) |
| 73 | return 0; | 62 | return 0; |
| 74 | 63 | ||
| 75 | if (!ssl_supported_version_range(s, &min_vers, &max_vers)) | 64 | if (!ssl_supported_tls_version_range(s, &min_vers, &max_vers)) |
| 76 | return 0; | 65 | return 0; |
| 77 | 66 | ||
| 78 | for (i = 0; i < sk_SSL_CIPHER_num(ciphers); i++) { | 67 | for (i = 0; i < sk_SSL_CIPHER_num(ciphers); i++) { |
| 79 | if ((cipher = sk_SSL_CIPHER_value(ciphers, i)) == NULL) | 68 | if ((cipher = sk_SSL_CIPHER_value(ciphers, i)) == NULL) |
| 80 | return 0; | 69 | return 0; |
| 81 | if (!ssl_cipher_allowed_in_version_range(cipher, min_vers, | 70 | if (!ssl_cipher_allowed_in_tls_version_range(cipher, min_vers, |
| 82 | max_vers)) | 71 | max_vers)) |
| 83 | continue; | 72 | continue; |
| 84 | if (!CBB_add_u16(cbb, ssl3_cipher_get_value(cipher))) | 73 | if (!CBB_add_u16(cbb, ssl3_cipher_get_value(cipher))) |
diff --git a/src/lib/libssl/ssl_lib.c b/src/lib/libssl/ssl_lib.c index 33aca33c92..57d0f4b779 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.248 2021/02/20 14:14:16 tb Exp $ */ | 1 | /* $OpenBSD: ssl_lib.c,v 1.249 2021/02/25 17:06:05 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 | * |
| @@ -254,8 +254,8 @@ SSL_new(SSL_CTX *ctx) | |||
| 254 | if ((s->internal = calloc(1, sizeof(*s->internal))) == NULL) | 254 | if ((s->internal = calloc(1, sizeof(*s->internal))) == NULL) |
| 255 | goto err; | 255 | goto err; |
| 256 | 256 | ||
| 257 | s->internal->min_version = ctx->internal->min_version; | 257 | s->internal->min_tls_version = ctx->internal->min_tls_version; |
| 258 | s->internal->max_version = ctx->internal->max_version; | 258 | s->internal->max_tls_version = ctx->internal->max_tls_version; |
| 259 | s->internal->min_proto_version = ctx->internal->min_proto_version; | 259 | s->internal->min_proto_version = ctx->internal->min_proto_version; |
| 260 | s->internal->max_proto_version = ctx->internal->max_proto_version; | 260 | s->internal->max_proto_version = ctx->internal->max_proto_version; |
| 261 | 261 | ||
| @@ -1336,7 +1336,7 @@ SSL_get1_supported_ciphers(SSL *s) | |||
| 1336 | 1336 | ||
| 1337 | if (s == NULL) | 1337 | if (s == NULL) |
| 1338 | return NULL; | 1338 | return NULL; |
| 1339 | if (!ssl_supported_version_range(s, &min_vers, &max_vers)) | 1339 | if (!ssl_supported_tls_version_range(s, &min_vers, &max_vers)) |
| 1340 | return NULL; | 1340 | return NULL; |
| 1341 | if ((ciphers = SSL_get_ciphers(s)) == NULL) | 1341 | if ((ciphers = SSL_get_ciphers(s)) == NULL) |
| 1342 | return NULL; | 1342 | return NULL; |
| @@ -1346,7 +1346,7 @@ SSL_get1_supported_ciphers(SSL *s) | |||
| 1346 | for (i = 0; i < sk_SSL_CIPHER_num(ciphers); i++) { | 1346 | for (i = 0; i < sk_SSL_CIPHER_num(ciphers); i++) { |
| 1347 | if ((cipher = sk_SSL_CIPHER_value(ciphers, i)) == NULL) | 1347 | if ((cipher = sk_SSL_CIPHER_value(ciphers, i)) == NULL) |
| 1348 | goto err; | 1348 | goto err; |
| 1349 | if (!ssl_cipher_allowed_in_version_range(cipher, min_vers, | 1349 | if (!ssl_cipher_allowed_in_tls_version_range(cipher, min_vers, |
| 1350 | max_vers)) | 1350 | max_vers)) |
| 1351 | continue; | 1351 | continue; |
| 1352 | if (!sk_SSL_CIPHER_push(supported_ciphers, cipher)) | 1352 | if (!sk_SSL_CIPHER_push(supported_ciphers, cipher)) |
| @@ -1829,8 +1829,8 @@ SSL_CTX_new(const SSL_METHOD *meth) | |||
| 1829 | } | 1829 | } |
| 1830 | 1830 | ||
| 1831 | ret->method = meth; | 1831 | ret->method = meth; |
| 1832 | ret->internal->min_version = meth->internal->min_version; | 1832 | ret->internal->min_tls_version = meth->internal->min_tls_version; |
| 1833 | ret->internal->max_version = meth->internal->max_version; | 1833 | ret->internal->max_tls_version = meth->internal->max_tls_version; |
| 1834 | ret->internal->min_proto_version = 0; | 1834 | ret->internal->min_proto_version = 0; |
| 1835 | ret->internal->max_proto_version = 0; | 1835 | ret->internal->max_proto_version = 0; |
| 1836 | ret->internal->mode = SSL_MODE_AUTO_RETRY; | 1836 | ret->internal->mode = SSL_MODE_AUTO_RETRY; |
| @@ -3027,7 +3027,7 @@ int | |||
| 3027 | SSL_CTX_set_min_proto_version(SSL_CTX *ctx, uint16_t version) | 3027 | SSL_CTX_set_min_proto_version(SSL_CTX *ctx, uint16_t version) |
| 3028 | { | 3028 | { |
| 3029 | return ssl_version_set_min(ctx->method, version, | 3029 | return ssl_version_set_min(ctx->method, version, |
| 3030 | ctx->internal->max_version, &ctx->internal->min_version, | 3030 | ctx->internal->max_tls_version, &ctx->internal->min_tls_version, |
| 3031 | &ctx->internal->min_proto_version); | 3031 | &ctx->internal->min_proto_version); |
| 3032 | } | 3032 | } |
| 3033 | 3033 | ||
| @@ -3041,7 +3041,7 @@ int | |||
| 3041 | SSL_CTX_set_max_proto_version(SSL_CTX *ctx, uint16_t version) | 3041 | SSL_CTX_set_max_proto_version(SSL_CTX *ctx, uint16_t version) |
| 3042 | { | 3042 | { |
| 3043 | return ssl_version_set_max(ctx->method, version, | 3043 | return ssl_version_set_max(ctx->method, version, |
| 3044 | ctx->internal->min_version, &ctx->internal->max_version, | 3044 | ctx->internal->min_tls_version, &ctx->internal->max_tls_version, |
| 3045 | &ctx->internal->max_proto_version); | 3045 | &ctx->internal->max_proto_version); |
| 3046 | } | 3046 | } |
| 3047 | 3047 | ||
| @@ -3055,7 +3055,7 @@ int | |||
| 3055 | SSL_set_min_proto_version(SSL *ssl, uint16_t version) | 3055 | SSL_set_min_proto_version(SSL *ssl, uint16_t version) |
| 3056 | { | 3056 | { |
| 3057 | return ssl_version_set_min(ssl->method, version, | 3057 | return ssl_version_set_min(ssl->method, version, |
| 3058 | ssl->internal->max_version, &ssl->internal->min_version, | 3058 | ssl->internal->max_tls_version, &ssl->internal->min_tls_version, |
| 3059 | &ssl->internal->min_proto_version); | 3059 | &ssl->internal->min_proto_version); |
| 3060 | } | 3060 | } |
| 3061 | int | 3061 | int |
| @@ -3068,7 +3068,7 @@ int | |||
| 3068 | SSL_set_max_proto_version(SSL *ssl, uint16_t version) | 3068 | SSL_set_max_proto_version(SSL *ssl, uint16_t version) |
| 3069 | { | 3069 | { |
| 3070 | return ssl_version_set_max(ssl->method, version, | 3070 | return ssl_version_set_max(ssl->method, version, |
| 3071 | ssl->internal->min_version, &ssl->internal->max_version, | 3071 | ssl->internal->min_tls_version, &ssl->internal->max_tls_version, |
| 3072 | &ssl->internal->max_proto_version); | 3072 | &ssl->internal->max_proto_version); |
| 3073 | } | 3073 | } |
| 3074 | 3074 | ||
diff --git a/src/lib/libssl/ssl_locl.h b/src/lib/libssl/ssl_locl.h index 3a4d318987..7ed3094c3e 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.322 2021/02/22 15:59:10 jsing Exp $ */ | 1 | /* $OpenBSD: ssl_locl.h,v 1.323 2021/02/25 17:06:05 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 | * |
| @@ -362,8 +362,8 @@ typedef struct ssl_method_internal_st { | |||
| 362 | int server; | 362 | int server; |
| 363 | int version; | 363 | int version; |
| 364 | 364 | ||
| 365 | uint16_t min_version; | 365 | uint16_t min_tls_version; |
| 366 | uint16_t max_version; | 366 | uint16_t max_tls_version; |
| 367 | 367 | ||
| 368 | int (*ssl_new)(SSL *s); | 368 | int (*ssl_new)(SSL *s); |
| 369 | void (*ssl_clear)(SSL *s); | 369 | void (*ssl_clear)(SSL *s); |
| @@ -517,8 +517,8 @@ int tls12_record_layer_seal_record(struct tls12_record_layer *rl, | |||
| 517 | CBB *out); | 517 | CBB *out); |
| 518 | 518 | ||
| 519 | typedef struct ssl_ctx_internal_st { | 519 | typedef struct ssl_ctx_internal_st { |
| 520 | uint16_t min_version; | 520 | uint16_t min_tls_version; |
| 521 | uint16_t max_version; | 521 | uint16_t max_tls_version; |
| 522 | 522 | ||
| 523 | /* | 523 | /* |
| 524 | * These may be zero to imply minimum or maximum version supported by | 524 | * These may be zero to imply minimum or maximum version supported by |
| @@ -686,8 +686,8 @@ typedef struct ssl_ctx_internal_st { | |||
| 686 | typedef struct ssl_internal_st { | 686 | typedef struct ssl_internal_st { |
| 687 | struct tls13_ctx *tls13; | 687 | struct tls13_ctx *tls13; |
| 688 | 688 | ||
| 689 | uint16_t min_version; | 689 | uint16_t min_tls_version; |
| 690 | uint16_t max_version; | 690 | uint16_t max_tls_version; |
| 691 | 691 | ||
| 692 | /* | 692 | /* |
| 693 | * These may be zero to imply minimum or maximum version supported by | 693 | * These may be zero to imply minimum or maximum version supported by |
| @@ -1121,19 +1121,19 @@ struct ssl_aead_ctx_st { | |||
| 1121 | extern const SSL_CIPHER ssl3_ciphers[]; | 1121 | extern const SSL_CIPHER ssl3_ciphers[]; |
| 1122 | 1122 | ||
| 1123 | const char *ssl_version_string(int ver); | 1123 | const char *ssl_version_string(int ver); |
| 1124 | int ssl_enabled_version_range(SSL *s, uint16_t *min_ver, uint16_t *max_ver); | 1124 | int ssl_version_set_min(const SSL_METHOD *meth, uint16_t proto_ver, |
| 1125 | int ssl_supported_version_range(SSL *s, uint16_t *min_ver, uint16_t *max_ver); | 1125 | uint16_t max_tls_ver, uint16_t *out_tls_ver, uint16_t *out_proto_ver); |
| 1126 | int ssl_version_set_min(const SSL_METHOD *meth, uint16_t ver, uint16_t max_ver, | 1126 | int ssl_version_set_max(const SSL_METHOD *meth, uint16_t proto_ver, |
| 1127 | uint16_t *out_ver, uint16_t *out_proto_ver); | 1127 | uint16_t min_tls_ver, uint16_t *out_tls_ver, uint16_t *out_proto_ver); |
| 1128 | int ssl_version_set_max(const SSL_METHOD *meth, uint16_t ver, uint16_t min_ver, | 1128 | int ssl_enabled_tls_version_range(SSL *s, uint16_t *min_ver, uint16_t *max_ver); |
| 1129 | uint16_t *out_ver, uint16_t *out_proto_ver); | 1129 | int ssl_supported_tls_version_range(SSL *s, uint16_t *min_ver, uint16_t *max_ver); |
| 1130 | int ssl_downgrade_max_version(SSL *s, uint16_t *max_ver); | 1130 | int ssl_downgrade_max_version(SSL *s, uint16_t *max_ver); |
| 1131 | int ssl_max_supported_version(SSL *s, uint16_t *max_ver); | 1131 | int ssl_max_supported_version(SSL *s, uint16_t *max_ver); |
| 1132 | int ssl_max_shared_version(SSL *s, uint16_t peer_ver, uint16_t *max_ver); | 1132 | int ssl_max_shared_version(SSL *s, uint16_t peer_ver, uint16_t *max_ver); |
| 1133 | int ssl_check_version_from_server(SSL *s, uint16_t server_version); | 1133 | int ssl_check_version_from_server(SSL *s, uint16_t server_version); |
| 1134 | int ssl_legacy_stack_version(SSL *s, uint16_t version); | 1134 | int ssl_legacy_stack_version(SSL *s, uint16_t version); |
| 1135 | int ssl_cipher_in_list(STACK_OF(SSL_CIPHER) *ciphers, const SSL_CIPHER *cipher); | 1135 | int ssl_cipher_in_list(STACK_OF(SSL_CIPHER) *ciphers, const SSL_CIPHER *cipher); |
| 1136 | int ssl_cipher_allowed_in_version_range(const SSL_CIPHER *cipher, | 1136 | int ssl_cipher_allowed_in_tls_version_range(const SSL_CIPHER *cipher, |
| 1137 | uint16_t min_ver, uint16_t max_ver); | 1137 | uint16_t min_ver, uint16_t max_ver); |
| 1138 | 1138 | ||
| 1139 | const SSL_METHOD *tls_legacy_method(void); | 1139 | const SSL_METHOD *tls_legacy_method(void); |
diff --git a/src/lib/libssl/ssl_methods.c b/src/lib/libssl/ssl_methods.c index ae532ba16d..084f533f5e 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.22 2021/02/20 08:33:17 jsing Exp $ */ | 1 | /* $OpenBSD: ssl_methods.c,v 1.23 2021/02/25 17:06:05 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 | * |
| @@ -64,8 +64,8 @@ static const SSL_METHOD_INTERNAL DTLS_method_internal_data = { | |||
| 64 | .dtls = 1, | 64 | .dtls = 1, |
| 65 | .server = 1, | 65 | .server = 1, |
| 66 | .version = DTLS1_2_VERSION, | 66 | .version = DTLS1_2_VERSION, |
| 67 | .min_version = DTLS1_VERSION, | 67 | .min_tls_version = TLS1_1_VERSION, |
| 68 | .max_version = DTLS1_2_VERSION, | 68 | .max_tls_version = TLS1_2_VERSION, |
| 69 | .ssl_new = dtls1_new, | 69 | .ssl_new = dtls1_new, |
| 70 | .ssl_clear = dtls1_clear, | 70 | .ssl_clear = dtls1_clear, |
| 71 | .ssl_free = dtls1_free, | 71 | .ssl_free = dtls1_free, |
| @@ -93,8 +93,8 @@ static const SSL_METHOD_INTERNAL DTLS_client_method_internal_data = { | |||
| 93 | .dtls = 1, | 93 | .dtls = 1, |
| 94 | .server = 0, | 94 | .server = 0, |
| 95 | .version = DTLS1_2_VERSION, | 95 | .version = DTLS1_2_VERSION, |
| 96 | .min_version = DTLS1_VERSION, | 96 | .min_tls_version = TLS1_1_VERSION, |
| 97 | .max_version = DTLS1_2_VERSION, | 97 | .max_tls_version = TLS1_2_VERSION, |
| 98 | .ssl_new = dtls1_new, | 98 | .ssl_new = dtls1_new, |
| 99 | .ssl_clear = dtls1_clear, | 99 | .ssl_clear = dtls1_clear, |
| 100 | .ssl_free = dtls1_free, | 100 | .ssl_free = dtls1_free, |
| @@ -123,8 +123,8 @@ static const SSL_METHOD_INTERNAL DTLSv1_method_internal_data = { | |||
| 123 | .dtls = 1, | 123 | .dtls = 1, |
| 124 | .server = 1, | 124 | .server = 1, |
| 125 | .version = DTLS1_VERSION, | 125 | .version = DTLS1_VERSION, |
| 126 | .min_version = DTLS1_VERSION, | 126 | .min_tls_version = TLS1_1_VERSION, |
| 127 | .max_version = DTLS1_VERSION, | 127 | .max_tls_version = TLS1_1_VERSION, |
| 128 | .ssl_new = dtls1_new, | 128 | .ssl_new = dtls1_new, |
| 129 | .ssl_clear = dtls1_clear, | 129 | .ssl_clear = dtls1_clear, |
| 130 | .ssl_free = dtls1_free, | 130 | .ssl_free = dtls1_free, |
| @@ -152,8 +152,8 @@ static const SSL_METHOD_INTERNAL DTLSv1_client_method_internal_data = { | |||
| 152 | .dtls = 1, | 152 | .dtls = 1, |
| 153 | .server = 0, | 153 | .server = 0, |
| 154 | .version = DTLS1_VERSION, | 154 | .version = DTLS1_VERSION, |
| 155 | .min_version = DTLS1_VERSION, | 155 | .min_tls_version = TLS1_1_VERSION, |
| 156 | .max_version = DTLS1_VERSION, | 156 | .max_tls_version = TLS1_1_VERSION, |
| 157 | .ssl_new = dtls1_new, | 157 | .ssl_new = dtls1_new, |
| 158 | .ssl_clear = dtls1_clear, | 158 | .ssl_clear = dtls1_clear, |
| 159 | .ssl_free = dtls1_free, | 159 | .ssl_free = dtls1_free, |
| @@ -181,8 +181,8 @@ static const SSL_METHOD_INTERNAL DTLSv1_2_method_internal_data = { | |||
| 181 | .dtls = 1, | 181 | .dtls = 1, |
| 182 | .server = 1, | 182 | .server = 1, |
| 183 | .version = DTLS1_2_VERSION, | 183 | .version = DTLS1_2_VERSION, |
| 184 | .min_version = DTLS1_2_VERSION, | 184 | .min_tls_version = TLS1_2_VERSION, |
| 185 | .max_version = DTLS1_2_VERSION, | 185 | .max_tls_version = TLS1_2_VERSION, |
| 186 | .ssl_new = dtls1_new, | 186 | .ssl_new = dtls1_new, |
| 187 | .ssl_clear = dtls1_clear, | 187 | .ssl_clear = dtls1_clear, |
| 188 | .ssl_free = dtls1_free, | 188 | .ssl_free = dtls1_free, |
| @@ -210,8 +210,8 @@ static const SSL_METHOD_INTERNAL DTLSv1_2_client_method_internal_data = { | |||
| 210 | .dtls = 1, | 210 | .dtls = 1, |
| 211 | .server = 0, | 211 | .server = 0, |
| 212 | .version = DTLS1_2_VERSION, | 212 | .version = DTLS1_2_VERSION, |
| 213 | .min_version = DTLS1_2_VERSION, | 213 | .min_tls_version = TLS1_2_VERSION, |
| 214 | .max_version = DTLS1_2_VERSION, | 214 | .max_tls_version = TLS1_2_VERSION, |
| 215 | .ssl_new = dtls1_new, | 215 | .ssl_new = dtls1_new, |
| 216 | .ssl_clear = dtls1_clear, | 216 | .ssl_clear = dtls1_clear, |
| 217 | .ssl_free = dtls1_free, | 217 | .ssl_free = dtls1_free, |
| @@ -306,8 +306,8 @@ static const SSL_METHOD_INTERNAL TLS_method_internal_data = { | |||
| 306 | .dtls = 0, | 306 | .dtls = 0, |
| 307 | .server = 1, | 307 | .server = 1, |
| 308 | .version = TLS1_3_VERSION, | 308 | .version = TLS1_3_VERSION, |
| 309 | .min_version = TLS1_VERSION, | 309 | .min_tls_version = TLS1_VERSION, |
| 310 | .max_version = TLS1_3_VERSION, | 310 | .max_tls_version = TLS1_3_VERSION, |
| 311 | .ssl_new = tls1_new, | 311 | .ssl_new = tls1_new, |
| 312 | .ssl_clear = tls1_clear, | 312 | .ssl_clear = tls1_clear, |
| 313 | .ssl_free = tls1_free, | 313 | .ssl_free = tls1_free, |
| @@ -336,8 +336,8 @@ static const SSL_METHOD_INTERNAL TLS_legacy_method_internal_data = { | |||
| 336 | .dtls = 0, | 336 | .dtls = 0, |
| 337 | .server = 1, | 337 | .server = 1, |
| 338 | .version = TLS1_2_VERSION, | 338 | .version = TLS1_2_VERSION, |
| 339 | .min_version = TLS1_VERSION, | 339 | .min_tls_version = TLS1_VERSION, |
| 340 | .max_version = TLS1_2_VERSION, | 340 | .max_tls_version = TLS1_2_VERSION, |
| 341 | .ssl_new = tls1_new, | 341 | .ssl_new = tls1_new, |
| 342 | .ssl_clear = tls1_clear, | 342 | .ssl_clear = tls1_clear, |
| 343 | .ssl_free = tls1_free, | 343 | .ssl_free = tls1_free, |
| @@ -366,8 +366,8 @@ static const SSL_METHOD_INTERNAL TLS_client_method_internal_data = { | |||
| 366 | .dtls = 0, | 366 | .dtls = 0, |
| 367 | .server = 0, | 367 | .server = 0, |
| 368 | .version = TLS1_3_VERSION, | 368 | .version = TLS1_3_VERSION, |
| 369 | .min_version = TLS1_VERSION, | 369 | .min_tls_version = TLS1_VERSION, |
| 370 | .max_version = TLS1_3_VERSION, | 370 | .max_tls_version = TLS1_3_VERSION, |
| 371 | .ssl_new = tls1_new, | 371 | .ssl_new = tls1_new, |
| 372 | .ssl_clear = tls1_clear, | 372 | .ssl_clear = tls1_clear, |
| 373 | .ssl_free = tls1_free, | 373 | .ssl_free = tls1_free, |
| @@ -397,8 +397,8 @@ static const SSL_METHOD_INTERNAL TLS_legacy_client_method_internal_data = { | |||
| 397 | .dtls = 0, | 397 | .dtls = 0, |
| 398 | .server = 0, | 398 | .server = 0, |
| 399 | .version = TLS1_2_VERSION, | 399 | .version = TLS1_2_VERSION, |
| 400 | .min_version = TLS1_VERSION, | 400 | .min_tls_version = TLS1_VERSION, |
| 401 | .max_version = TLS1_2_VERSION, | 401 | .max_tls_version = TLS1_2_VERSION, |
| 402 | .ssl_new = tls1_new, | 402 | .ssl_new = tls1_new, |
| 403 | .ssl_clear = tls1_clear, | 403 | .ssl_clear = tls1_clear, |
| 404 | .ssl_free = tls1_free, | 404 | .ssl_free = tls1_free, |
| @@ -427,8 +427,8 @@ static const SSL_METHOD_INTERNAL TLSv1_method_internal_data = { | |||
| 427 | .dtls = 0, | 427 | .dtls = 0, |
| 428 | .server = 1, | 428 | .server = 1, |
| 429 | .version = TLS1_VERSION, | 429 | .version = TLS1_VERSION, |
| 430 | .min_version = TLS1_VERSION, | 430 | .min_tls_version = TLS1_VERSION, |
| 431 | .max_version = TLS1_VERSION, | 431 | .max_tls_version = TLS1_VERSION, |
| 432 | .ssl_new = tls1_new, | 432 | .ssl_new = tls1_new, |
| 433 | .ssl_clear = tls1_clear, | 433 | .ssl_clear = tls1_clear, |
| 434 | .ssl_free = tls1_free, | 434 | .ssl_free = tls1_free, |
| @@ -456,8 +456,8 @@ static const SSL_METHOD_INTERNAL TLSv1_client_method_internal_data = { | |||
| 456 | .dtls = 0, | 456 | .dtls = 0, |
| 457 | .server = 0, | 457 | .server = 0, |
| 458 | .version = TLS1_VERSION, | 458 | .version = TLS1_VERSION, |
| 459 | .min_version = TLS1_VERSION, | 459 | .min_tls_version = TLS1_VERSION, |
| 460 | .max_version = TLS1_VERSION, | 460 | .max_tls_version = TLS1_VERSION, |
| 461 | .ssl_new = tls1_new, | 461 | .ssl_new = tls1_new, |
| 462 | .ssl_clear = tls1_clear, | 462 | .ssl_clear = tls1_clear, |
| 463 | .ssl_free = tls1_free, | 463 | .ssl_free = tls1_free, |
| @@ -485,8 +485,8 @@ static const SSL_METHOD_INTERNAL TLSv1_1_method_internal_data = { | |||
| 485 | .dtls = 0, | 485 | .dtls = 0, |
| 486 | .server = 1, | 486 | .server = 1, |
| 487 | .version = TLS1_1_VERSION, | 487 | .version = TLS1_1_VERSION, |
| 488 | .min_version = TLS1_1_VERSION, | 488 | .min_tls_version = TLS1_1_VERSION, |
| 489 | .max_version = TLS1_1_VERSION, | 489 | .max_tls_version = TLS1_1_VERSION, |
| 490 | .ssl_new = tls1_new, | 490 | .ssl_new = tls1_new, |
| 491 | .ssl_clear = tls1_clear, | 491 | .ssl_clear = tls1_clear, |
| 492 | .ssl_free = tls1_free, | 492 | .ssl_free = tls1_free, |
| @@ -514,8 +514,8 @@ static const SSL_METHOD_INTERNAL TLSv1_1_client_method_internal_data = { | |||
| 514 | .dtls = 0, | 514 | .dtls = 0, |
| 515 | .server = 0, | 515 | .server = 0, |
| 516 | .version = TLS1_1_VERSION, | 516 | .version = TLS1_1_VERSION, |
| 517 | .min_version = TLS1_1_VERSION, | 517 | .min_tls_version = TLS1_1_VERSION, |
| 518 | .max_version = TLS1_1_VERSION, | 518 | .max_tls_version = TLS1_1_VERSION, |
| 519 | .ssl_new = tls1_new, | 519 | .ssl_new = tls1_new, |
| 520 | .ssl_clear = tls1_clear, | 520 | .ssl_clear = tls1_clear, |
| 521 | .ssl_free = tls1_free, | 521 | .ssl_free = tls1_free, |
| @@ -543,8 +543,8 @@ static const SSL_METHOD_INTERNAL TLSv1_2_method_internal_data = { | |||
| 543 | .dtls = 0, | 543 | .dtls = 0, |
| 544 | .server = 1, | 544 | .server = 1, |
| 545 | .version = TLS1_2_VERSION, | 545 | .version = TLS1_2_VERSION, |
| 546 | .min_version = TLS1_2_VERSION, | 546 | .min_tls_version = TLS1_2_VERSION, |
| 547 | .max_version = TLS1_2_VERSION, | 547 | .max_tls_version = TLS1_2_VERSION, |
| 548 | .ssl_new = tls1_new, | 548 | .ssl_new = tls1_new, |
| 549 | .ssl_clear = tls1_clear, | 549 | .ssl_clear = tls1_clear, |
| 550 | .ssl_free = tls1_free, | 550 | .ssl_free = tls1_free, |
| @@ -572,8 +572,8 @@ static const SSL_METHOD_INTERNAL TLSv1_2_client_method_internal_data = { | |||
| 572 | .dtls = 0, | 572 | .dtls = 0, |
| 573 | .server = 0, | 573 | .server = 0, |
| 574 | .version = TLS1_2_VERSION, | 574 | .version = TLS1_2_VERSION, |
| 575 | .min_version = TLS1_2_VERSION, | 575 | .min_tls_version = TLS1_2_VERSION, |
| 576 | .max_version = TLS1_2_VERSION, | 576 | .max_tls_version = TLS1_2_VERSION, |
| 577 | .ssl_new = tls1_new, | 577 | .ssl_new = tls1_new, |
| 578 | .ssl_clear = tls1_clear, | 578 | .ssl_clear = tls1_clear, |
| 579 | .ssl_free = tls1_free, | 579 | .ssl_free = tls1_free, |
diff --git a/src/lib/libssl/ssl_packet.c b/src/lib/libssl/ssl_packet.c index fc1c3c07de..b383fe83e9 100644 --- a/src/lib/libssl/ssl_packet.c +++ b/src/lib/libssl/ssl_packet.c | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | /* $OpenBSD: ssl_packet.c,v 1.9 2020/10/14 16:57:33 jsing Exp $ */ | 1 | /* $OpenBSD: ssl_packet.c,v 1.10 2021/02/25 17:06:05 jsing Exp $ */ |
| 2 | /* | 2 | /* |
| 3 | * Copyright (c) 2016, 2017 Joel Sing <jsing@openbsd.org> | 3 | * Copyright (c) 2016, 2017 Joel Sing <jsing@openbsd.org> |
| 4 | * | 4 | * |
| @@ -247,12 +247,13 @@ ssl_server_legacy_first_packet(SSL *s) | |||
| 247 | return 1; | 247 | return 1; |
| 248 | 248 | ||
| 249 | /* Only continue if this is not a version locked method. */ | 249 | /* Only continue if this is not a version locked method. */ |
| 250 | if (s->method->internal->min_version == s->method->internal->max_version) | 250 | if (s->method->internal->min_tls_version == |
| 251 | s->method->internal->max_tls_version) | ||
| 251 | return 1; | 252 | return 1; |
| 252 | 253 | ||
| 253 | if (ssl_is_sslv2_client_hello(&header) == 1) { | 254 | if (ssl_is_sslv2_client_hello(&header) == 1) { |
| 254 | /* Only permit SSLv2 client hellos if TLSv1.0 is enabled. */ | 255 | /* Only permit SSLv2 client hellos if TLSv1.0 is enabled. */ |
| 255 | if (ssl_enabled_version_range(s, &min_version, NULL) != 1) { | 256 | if (ssl_enabled_tls_version_range(s, &min_version, NULL) != 1) { |
| 256 | SSLerror(s, SSL_R_NO_PROTOCOLS_AVAILABLE); | 257 | SSLerror(s, SSL_R_NO_PROTOCOLS_AVAILABLE); |
| 257 | return -1; | 258 | return -1; |
| 258 | } | 259 | } |
diff --git a/src/lib/libssl/ssl_versions.c b/src/lib/libssl/ssl_versions.c index 3c4801971e..a216de6e81 100644 --- a/src/lib/libssl/ssl_versions.c +++ b/src/lib/libssl/ssl_versions.c | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | /* $OpenBSD: ssl_versions.c,v 1.12 2021/02/22 15:59:10 jsing Exp $ */ | 1 | /* $OpenBSD: ssl_versions.c,v 1.13 2021/02/25 17:06:05 jsing Exp $ */ |
| 2 | /* | 2 | /* |
| 3 | * Copyright (c) 2016, 2017 Joel Sing <jsing@openbsd.org> | 3 | * Copyright (c) 2016, 2017 Joel Sing <jsing@openbsd.org> |
| 4 | * | 4 | * |
| @@ -18,7 +18,7 @@ | |||
| 18 | #include "ssl_locl.h" | 18 | #include "ssl_locl.h" |
| 19 | 19 | ||
| 20 | static int | 20 | static int |
| 21 | ssl_clamp_version_range(uint16_t *min_ver, uint16_t *max_ver, | 21 | ssl_clamp_tls_version_range(uint16_t *min_ver, uint16_t *max_ver, |
| 22 | uint16_t clamp_min, uint16_t clamp_max) | 22 | uint16_t clamp_min, uint16_t clamp_max) |
| 23 | { | 23 | { |
| 24 | if (clamp_min > clamp_max || *min_ver > *max_ver) | 24 | if (clamp_min > clamp_max || *min_ver > *max_ver) |
| @@ -35,55 +35,71 @@ ssl_clamp_version_range(uint16_t *min_ver, uint16_t *max_ver, | |||
| 35 | } | 35 | } |
| 36 | 36 | ||
| 37 | int | 37 | int |
| 38 | ssl_version_set_min(const SSL_METHOD *meth, uint16_t ver, uint16_t max_ver, | 38 | ssl_version_set_min(const SSL_METHOD *meth, uint16_t proto_ver, |
| 39 | uint16_t *out_ver, uint16_t *out_proto_ver) | 39 | uint16_t max_tls_ver, uint16_t *out_tls_ver, uint16_t *out_proto_ver) |
| 40 | { | 40 | { |
| 41 | uint16_t min_version, max_version; | 41 | uint16_t min_version, max_version; |
| 42 | 42 | ||
| 43 | if (ver == 0) { | 43 | if (proto_ver == 0) { |
| 44 | *out_ver = meth->internal->min_version; | 44 | *out_tls_ver = meth->internal->min_tls_version; |
| 45 | *out_proto_ver = 0; | 45 | *out_proto_ver = 0; |
| 46 | return 1; | 46 | return 1; |
| 47 | } | 47 | } |
| 48 | if (meth->internal->dtls) { | ||
| 49 | if (proto_ver != DTLS1_VERSION) | ||
| 50 | return 0; | ||
| 51 | *out_tls_ver = TLS1_1_VERSION; | ||
| 52 | *out_proto_ver = proto_ver; | ||
| 53 | return 1; | ||
| 54 | } | ||
| 48 | 55 | ||
| 49 | min_version = ver; | 56 | min_version = proto_ver; |
| 50 | max_version = max_ver; | 57 | max_version = max_tls_ver; |
| 51 | 58 | ||
| 52 | if (!ssl_clamp_version_range(&min_version, &max_version, | 59 | if (!ssl_clamp_tls_version_range(&min_version, &max_version, |
| 53 | meth->internal->min_version, meth->internal->max_version)) | 60 | meth->internal->min_tls_version, meth->internal->max_tls_version)) |
| 54 | return 0; | 61 | return 0; |
| 55 | 62 | ||
| 56 | *out_ver = *out_proto_ver = min_version; | 63 | *out_tls_ver = min_version; |
| 64 | *out_proto_ver = min_version; | ||
| 57 | 65 | ||
| 58 | return 1; | 66 | return 1; |
| 59 | } | 67 | } |
| 60 | 68 | ||
| 61 | int | 69 | int |
| 62 | ssl_version_set_max(const SSL_METHOD *meth, uint16_t ver, uint16_t min_ver, | 70 | ssl_version_set_max(const SSL_METHOD *meth, uint16_t proto_ver, |
| 63 | uint16_t *out_ver, uint16_t *out_proto_ver) | 71 | uint16_t min_tls_ver, uint16_t *out_tls_ver, uint16_t *out_proto_ver) |
| 64 | { | 72 | { |
| 65 | uint16_t min_version, max_version; | 73 | uint16_t min_version, max_version; |
| 66 | 74 | ||
| 67 | if (ver == 0) { | 75 | if (proto_ver == 0) { |
| 68 | *out_ver = meth->internal->max_version; | 76 | *out_tls_ver = meth->internal->max_tls_version; |
| 69 | *out_proto_ver = 0; | 77 | *out_proto_ver = 0; |
| 70 | return 1; | 78 | return 1; |
| 71 | } | 79 | } |
| 80 | if (meth->internal->dtls) { | ||
| 81 | if (proto_ver != DTLS1_VERSION) | ||
| 82 | return 0; | ||
| 83 | *out_tls_ver = TLS1_1_VERSION; | ||
| 84 | *out_proto_ver = proto_ver; | ||
| 85 | return 1; | ||
| 86 | } | ||
| 72 | 87 | ||
| 73 | min_version = min_ver; | 88 | min_version = min_tls_ver; |
| 74 | max_version = ver; | 89 | max_version = proto_ver; |
| 75 | 90 | ||
| 76 | if (!ssl_clamp_version_range(&min_version, &max_version, | 91 | if (!ssl_clamp_tls_version_range(&min_version, &max_version, |
| 77 | meth->internal->min_version, meth->internal->max_version)) | 92 | meth->internal->min_tls_version, meth->internal->max_tls_version)) |
| 78 | return 0; | 93 | return 0; |
| 79 | 94 | ||
| 80 | *out_ver = *out_proto_ver = max_version; | 95 | *out_tls_ver = max_version; |
| 96 | *out_proto_ver = max_version; | ||
| 81 | 97 | ||
| 82 | return 1; | 98 | return 1; |
| 83 | } | 99 | } |
| 84 | 100 | ||
| 85 | int | 101 | int |
| 86 | ssl_enabled_version_range(SSL *s, uint16_t *min_ver, uint16_t *max_ver) | 102 | ssl_enabled_tls_version_range(SSL *s, uint16_t *min_ver, uint16_t *max_ver) |
| 87 | { | 103 | { |
| 88 | uint16_t min_version, max_version; | 104 | uint16_t min_version, max_version; |
| 89 | 105 | ||
| @@ -121,8 +137,8 @@ ssl_enabled_version_range(SSL *s, uint16_t *min_ver, uint16_t *max_ver) | |||
| 121 | return 0; | 137 | return 0; |
| 122 | 138 | ||
| 123 | /* Limit to configured version range. */ | 139 | /* Limit to configured version range. */ |
| 124 | if (!ssl_clamp_version_range(&min_version, &max_version, | 140 | if (!ssl_clamp_tls_version_range(&min_version, &max_version, |
| 125 | s->internal->min_version, s->internal->max_version)) | 141 | s->internal->min_tls_version, s->internal->max_tls_version)) |
| 126 | return 0; | 142 | return 0; |
| 127 | 143 | ||
| 128 | if (min_ver != NULL) | 144 | if (min_ver != NULL) |
| @@ -134,26 +150,19 @@ ssl_enabled_version_range(SSL *s, uint16_t *min_ver, uint16_t *max_ver) | |||
| 134 | } | 150 | } |
| 135 | 151 | ||
| 136 | int | 152 | int |
| 137 | ssl_supported_version_range(SSL *s, uint16_t *min_ver, uint16_t *max_ver) | 153 | ssl_supported_tls_version_range(SSL *s, uint16_t *min_ver, uint16_t *max_ver) |
| 138 | { | 154 | { |
| 139 | uint16_t min_version, max_version; | 155 | uint16_t min_version, max_version; |
| 140 | 156 | ||
| 141 | /* DTLS cannot currently be disabled... */ | 157 | if (!ssl_enabled_tls_version_range(s, &min_version, &max_version)) |
| 142 | if (SSL_is_dtls(s)) { | ||
| 143 | min_version = max_version = DTLS1_VERSION; | ||
| 144 | goto done; | ||
| 145 | } | ||
| 146 | |||
| 147 | if (!ssl_enabled_version_range(s, &min_version, &max_version)) | ||
| 148 | return 0; | 158 | return 0; |
| 149 | 159 | ||
| 150 | /* Limit to the versions supported by this method. */ | 160 | /* Limit to the versions supported by this method. */ |
| 151 | if (!ssl_clamp_version_range(&min_version, &max_version, | 161 | if (!ssl_clamp_tls_version_range(&min_version, &max_version, |
| 152 | s->method->internal->min_version, | 162 | s->method->internal->min_tls_version, |
| 153 | s->method->internal->max_version)) | 163 | s->method->internal->max_tls_version)) |
| 154 | return 0; | 164 | return 0; |
| 155 | 165 | ||
| 156 | done: | ||
| 157 | if (min_ver != NULL) | 166 | if (min_ver != NULL) |
| 158 | *min_ver = min_version; | 167 | *min_ver = min_version; |
| 159 | if (max_ver != NULL) | 168 | if (max_ver != NULL) |
| @@ -167,7 +176,12 @@ ssl_max_supported_version(SSL *s, uint16_t *max_ver) | |||
| 167 | { | 176 | { |
| 168 | *max_ver = 0; | 177 | *max_ver = 0; |
| 169 | 178 | ||
| 170 | if (!ssl_supported_version_range(s, NULL, max_ver)) | 179 | if (SSL_is_dtls(s)) { |
| 180 | *max_ver = DTLS1_VERSION; | ||
| 181 | return 1; | ||
| 182 | } | ||
| 183 | |||
| 184 | if (!ssl_supported_tls_version_range(s, NULL, max_ver)) | ||
| 171 | return 0; | 185 | return 0; |
| 172 | 186 | ||
| 173 | return 1; | 187 | return 1; |
| @@ -199,7 +213,7 @@ ssl_max_shared_version(SSL *s, uint16_t peer_ver, uint16_t *max_ver) | |||
| 199 | else | 213 | else |
| 200 | return 0; | 214 | return 0; |
| 201 | 215 | ||
| 202 | if (!ssl_supported_version_range(s, &min_version, &max_version)) | 216 | if (!ssl_supported_tls_version_range(s, &min_version, &max_version)) |
| 203 | return 0; | 217 | return 0; |
| 204 | 218 | ||
| 205 | if (shared_version < min_version) | 219 | if (shared_version < min_version) |
| @@ -232,12 +246,12 @@ ssl_downgrade_max_version(SSL *s, uint16_t *max_ver) | |||
| 232 | return 1; | 246 | return 1; |
| 233 | } | 247 | } |
| 234 | 248 | ||
| 235 | if (!ssl_enabled_version_range(s, &min_version, &max_version)) | 249 | if (!ssl_enabled_tls_version_range(s, &min_version, &max_version)) |
| 236 | return 0; | 250 | return 0; |
| 237 | 251 | ||
| 238 | if (!ssl_clamp_version_range(&min_version, &max_version, | 252 | if (!ssl_clamp_tls_version_range(&min_version, &max_version, |
| 239 | s->ctx->method->internal->min_version, | 253 | s->ctx->method->internal->min_tls_version, |
| 240 | s->ctx->method->internal->max_version)) | 254 | s->ctx->method->internal->max_tls_version)) |
| 241 | return 0; | 255 | return 0; |
| 242 | 256 | ||
| 243 | *max_ver = max_version; | 257 | *max_ver = max_version; |
| @@ -255,7 +269,7 @@ ssl_check_version_from_server(SSL *s, uint16_t server_version) | |||
| 255 | if (SSL_is_dtls(s)) | 269 | if (SSL_is_dtls(s)) |
| 256 | return (server_version == DTLS1_VERSION); | 270 | return (server_version == DTLS1_VERSION); |
| 257 | 271 | ||
| 258 | if (!ssl_supported_version_range(s, &min_version, &max_version)) | 272 | if (!ssl_supported_tls_version_range(s, &min_version, &max_version)) |
| 259 | return 0; | 273 | return 0; |
| 260 | 274 | ||
| 261 | return (server_version >= min_version && server_version <= max_version); | 275 | return (server_version >= min_version && server_version <= max_version); |
diff --git a/src/lib/libssl/tls13_client.c b/src/lib/libssl/tls13_client.c index fbb84dcc87..a7c3bf2c00 100644 --- a/src/lib/libssl/tls13_client.c +++ b/src/lib/libssl/tls13_client.c | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | /* $OpenBSD: tls13_client.c,v 1.72 2021/02/22 16:15:49 tb Exp $ */ | 1 | /* $OpenBSD: tls13_client.c,v 1.73 2021/02/25 17:06:05 jsing Exp $ */ |
| 2 | /* | 2 | /* |
| 3 | * Copyright (c) 2018, 2019 Joel Sing <jsing@openbsd.org> | 3 | * Copyright (c) 2018, 2019 Joel Sing <jsing@openbsd.org> |
| 4 | * | 4 | * |
| @@ -31,7 +31,7 @@ tls13_client_init(struct tls13_ctx *ctx) | |||
| 31 | size_t groups_len; | 31 | size_t groups_len; |
| 32 | SSL *s = ctx->ssl; | 32 | SSL *s = ctx->ssl; |
| 33 | 33 | ||
| 34 | if (!ssl_supported_version_range(s, &ctx->hs->min_version, | 34 | if (!ssl_supported_tls_version_range(s, &ctx->hs->min_version, |
| 35 | &ctx->hs->max_version)) { | 35 | &ctx->hs->max_version)) { |
| 36 | SSLerror(s, SSL_R_NO_PROTOCOLS_AVAILABLE); | 36 | SSLerror(s, SSL_R_NO_PROTOCOLS_AVAILABLE); |
| 37 | return 0; | 37 | return 0; |
diff --git a/src/lib/libssl/tls13_legacy.c b/src/lib/libssl/tls13_legacy.c index bacd11b950..f611aa061d 100644 --- a/src/lib/libssl/tls13_legacy.c +++ b/src/lib/libssl/tls13_legacy.c | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | /* $OpenBSD: tls13_legacy.c,v 1.21 2021/01/07 16:26:31 tb Exp $ */ | 1 | /* $OpenBSD: tls13_legacy.c,v 1.22 2021/02/25 17:06:05 jsing Exp $ */ |
| 2 | /* | 2 | /* |
| 3 | * Copyright (c) 2018, 2019 Joel Sing <jsing@openbsd.org> | 3 | * Copyright (c) 2018, 2019 Joel Sing <jsing@openbsd.org> |
| 4 | * | 4 | * |
| @@ -359,7 +359,7 @@ tls13_use_legacy_client(struct tls13_ctx *ctx) | |||
| 359 | return 0; | 359 | return 0; |
| 360 | 360 | ||
| 361 | s->internal->handshake_func = s->method->internal->ssl_connect; | 361 | s->internal->handshake_func = s->method->internal->ssl_connect; |
| 362 | s->client_version = s->version = s->method->internal->max_version; | 362 | s->client_version = s->version = s->method->internal->max_tls_version; |
| 363 | 363 | ||
| 364 | S3I(s)->hs.state = SSL3_ST_CR_SRVR_HELLO_A; | 364 | S3I(s)->hs.state = SSL3_ST_CR_SRVR_HELLO_A; |
| 365 | 365 | ||
| @@ -375,7 +375,7 @@ tls13_use_legacy_server(struct tls13_ctx *ctx) | |||
| 375 | return 0; | 375 | return 0; |
| 376 | 376 | ||
| 377 | s->internal->handshake_func = s->method->internal->ssl_accept; | 377 | s->internal->handshake_func = s->method->internal->ssl_accept; |
| 378 | s->client_version = s->version = s->method->internal->max_version; | 378 | s->client_version = s->version = s->method->internal->max_tls_version; |
| 379 | s->server = 1; | 379 | s->server = 1; |
| 380 | 380 | ||
| 381 | S3I(s)->hs.state = SSL3_ST_SR_CLNT_HELLO_A; | 381 | S3I(s)->hs.state = SSL3_ST_SR_CLNT_HELLO_A; |
diff --git a/src/lib/libssl/tls13_server.c b/src/lib/libssl/tls13_server.c index 0b079c1d83..715066fb59 100644 --- a/src/lib/libssl/tls13_server.c +++ b/src/lib/libssl/tls13_server.c | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | /* $OpenBSD: tls13_server.c,v 1.69 2021/01/09 10:41:48 tb Exp $ */ | 1 | /* $OpenBSD: tls13_server.c,v 1.70 2021/02/25 17:06:05 jsing Exp $ */ |
| 2 | /* | 2 | /* |
| 3 | * Copyright (c) 2019, 2020 Joel Sing <jsing@openbsd.org> | 3 | * Copyright (c) 2019, 2020 Joel Sing <jsing@openbsd.org> |
| 4 | * Copyright (c) 2020 Bob Beck <beck@openbsd.org> | 4 | * Copyright (c) 2020 Bob Beck <beck@openbsd.org> |
| @@ -29,7 +29,7 @@ tls13_server_init(struct tls13_ctx *ctx) | |||
| 29 | { | 29 | { |
| 30 | SSL *s = ctx->ssl; | 30 | SSL *s = ctx->ssl; |
| 31 | 31 | ||
| 32 | if (!ssl_supported_version_range(s, &ctx->hs->min_version, | 32 | if (!ssl_supported_tls_version_range(s, &ctx->hs->min_version, |
| 33 | &ctx->hs->max_version)) { | 33 | &ctx->hs->max_version)) { |
| 34 | SSLerror(s, SSL_R_NO_PROTOCOLS_AVAILABLE); | 34 | SSLerror(s, SSL_R_NO_PROTOCOLS_AVAILABLE); |
| 35 | return 0; | 35 | return 0; |
