diff options
author | tb <> | 2021-03-27 17:56:28 +0000 |
---|---|---|
committer | tb <> | 2021-03-27 17:56:28 +0000 |
commit | c181c81fb01592ad1d49ebf7afa9676c41a32aaf (patch) | |
tree | ac68380783b8a8e28d9f271506951e261e2e33a4 /src/lib/libssl/ssl_locl.h | |
parent | 5d4b8b6f9a8de0dda3e5c12178bbb427e7f32037 (diff) | |
download | openbsd-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.h | 4 |
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 |