boringssl/include/openssl
David Benjamin 61672818ef Check for buffered handshake messages on cipher change in DTLS.
This is the equivalent of FragmentAcrossChangeCipherSuite for DTLS. It
is possible for us to, while receiving pre-CCS handshake messages, to
buffer up a message with sequence number meant for a post-CCS Finished.
When we then get to the new epoch and attempt to read the Finished, we
will process the buffered Finished although it was sent with the wrong
encryption.

Move ssl_set_{read,write}_state to SSL_PROTOCOL_METHOD hooks as this is
a property of the transport. Notably, read_state may fail. In DTLS
check the handshake buffer size. We could place this check in
read_change_cipher_spec, but TLS 1.3 has no ChangeCipherSpec message, so
we will need to implement this at the cipher change point anyway. (For
now, there is only an assert on the TLS side. This will be replaced with
a proper check in TLS 1.3.)

Change-Id: Ia52b0b81e7db53e9ed2d4f6d334a1cce13e93297
Reviewed-on: https://boringssl-review.googlesource.com/8790
Reviewed-by: Steven Valdez <svaldez@google.com>
Reviewed-by: David Benjamin <davidben@google.com>
Commit-Queue: David Benjamin <davidben@google.com>
CQ-Verified: CQ bot account: commit-bot@chromium.org <commit-bot@chromium.org>
2016-07-16 08:25:02 +00:00
..
aead.h Revert scoped_types.h change. 2016-07-12 08:05:38 -07:00
aes.h Fix documentation typo. 2015-07-01 21:33:29 +00:00
arm_arch.h Remove CRYPTO_set_NEON_functional. 2016-02-23 23:19:46 +00:00
asn1_mac.h Ditch remaining filename comments from public headers and ssl/ 2015-10-20 18:40:05 +00:00
asn1.h Revert scoped_types.h change. 2016-07-12 08:05:38 -07: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 Give SSL_PRIVATE_KEY_METHOD a message-based API. 2016-07-15 18:26:45 +00:00
bio.h Revert scoped_types.h change. 2016-07-12 08:05:38 -07:00
blowfish.h Add decrepit, initially containing CAST and Blowfish. 2015-04-06 16:58:45 -07:00
bn.h Revert scoped_types.h change. 2016-07-12 08:05:38 -07:00
buf.h Add BUF_MEM_reserve. 2016-05-18 19:09:06 +00:00
buffer.h Add buffer.h for compatibility. 2015-05-12 00:09:57 +00:00
bytestring.h Revert scoped_types.h change. 2016-07-12 08:05:38 -07:00
cast.h Add decrepit, initially containing CAST and Blowfish. 2015-04-06 16:58:45 -07:00
chacha.h Require in == out for in-place encryption. 2016-06-09 19:49:03 +00:00
cipher.h Revert scoped_types.h change. 2016-07-12 08:05:38 -07:00
cmac.h Revert scoped_types.h change. 2016-07-12 08:05:38 -07:00
conf.h Fix the shared library build. 2016-03-09 20:13:41 +00:00
cpu.h Make CRYPTO_is_NEON_capable aware of the buggy CPU. 2016-04-28 16:42:21 +00:00
crypto.h Add no-op function ENGINE_register_all_complete. 2016-07-12 17:54:41 +00:00
curve25519.h Revert scoped_types.h change. 2016-07-12 08:05:38 -07:00
des.h Fix shared library build on OS X. 2015-10-26 23:39:47 +00:00
dh.h Revert scoped_types.h change. 2016-07-12 08:05:38 -07:00
digest.h Revert scoped_types.h change. 2016-07-12 08:05:38 -07:00
dsa.h Compute kinv in DSA with Fermat's Little Theorem. 2016-06-20 17:16:18 +00:00
dtls1.h Opaquify DTLS structs. 2015-05-08 18:02:02 +00:00
ec_key.h Revert scoped_types.h change. 2016-07-12 08:05:38 -07:00
ec.h Revert scoped_types.h change. 2016-07-12 08:05:38 -07:00
ecdh.h Clean up |ECDH_compute_key|. 2015-10-27 17:00:25 +00:00
ecdsa.h Revert scoped_types.h change. 2016-07-12 08:05:38 -07:00
engine.h Unwind DH_METHOD and DSA_METHOD. 2015-11-03 22:54:36 +00:00
err.h Have doc.go parse struct comments. 2016-01-26 23:23:23 +00:00
evp.h Change |EVP_PKEY_up_ref| to return int. 2016-07-12 17:55:41 +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 Revert scoped_types.h change. 2016-07-12 08:05:38 -07:00
lhash_macros.h Remove hash table lookups from ex_data. 2015-04-15 23:59:35 +00:00
lhash.h Style: fix some header guards 2015-10-26 18:47:51 +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 Revert "Move C++ helpers into |bssl| namespace." 2016-07-12 08:09:33 -07:00
newhope.h Revert scoped_types.h change. 2016-07-12 08:05:38 -07:00
nid.h Elliptic curve + post-quantum key exchange 2016-05-19 22:19:14 +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 Make OBJ_NAME_do_all more OpenSSL-compatible. 2016-06-27 21:42:27 +00:00
objects.h
opensslconf.h Rename opensslfeatures.h to opensslconf.h. 2016-02-26 01:32:50 +00:00
opensslv.h Get version-related functions from crypto.h rather than ssl.h. 2015-05-20 22:58:14 +00:00
ossl_typ.h
pem.h Include crypto.h from pem.h. 2016-05-20 15:31:26 +00:00
pkcs7.h Move public headers to include/openssl/ 2014-07-14 22:42:18 +00:00
pkcs8.h Revert scoped_types.h change. 2016-07-12 08:05:38 -07:00
pkcs12.h
poly1305.h Revert "Enable upstream's Poly1305 code." 2016-03-29 22:47:11 +00:00
rand.h Add a deterministic PRNG for fuzzing. 2016-03-03 01:36:19 +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 Revert scoped_types.h change. 2016-07-12 08:05:38 -07:00
safestack.h
sha.h Revert md_len removal from SHA256_CTX and SHA512_CTX. 2016-04-27 19:01:23 +00:00
srtp.h Fold srtp.h into ssl.h. 2015-09-14 23:59:37 +00:00
ssl3.h Push V2ClientHello handling into ssl3_get_message. 2016-07-07 23:51:25 +00:00
ssl.h Check for buffered handshake messages on cipher change in DTLS. 2016-07-16 08:25:02 +00:00
stack_macros.h Fix stack macro const-ness. 2016-05-13 18:24:57 +00:00
stack.h Revert "Move C++ helpers into |bssl| namespace." 2016-07-12 08:09:33 -07: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 Add SSL_set_signing_algorithm_prefs. 2016-07-15 18:10:29 +00:00
type_check.h Try to fix MSVC and __STDC_VERSION__ again. 2015-05-20 13:42:12 -07:00
x509_vfy.h Unwind X509_LU_RETRY and fix a lot of type confusion. 2016-06-16 16:24:44 +00:00
x509.h Revert scoped_types.h change. 2016-07-12 08:05:38 -07:00
x509v3.h Add missing prototypes. 2016-03-20 16:43:50 +00:00