dd6fed9704
RFC 5077 explicitly allows the server to change its mind and send no ticket by sending an empty NewSessionTicket. See also upstream's 21b538d616b388fa0ce64ef54da3504253895cf8. CBS_stow handles this case somewhat, so we won't get confused about malloc(0) as upstream did. But we'll still fill in a bogus SHA-256 session ID, cache the session, and send a ClientHello with bogus session ID but empty ticket extension. (The session ID field changes meaning significantly when the ticket is or isn't empty. Non-empty means "ignore the session ID, but echo if it resuming" while empty means "I support tickets, but am offering this session ID". The other behavior change is that a server which changes its mind on a resumption handshake will no longer override the client's session cache with a ticket-less session. (This is kind of silly. Given that we don't get completely confused due to CBS_stow, it might not be worth bothering with the rest. Mostly it bugged me that we send an indicator session ID with no ticket.) Change-Id: Id6b5bde1fe51aa3e1f453a948e59bfd1e2502db6 Reviewed-on: https://boringssl-review.googlesource.com/6340 Reviewed-by: Adam Langley <alangley@gmail.com> |
||
---|---|---|
.. | ||
alert.go | ||
cert.pem | ||
chacha20_poly1305_test.go | ||
chacha20_poly1305.go | ||
channel_id_key.pem | ||
cipher_suites.go | ||
common.go | ||
conn.go | ||
dtls.go | ||
ecdsa_cert.pem | ||
ecdsa_key.pem | ||
handshake_client.go | ||
handshake_messages.go | ||
handshake_server.go | ||
key_agreement.go | ||
key.pem | ||
packet_adapter.go | ||
poly1305.go | ||
prf.go | ||
recordingconn.go | ||
runner_test.go | ||
runner.go | ||
test_output.go | ||
ticket.go | ||
tls.go |