44d3eed2bb
The only case where renego is supported is if we are a client and the server sends a HelloRequest. That is still needed to support the renego + client auth hack in Chrome. Beyond that, no other forms of renego will work. The messy logic where the handshake loop is repurposed to send HelloRequest and the extremely confusing tri-state s->renegotiate (which makes SSL_renegotiate_pending a lie during the initial handshake as a server) are now gone. The next change will further simplify things by removing ssl->s3->renegotiate and the renego deferral logic. There's also some server-only renegotiation checks that can go now. Also clean up ssl3_read_bytes' HelloRequest handling. The old logic relied on the handshake state machine to reject bad HelloRequests which... actually that code probably lets you initiate renego by sending the first four bytes of a ServerHello and expecting the peer to read it later. BUG=429450 Change-Id: Ie0f87d0c2b94e13811fe8e22e810ab2ffc8efa6c Reviewed-on: https://boringssl-review.googlesource.com/4824 Reviewed-by: Adam Langley <agl@google.com> |
||
---|---|---|
.. | ||
pqueue | ||
test | ||
CMakeLists.txt | ||
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 | ||
t1_reneg.c |