boringssl/crypto/err
David Benjamin 7538122ca6 Rework DTLS handshake message reassembly logic.
Notably, drop all special cases around receiving a message in order and
receiving a full message. It makes things more complicated and was the source
of bugs (the MixCompleteMessageWithFragments tests added in this CL did not
pass before). Instead, every message goes through an hm_fragment, and
dtls1_get_message always checks buffered_messages to see if the next is
complete.

The downside is that we pay one more copy of the message data in the common
case. This is only during connection setup, so I think it's worth the
simplicity. (If we want to optimize later, we could either tighten
ssl3_get_message's interface to allow the handshake data being in the
hm_fragment's backing store rather than s->init_buf or swap out s->init_buf
with the hm_fragment's backing store when a mesasge completes.

This CL does not address ssl_read_bytes being an inappropriate API for DTLS.
Future work will revise the handshake/transport boundary to align better with
DTLS's needs. Also other problems that I've left as TODOs.

Change-Id: Ib4570d45634b5181ecf192894d735e8699b1c86b
Reviewed-on: https://boringssl-review.googlesource.com/3764
Reviewed-by: Adam Langley <agl@google.com>
2015-03-10 00:56:45 +00:00
..
asn1.errordata Reset all the error codes. 2015-02-11 23:12:08 +00:00
bio.errordata Reset all the error codes. 2015-02-11 23:12:08 +00:00
bn.errordata Reset all the error codes. 2015-02-11 23:12:08 +00:00
buf.errordata Reset all the error codes. 2015-02-11 23:12:08 +00:00
cipher.errordata Don't delay-initialize legacy AEADs. 2015-03-05 21:25:05 +00:00
CMakeLists.txt Generate error data at build time. 2015-03-06 18:59:25 +00:00
conf.errordata Reset all the error codes. 2015-02-11 23:12:08 +00:00
crypto.errordata Reset all the error codes. 2015-02-11 23:12:08 +00:00
dh.errordata Reset all the error codes. 2015-02-11 23:12:08 +00:00
digest.errordata Precompute sorted array for error strings. 2015-02-09 17:35:31 -08:00
dsa.errordata Reset all the error codes. 2015-02-11 23:12:08 +00:00
ec.errordata Reset all the error codes. 2015-02-11 23:12:08 +00:00
ecdh.errordata Reset all the error codes. 2015-02-11 23:12:08 +00:00
ecdsa.errordata Reset all the error codes. 2015-02-11 23:12:08 +00:00
engine.errordata Precompute sorted array for error strings. 2015-02-09 17:35:31 -08:00
err_data_generate.go Generate error data at build time. 2015-03-06 18:59:25 +00:00
err_impl.c Remove more bits of ERR_STRING_DATA. 2015-02-10 02:10:46 +00:00
err_test.c Remove string.h from base.h. 2015-02-02 19:14:15 +00:00
err.c Generate error data at build time. 2015-03-06 18:59:25 +00:00
evp.errordata Reset all the error codes. 2015-02-11 23:12:08 +00:00
hkdf.errordata Precompute sorted array for error strings. 2015-02-09 17:35:31 -08:00
obj.errordata Reset all the error codes. 2015-02-11 23:12:08 +00:00
pem.errordata Reset all the error codes. 2015-02-11 23:12:08 +00:00
pkcs8.errordata Reset all the error codes. 2015-02-11 23:12:08 +00:00
rsa.errordata Reset all the error codes. 2015-02-11 23:12:08 +00:00
ssl.errordata Rework DTLS handshake message reassembly logic. 2015-03-10 00:56:45 +00:00
x509.errordata Add functions to parse and generate PKCS#7 files with CRLs. 2015-02-27 19:48:19 +00:00
x509v3.errordata Reset all the error codes. 2015-02-11 23:12:08 +00:00