boringssl/ssl
David Benjamin bfdd1a9308 Give SSL_SESSION a destructor.
Previously we'd partially attempted the ssl_st / bssl::SSLConnection
subclassing split, but that gets messy when we actually try to add a
destructor, because CRYPTO_EX_DATA's cleanup function needs an ssl_st*,
not a bssl::SSLConnection*. Downcasting is technically undefined at this
point and will likely offend some CFI-like check.

Moreover, it appears that even with today's subclassing split,
New<SSL>() emits symbols like:

W ssl_st*& std::forward<ssl_st*&>(std::remove_reference<ssl_st*&>::type&)

The compiler does not bother emitting them in optimized builds, but it
does suggest we can't really avoid claiming the ssl_st type name at the
symbol level, short of doing reinterpret_casts at all API boundaries.
And, of course, we've already long claimed it at the #include level.

So I've just left this defining directly on ssl_session_st. The cost is
we need to write some silly "bssl::" prefixes in the headers, but so it
goes. In the likely event we change our minds again, we can always
revise this.

Change-Id: Ieb429e8eaabe7c2961ef7f8d9234fb71f19a5e2a
Reviewed-on: https://boringssl-review.googlesource.com/29587
Commit-Queue: David Benjamin <davidben@google.com>
CQ-Verified: CQ bot account: commit-bot@chromium.org <commit-bot@chromium.org>
Reviewed-by: Adam Langley <agl@google.com>
2018-07-03 22:57:56 +00:00
..
test Remove the redundant version check in ssl_session_cmp. 2018-07-03 22:54:16 +00:00
bio_ssl.cc Switch a number of files to C++. 2017-07-12 20:54:02 +00:00
CMakeLists.txt Add initial, experimental support for split handshakes. 2018-01-31 22:24:17 +00:00
custom_extensions.cc Rename ssl3_send_alert and ssl3_protocol_version. 2017-10-12 16:24:35 +00:00
d1_both.cc Fix build with GCC 4.9.2 and -Wtype-limits. 2018-05-08 22:21:45 +00:00
d1_lib.cc Give DTLS1_STATE a destructor. 2017-10-25 03:23:26 +00:00
d1_pkt.cc Make SSL3_BUFFER a proper C++ class. 2017-10-24 17:32:45 +00:00
d1_srtp.cc Move srtp_profiles to SSL_CONFIG. 2018-05-03 15:20:13 +00:00
dtls_method.cc Remove trailing whitespace from ssl/. 2018-02-26 22:05:13 +00:00
dtls_record.cc Use the actual record header, rather than reassembling it. 2018-04-10 19:52:33 +00:00
handoff.cc Remove SSL 3.0 implementation. 2018-06-28 16:54:58 +00:00
handshake_client.cc Give SSL_SESSION a destructor. 2018-07-03 22:57:56 +00:00
handshake_server.cc Give SSL_SESSION a destructor. 2018-07-03 22:57:56 +00:00
handshake.cc Give SSL_SESSION a destructor. 2018-07-03 22:57:56 +00:00
internal.h Give SSL_SESSION a destructor. 2018-07-03 22:57:56 +00:00
s3_both.cc Remove SSL 3.0 implementation. 2018-06-28 16:54:58 +00:00
s3_lib.cc SSL_CONFIG: new struct for sheddable handshake configuration. 2018-05-01 20:40:16 +00:00
s3_pkt.cc Pack encrypted handshake messages together. 2018-05-29 14:28:56 +00:00
span_test.cc Add bssl::SealRecord and bssl::OpenRecord. 2017-07-24 20:14:08 +00:00
ssl_aead_ctx.cc Remove SSL 3.0 implementation. 2018-06-28 16:54:58 +00:00
ssl_asn1.cc Give SSL_SESSION a destructor. 2018-07-03 22:57:56 +00:00
ssl_buffer.cc Move init_buf and rwstate into SSL3_STATE. 2017-10-24 18:55:05 +00:00
ssl_cert.cc Give SSL_SESSION a destructor. 2018-07-03 22:57:56 +00:00
ssl_cipher.cc Remove SSL 3.0 implementation. 2018-06-28 16:54:58 +00:00
ssl_file.cc Avoid modifying stack in sk_find. 2018-04-12 21:02:12 +00:00
ssl_key_share.cc Check for nullptr result of SSLKeyShare::Create(). 2018-04-10 22:55:53 +00:00
ssl_lib.cc Give SSL_SESSION a destructor. 2018-07-03 22:57:56 +00:00
ssl_privkey.cc Add bssl::UpRef. 2018-07-03 22:47:36 +00:00
ssl_session.cc Give SSL_SESSION a destructor. 2018-07-03 22:57:56 +00:00
ssl_stat.cc Remove trailing whitespace from ssl/. 2018-02-26 22:05:13 +00:00
ssl_test.cc Add bssl::UpRef. 2018-07-03 22:47:36 +00:00
ssl_transcript.cc Remove SSL 3.0 implementation. 2018-06-28 16:54:58 +00:00
ssl_versions.cc Remove SSL 3.0 implementation. 2018-06-28 16:54:58 +00:00
ssl_x509.cc Give SSL_SESSION a destructor. 2018-07-03 22:57:56 +00:00
t1_enc.cc Remove SSL 3.0 implementation. 2018-06-28 16:54:58 +00:00
t1_lib.cc Give SSL_SESSION a destructor. 2018-07-03 22:57:56 +00:00
tls13_both.cc Give SSL_SESSION a destructor. 2018-07-03 22:57:56 +00:00
tls13_client.cc Give SSL_SESSION a destructor. 2018-07-03 22:57:56 +00:00
tls13_enc.cc Remove draft22 and experiment2. 2018-01-31 18:07:53 +00:00
tls13_server.cc Give SSL_SESSION a destructor. 2018-07-03 22:57:56 +00:00
tls_method.cc Pack encrypted handshake messages together. 2018-05-29 14:28:56 +00:00
tls_record.cc Use the actual record header, rather than reassembling it. 2018-04-10 19:52:33 +00:00