boringssl/ssl
Alessandro Ghedini 958346a5e7 Run select_certificate_cb multiple times
It's not completely clear to me why select_cetificate_cb behaves the way it
does, however not only is it confusing, but it makes assumptions about the
application using BoringSSL (it's not always possible to implement custom
logic outside of the callbacks provided by libssl), that make this callback
somewhat useless.

Case in point, the callback can be used for changing min/max protocol versions
based on per-site policies, and select_certificate_cb is the only place where
SSL_set_min/max_proto_version() can be used (e.g. you can't call them in
cert_cb because it's too late), but the decision on the specific versions to
use might depend on configuration that needs retrieving asynchronously from
over the network, which requires re-running the callback multiple times.

Change-Id: Ia8e151b163628545373e7fd1f327e9af207478a6
Reviewed-on: https://boringssl-review.googlesource.com/13000
Reviewed-by: David Benjamin <davidben@google.com>
Commit-Queue: David Benjamin <davidben@google.com>
2017-01-20 23:55:50 +00:00
..
test Run select_certificate_cb multiple times 2017-01-20 23:55:50 +00:00
CMakeLists.txt Convert one libssl function to C++11. 2017-01-17 21:51:06 +00:00
custom_extensions.c Pass explicit hs parameters into custom_extensions.c. 2016-12-06 19:49:36 +00:00
d1_both.c Work around language and compiler bug in memcpy, etc. 2016-12-21 20:34:47 +00:00
d1_lib.c Add a helper function for resetting SSL_get_error state. 2017-01-04 04:48:44 +00:00
d1_pkt.c Work around language and compiler bug in memcpy, etc. 2016-12-21 20:34:47 +00:00
d1_srtp.c Fix ssl_ctx_make_profiles error handling. 2016-09-27 13:27:06 +00:00
dtls_method.c Work around language and compiler bug in memcpy, etc. 2016-12-21 20:34:47 +00:00
dtls_record.c Work around language and compiler bug in memcpy, etc. 2016-12-21 20:34:47 +00:00
handshake_client.c Don't clear cert_request in ssl3_send_client_certificate. 2017-01-04 04:50:00 +00:00
handshake_server.c Run select_certificate_cb multiple times 2017-01-20 23:55:50 +00:00
internal.h Remove old ChaCha20-Poly1305 AEAD. 2017-01-19 23:27:54 +00:00
s3_both.c Enabling 0-RTT on new Session Tickets. 2017-01-06 16:24:43 +00:00
s3_enc.c Work around language and compiler bug in memcpy, etc. 2016-12-21 20:34:47 +00:00
s3_lib.c Work around language and compiler bug in memcpy, etc. 2016-12-21 20:34:47 +00:00
s3_pkt.c Work around language and compiler bug in memcpy, etc. 2016-12-21 20:34:47 +00:00
ssl_aead_ctx.c Work around language and compiler bug in memcpy, etc. 2016-12-21 20:34:47 +00:00
ssl_asn1.c Enabling 0-RTT on new Session Tickets. 2017-01-06 16:24:43 +00:00
ssl_buffer.c Work around language and compiler bug in memcpy, etc. 2016-12-21 20:34:47 +00:00
ssl_cert.c Clean up certificate auto-chaining. 2017-01-04 01:36:26 +00:00
ssl_cipher.c Remove old ChaCha20-Poly1305 AEAD. 2017-01-19 23:27:54 +00:00
ssl_ecdh.c Remove New Hope key agreement. 2016-12-10 01:06:31 +00:00
ssl_file.c Check for sk_X509_NAME_push failures. 2016-09-27 13:18:37 +00:00
ssl_lib.c Add a getter for SSL_set_session_id_context. 2017-01-20 04:39:42 +00:00
ssl_rsa_cc.cc Convert one libssl function to C++11. 2017-01-17 21:51:06 +00:00
ssl_rsa.c Convert one libssl function to C++11. 2017-01-17 21:51:06 +00:00
ssl_session.c Enabling 0-RTT on new Session Tickets. 2017-01-06 16:24:43 +00:00
ssl_stat.c Move state and next_state to SSL_HANDSHAKE. 2016-12-12 22:09:01 +00:00
ssl_test.cc Remove old ChaCha20-Poly1305 AEAD. 2017-01-19 23:27:54 +00:00
t1_enc.c Work around language and compiler bug in memcpy, etc. 2016-12-21 20:34:47 +00:00
t1_lib.c Never send SNI warning alerts. 2017-01-19 23:03:11 +00:00
tls13_both.c Enabling 0-RTT on new Session Tickets. 2017-01-06 16:24:43 +00:00
tls13_client.c Fix TLS 1.3 NewSessionTicket processing. 2017-01-09 03:37:19 +00:00
tls13_enc.c Work around language and compiler bug in memcpy, etc. 2016-12-21 20:34:47 +00:00
tls13_server.c Enabling 0-RTT on new Session Tickets. 2017-01-06 16:24:43 +00:00
tls_method.c Work around language and compiler bug in memcpy, etc. 2016-12-21 20:34:47 +00:00
tls_record.c Enabling 0-RTT on new Session Tickets. 2017-01-06 16:24:43 +00:00