boringssl/include/openssl
David Benjamin 17b3083373 Use a separate timeout scheme for TLS 1.3.
In TLS 1.2, resumption's benefits are more-or-less subsumed by False
Start. TLS 1.2 resumption lifetime is bounded by how much traffic we are
willing to encrypt without fresh key material, so the lifetime is short.
Renewal uses the same key, so we do not allow it to increase lifetimes.

In TLS 1.3, resumption unlocks 0-RTT. We do not implement psk_ke, so
resumption incorporates fresh key material into both encrypted traffic
(except for early data) and renewed tickets. Thus we are both more
willing to and more interested in longer lifetimes for tickets. Renewal
is also not useless. Thus in TLS 1.3, lifetime is bound separately by
the lifetime of a given secret as a psk_dhe_ke authenticator and the
lifetime of the online signature which authenticated the initial
handshake.

This change maintains two lifetimes on an SSL_SESSION: timeout which is
the renewable lifetime of this ticket, and auth_timeout which is the
non-renewable cliff. It also separates the TLS 1.2 and TLS 1.3 timeouts.
The old session timeout defaults and configuration apply to TLS 1.3, and
we define new ones for TLS 1.3.

Finally, this makes us honor the NewSessionTicket timeout in TLS 1.3.
It's no longer a "hint" in 1.3 and there's probably value in avoiding
known-useless 0-RTT offers.

BUG=120

Change-Id: Iac46d56e5a6a377d8b88b8fa31f492d534cb1b85
Reviewed-on: https://boringssl-review.googlesource.com/13503
Reviewed-by: Adam Langley <agl@google.com>
2017-02-02 19:51:49 +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 Remove buffer BIOs. 2017-01-26 23:09:10 +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
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
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 Remove SHA_LBLOCK and SHA_LONG. 2017-01-25 23:30:13 +00:00
srtp.h
ssl3.h Remove the rest of write_message. 2017-01-25 23:39:23 +00:00
ssl.h Use a separate timeout scheme for TLS 1.3. 2017-02-02 19:51:49 +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 Get OPENSSL_COMPILE_ASSERT working in function bodies. 2017-01-24 21:30:33 +00:00
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