diff options
author | jsing <> | 2020-01-26 06:55:17 +0000 |
---|---|---|
committer | jsing <> | 2020-01-26 06:55:17 +0000 |
commit | 2c5f414c66d94839172e610df260529eecc306db (patch) | |
tree | 1a230b4d18426696e25cf14f5ede2743f5b9a94d /src | |
parent | 7da7bbce29b0ab166d3085a673b34a695e3382c5 (diff) | |
download | openbsd-2c5f414c66d94839172e610df260529eecc306db.tar.gz openbsd-2c5f414c66d94839172e610df260529eecc306db.tar.bz2 openbsd-2c5f414c66d94839172e610df260529eecc306db.zip |
When switching back to a legacy client or server, ensure we reset the
handshake function pointer.
Fixes an isssue found by jca@ with OpenVPN.
ok beck@ tb@
Diffstat (limited to 'src')
-rw-r--r-- | src/lib/libssl/tls13_client.c | 3 | ||||
-rw-r--r-- | src/lib/libssl/tls13_server.c | 3 |
2 files changed, 4 insertions, 2 deletions
diff --git a/src/lib/libssl/tls13_client.c b/src/lib/libssl/tls13_client.c index 74a4a4db69..f75f605ace 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.36 2020/01/26 03:38:24 beck Exp $ */ | 1 | /* $OpenBSD: tls13_client.c,v 1.37 2020/01/26 06:55:17 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 | * |
@@ -105,6 +105,7 @@ tls13_use_legacy_client(struct tls13_ctx *ctx) | |||
105 | CBS cbs; | 105 | CBS cbs; |
106 | 106 | ||
107 | s->method = tls_legacy_client_method(); | 107 | s->method = tls_legacy_client_method(); |
108 | s->internal->handshake_func = s->method->internal->ssl_connect; | ||
108 | s->client_version = s->version = s->method->internal->max_version; | 109 | s->client_version = s->version = s->method->internal->max_version; |
109 | 110 | ||
110 | if (!ssl3_setup_init_buffer(s)) | 111 | if (!ssl3_setup_init_buffer(s)) |
diff --git a/src/lib/libssl/tls13_server.c b/src/lib/libssl/tls13_server.c index e5e029c998..41b4d2b24e 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.19 2020/01/26 03:55:22 beck Exp $ */ | 1 | /* $OpenBSD: tls13_server.c,v 1.20 2020/01/26 06:55:17 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> |
@@ -96,6 +96,7 @@ tls13_use_legacy_server(struct tls13_ctx *ctx) | |||
96 | CBS cbs; | 96 | CBS cbs; |
97 | 97 | ||
98 | s->method = tls_legacy_server_method(); | 98 | s->method = tls_legacy_server_method(); |
99 | s->internal->handshake_func = s->method->internal->ssl_accept; | ||
99 | s->client_version = s->version = s->method->internal->max_version; | 100 | s->client_version = s->version = s->method->internal->max_version; |
100 | s->server = 1; | 101 | s->server = 1; |
101 | 102 | ||