bfdd1a9308
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> |
||
---|---|---|
.. | ||
test | ||
bio_ssl.cc | ||
CMakeLists.txt | ||
custom_extensions.cc | ||
d1_both.cc | ||
d1_lib.cc | ||
d1_pkt.cc | ||
d1_srtp.cc | ||
dtls_method.cc | ||
dtls_record.cc | ||
handoff.cc | ||
handshake_client.cc | ||
handshake_server.cc | ||
handshake.cc | ||
internal.h | ||
s3_both.cc | ||
s3_lib.cc | ||
s3_pkt.cc | ||
span_test.cc | ||
ssl_aead_ctx.cc | ||
ssl_asn1.cc | ||
ssl_buffer.cc | ||
ssl_cert.cc | ||
ssl_cipher.cc | ||
ssl_file.cc | ||
ssl_key_share.cc | ||
ssl_lib.cc | ||
ssl_privkey.cc | ||
ssl_session.cc | ||
ssl_stat.cc | ||
ssl_test.cc | ||
ssl_transcript.cc | ||
ssl_versions.cc | ||
ssl_x509.cc | ||
t1_enc.cc | ||
t1_lib.cc | ||
tls13_both.cc | ||
tls13_client.cc | ||
tls13_enc.cc | ||
tls13_server.cc | ||
tls_method.cc | ||
tls_record.cc |