boringssl/include/openssl
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
..
aead.h Remove old ChaCha20-Poly1305 AEAD. 2017-01-19 23:27:54 +00:00
aes.h Replace keywrap AEADs with upstream's APIs. 2016-10-04 01:37:31 +00:00
arm_arch.h Remove CRYPTO_set_NEON_functional. 2016-02-23 23:19:46 +00:00
asn1_mac.h Purge the remainder of asn1_mac.h. 2016-08-03 21:37:31 +00:00
asn1.h Add d2i_X509_from_buffer. 2016-11-01 23:06:43 +00:00
asn1t.h Remove ASN.1 print hooks. 2016-06-14 17:38:31 +00:00
base64.h Replace base64 decoding. 2016-05-26 17:59:10 +00:00
base.h Add support for Fuchsia in crypto/rand. 2017-01-13 21:47:11 +00:00
bio.h Spellcheck our public headers. 2017-01-12 18:24:27 +00:00
blowfish.h
bn.h Spellcheck our public headers. 2017-01-12 18:24:27 +00:00
buf.h Fold stack-allocated types into headers. 2016-09-07 21:50:05 +00:00
buffer.h
bytestring.h Add CBS functions for working with BIT STRINGs. 2016-12-14 17:25:30 +00:00
cast.h
chacha.h Require in == out for in-place encryption. 2016-06-09 19:49:03 +00:00
cipher.h Spellcheck our public headers. 2017-01-12 18:24:27 +00:00
cmac.h Fold stack-allocated types into headers. 2016-09-07 21:50:05 +00:00
conf.h Spellcheck our public headers. 2017-01-12 18:24:27 +00:00
cpu.h Add PPC64LE assembly for AES-GCM. 2016-09-27 18:43:20 +00:00
crypto.h Add no-op function ENGINE_register_all_complete. 2016-07-12 17:54:41 +00:00
curve25519.h Add yet another way to spell 32. 2016-12-12 21:39:34 +00:00
des.h Fix shared library build on OS X. 2015-10-26 23:39:47 +00:00
dh.h Fold stack-allocated types into headers. 2016-09-07 21:50:05 +00:00
digest.h Spellcheck our public headers. 2017-01-12 18:24:27 +00:00
dsa.h Spellcheck our public headers. 2017-01-12 18:24:27 +00:00
dtls1.h
ec_key.h Fold stack-allocated types into headers. 2016-09-07 21:50:05 +00:00
ec.h Fix a couple of missing spaces in comments. 2017-01-12 18:35:25 +00:00
ecdh.h Const-correct ECDH_compute_key. 2016-10-09 17:53:19 +00:00
ecdsa.h Spellcheck our public headers. 2017-01-12 18:24:27 +00:00
engine.h Fold stack-allocated types into headers. 2016-09-07 21:50:05 +00:00
err.h Spellcheck our public headers. 2017-01-12 18:24:27 +00:00
evp.h Spellcheck our public headers. 2017-01-12 18:24:27 +00:00
ex_data.h Skip free callbacks on empty CRYPTO_EX_DATAs. 2015-12-15 21:32:14 +00:00
hkdf.h Const-correct HKDF_expand. 2016-07-16 07:55:19 +00:00
hmac.h Fold stack-allocated types into headers. 2016-09-07 21:50:05 +00:00
lhash_macros.h Add CRYPTO_BUFFER and CRYPTO_BUFFER_POOL. 2016-10-27 22:55:55 +00:00
lhash.h Remove lh_new's default hash and comparator. 2017-01-04 01:44:10 +00:00
md4.h Add one-shot |MD4| function. 2016-03-09 01:13:55 +00:00
md5.h Store the partial block as uint8_t, not uint32_t. 2015-12-16 19:59:29 +00:00
mem.h Fold stack-allocated types into headers. 2016-09-07 21:50:05 +00:00
nid.h Reimplement objects.pl in Go. 2016-12-21 22:14:13 +00:00
obj_mac.h Rename obj_mac.h to nid.h and make it a multiply-includable header. 2016-03-31 20:45:35 +00:00
obj.h Spellcheck our public headers. 2017-01-12 18:24:27 +00:00
objects.h
opensslconf.h Rename opensslfeatures.h to opensslconf.h. 2016-02-26 01:32:50 +00:00
opensslv.h
ossl_typ.h
pem.h Include crypto.h from pem.h. 2016-05-20 15:31:26 +00:00
pkcs7.h
pkcs8.h Const-correct the PKCS8 salt parameter. 2017-01-10 23:42:10 +00:00
pkcs12.h
poly1305.h Revert "Enable upstream's Poly1305 code." 2016-03-29 22:47:11 +00:00
pool.h Fix a couple of missing spaces in comments. 2017-01-12 18:35:25 +00:00
rand.h Add corpora for fuzzers with fuzzer mode disabled. 2016-11-09 16:53:37 +00:00
rc4.h Add |RC4_options| to decrepit. 2016-03-09 01:14:30 +00:00
ripemd.h Add RIPEMD160 support in decrepit. 2016-03-09 19:37:14 +00:00
rsa.h Spellcheck our public headers. 2017-01-12 18:24:27 +00:00
safestack.h
sha.h Fix the comments for |SHA[256|384|512]_Transform|. 2016-07-28 21:49:48 +00:00
srtp.h
ssl3.h Emulate the client_cert_cb with cert_cb. 2016-12-12 21:58:24 +00:00
ssl.h Run select_certificate_cb multiple times 2017-01-20 23:55:50 +00:00
stack_macros.h Add STACK_OF(CRYPTO_BUFFER). 2016-11-09 01:00:09 +00:00
stack.h Add STACK_OF(CRYPTO_BUFFER). 2016-11-09 01:00:09 +00:00
thread.h Add missing 'does nothing' comments for consistency. 2016-06-28 20:40:45 +00:00
time_support.h Include time.h in time_support.h. 2016-03-17 17:27:27 +00:00
tls1.h Remove old ChaCha20-Poly1305 AEAD. 2017-01-19 23:27:54 +00:00
type_check.h
x509_vfy.h Add |X509_STORE_set0_additional_untrusted|. 2016-12-21 00:20:43 +00:00
x509.h Unexport PKCS5 functions. 2017-01-10 23:41:44 +00:00
x509v3.h Fix up macros. 2016-10-18 18:28:23 +00:00