Index: net/quic/quic_crypto_client_stream.cc |
diff --git a/net/quic/quic_crypto_client_stream.cc b/net/quic/quic_crypto_client_stream.cc |
index cccbc0acd8c5bfc27cbc965ba1538673d6f5abc9..a84a756d26da4c3a9f899cb0f18d568f98a57d6d 100644 |
--- a/net/quic/quic_crypto_client_stream.cc |
+++ b/net/quic/quic_crypto_client_stream.cc |
@@ -16,6 +16,10 @@ QuicCryptoClientStream::QuicCryptoClientStream(QuicSession* session, |
: QuicCryptoStream(session), |
server_hostname_(server_hostname) { |
config_.SetDefaults(); |
+ |
+ QuicGuid guid = session->connection()->guid(); |
+ crypto_config_.hkdf_info.append(reinterpret_cast<char*>(&guid), |
+ sizeof(guid)); |
} |
QuicCryptoClientStream::~QuicCryptoClientStream() { |
@@ -46,7 +50,7 @@ void QuicCryptoClientStream::OnHandshakeMessage( |
} |
QuicErrorCode err = crypto_config_.ProcessServerHello( |
- message, &crypto_negotiated_params_, &error_details); |
+ message, nonce_, &crypto_negotiated_params_, &error_details); |
if (err != QUIC_NO_ERROR) { |
CloseConnectionWithDetails(err, error_details); |
return; |
@@ -64,6 +68,8 @@ bool QuicCryptoClientStream::CryptoConnect() { |
CryptoHandshakeMessage message; |
crypto_config_.FillClientHello(nonce_, server_hostname_, &message); |
config_.ToHandshakeMessage(&message); |
+ const QuicData& data = message.GetSerialized(); |
+ crypto_config_.hkdf_info.append(data.data(), data.length()); |
SendHandshakeMessage(message); |
return true; |
} |