DescriptionReject renegotiations in SSLClientSocket by default.
Only HTTP/1.1 (and below) sockets may renegotiate. This fix a
crash because SpdyHttpStream didn't account for this properly.
(And can't as the renego + client auth hack is inherently
incompatible with multiplexing.)
Tested manually against hacked up Go servers:
- HTTP/1.1 server which renegotiates with client auth before
sending a response on a fresh socket.
- Same as above but with a reused socket (the server only
requests renego when fetching /auth).
- HTTP/2 which incorrectly renegotiates with client auth upon
requesting /auth. Verified that we get ERR_SSL_PROTOCOL_ERROR
and not crash.
- HTTP/1.1 server which does two handshakes in a row with Finished
and HelloRequest in the same record. NSS and BoringSSL differ in
their behavior here, but in neither port should we miss the
renego.
BUG=484543, 462283
Committed: https://crrev.com/421116c22292293f78c6ab15c7a8d6ca2fc1b68b
Cr-Commit-Position: refs/heads/master@{#329466}
Patch Set 1 #
Total comments: 11
Patch Set 2 : sleevi comments #Patch Set 3 : new API #Patch Set 4 : stray function prototype #
Total comments: 1
Patch Set 5 : NSS greediness... #
Messages
Total messages: 17 (2 generated)
|