97760d5254
Rather than sniff for ClientHello, just fall through to standard logic once weird cases are resolved. This means that garbage will now read as WRONG_VERSION rather than UNKNOWN_PROTOCOL, but the rules here were slightly odd anyway. This also means we'll now accept empty records before the ClientHello (up to the empty record limit), and process records of the wrong type with the usual codepath during the handshake. This shouldn't be any more risk as it just makes the ClientHello more consistent with the rest of the protocol. A TLS implementation that doesn't parse V2ClientHello would do the same unless it still special-cased the first record. All newly-exposed states are reachable by fragmenting ClientHello by one byte and then sending the record in question. BUG=468889 Change-Id: Ib701ae5d8adb663e158c391639b232a9d9cd1c6e Reviewed-on: https://boringssl-review.googlesource.com/5712 Reviewed-by: Adam Langley <agl@google.com> |
||
---|---|---|
.. | ||
pqueue | ||
test | ||
CMakeLists.txt | ||
custom_extensions.c | ||
d1_both.c | ||
d1_clnt.c | ||
d1_lib.c | ||
d1_meth.c | ||
d1_pkt.c | ||
d1_srtp.c | ||
d1_srvr.c | ||
internal.h | ||
s3_both.c | ||
s3_clnt.c | ||
s3_enc.c | ||
s3_lib.c | ||
s3_meth.c | ||
s3_pkt.c | ||
s3_srvr.c | ||
ssl_aead_ctx.c | ||
ssl_algs.c | ||
ssl_asn1.c | ||
ssl_cert.c | ||
ssl_cipher.c | ||
ssl_lib.c | ||
ssl_rsa.c | ||
ssl_sess.c | ||
ssl_stat.c | ||
ssl_test.cc | ||
ssl_txt.c | ||
t1_enc.c | ||
t1_lib.c |