summaryrefslogtreecommitdiff
path: root/src/lib/libssl/ssl_locl.h
diff options
context:
space:
mode:
authortb <>2021-03-27 17:56:28 +0000
committertb <>2021-03-27 17:56:28 +0000
commitc181c81fb01592ad1d49ebf7afa9676c41a32aaf (patch)
treeac68380783b8a8e28d9f271506951e261e2e33a4 /src/lib/libssl/ssl_locl.h
parent5d4b8b6f9a8de0dda3e5c12178bbb427e7f32037 (diff)
downloadopenbsd-c181c81fb01592ad1d49ebf7afa9676c41a32aaf.tar.gz
openbsd-c181c81fb01592ad1d49ebf7afa9676c41a32aaf.tar.bz2
openbsd-c181c81fb01592ad1d49ebf7afa9676c41a32aaf.zip
Garbage collect s->internal->type
This variable is used in the legacy stack to decide whether we are a server or a client. That's what s->server is for... The new TLSv1.3 stack failed to set s->internal->type, which resulted in hilarious mishandling of previous_{client,server}_finished. Indeed, both client and server would first store the client's verify_data in previous_server_finished and later overwrite it with the server's verify_data. Consequently, renegotiation has been completely broken for more than a year. In fact, server side renegotiation was broken during the 6.5 release cycle. Clearly, no-one uses this. This commit fixes client side renegotiation and restores the previous behavior of SSL_get_client_CA_list(). Server side renegotiation will be fixed in a later commit. ok jsing
Diffstat (limited to 'src/lib/libssl/ssl_locl.h')
-rw-r--r--src/lib/libssl/ssl_locl.h4
1 files changed, 1 insertions, 3 deletions
diff --git a/src/lib/libssl/ssl_locl.h b/src/lib/libssl/ssl_locl.h
index c8c7ca5472..7f197bbcdf 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.330 2021/03/24 18:44:00 jsing Exp $ */ 1/* $OpenBSD: ssl_locl.h,v 1.331 2021/03/27 17:56:28 tb 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 *
@@ -755,8 +755,6 @@ typedef struct ssl_internal_st {
755 755
756 /* XXX non-callback */ 756 /* XXX non-callback */
757 757
758 int type; /* SSL_ST_CONNECT or SSL_ST_ACCEPT */
759
760 /* This holds a variable that indicates what we were doing 758 /* This holds a variable that indicates what we were doing
761 * when a 0 or -1 is returned. This is needed for 759 * when a 0 or -1 is returned. This is needed for
762 * non-blocking IO so we know what request needs re-doing when 760 * non-blocking IO so we know what request needs re-doing when