Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(244)

Side by Side Diff: net/quic/crypto/quic_crypto_client_config.cc

Issue 192583004: QUIC - use QuicSessionKey tuple (host, port, is_https) instead of server_hostname (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Merge with TOT Created 6 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "net/quic/crypto/quic_crypto_client_config.h" 5 #include "net/quic/crypto/quic_crypto_client_config.h"
6 6
7 #include "base/stl_util.h" 7 #include "base/stl_util.h"
8 #include "net/quic/crypto/cert_compressor.h" 8 #include "net/quic/crypto/cert_compressor.h"
9 #include "net/quic/crypto/channel_id.h" 9 #include "net/quic/crypto/channel_id.h"
10 #include "net/quic/crypto/common_cert_set.h" 10 #include "net/quic/crypto/common_cert_set.h"
11 #include "net/quic/crypto/crypto_framer.h" 11 #include "net/quic/crypto/crypto_framer.h"
12 #include "net/quic/crypto/crypto_utils.h" 12 #include "net/quic/crypto/crypto_utils.h"
13 #include "net/quic/crypto/curve25519_key_exchange.h" 13 #include "net/quic/crypto/curve25519_key_exchange.h"
14 #include "net/quic/crypto/key_exchange.h" 14 #include "net/quic/crypto/key_exchange.h"
15 #include "net/quic/crypto/p256_key_exchange.h" 15 #include "net/quic/crypto/p256_key_exchange.h"
16 #include "net/quic/crypto/proof_verifier.h" 16 #include "net/quic/crypto/proof_verifier.h"
17 #include "net/quic/crypto/quic_encrypter.h" 17 #include "net/quic/crypto/quic_encrypter.h"
18 #include "net/quic/quic_session_key.h"
18 #include "net/quic/quic_utils.h" 19 #include "net/quic/quic_utils.h"
19 20
20 #if defined(OS_WIN) 21 #if defined(OS_WIN)
21 #include "base/win/windows_version.h" 22 #include "base/win/windows_version.h"
22 #endif 23 #endif
23 24
24 using base::StringPiece; 25 using base::StringPiece;
26 using std::make_pair;
25 using std::map; 27 using std::map;
26 using std::string; 28 using std::string;
27 using std::vector; 29 using std::vector;
28 30
29 namespace net { 31 namespace net {
30 32
31 QuicCryptoClientConfig::QuicCryptoClientConfig() {} 33 QuicCryptoClientConfig::QuicCryptoClientConfig() {}
32 34
33 QuicCryptoClientConfig::~QuicCryptoClientConfig() { 35 QuicCryptoClientConfig::~QuicCryptoClientConfig() {
34 STLDeleteValues(&cached_states_); 36 STLDeleteValues(&cached_states_);
(...skipping 211 matching lines...) Expand 10 before | Expand all | Expand 10 after
246 kexs.resize(2); 248 kexs.resize(2);
247 kexs[0] = kC255; 249 kexs[0] = kC255;
248 kexs[1] = kP256; 250 kexs[1] = kP256;
249 251
250 // Authenticated encryption algorithms. 252 // Authenticated encryption algorithms.
251 aead.resize(1); 253 aead.resize(1);
252 aead[0] = kAESG; 254 aead[0] = kAESG;
253 } 255 }
254 256
255 QuicCryptoClientConfig::CachedState* QuicCryptoClientConfig::LookupOrCreate( 257 QuicCryptoClientConfig::CachedState* QuicCryptoClientConfig::LookupOrCreate(
256 const string& server_hostname) { 258 const QuicSessionKey& server_key) {
257 map<string, CachedState*>::const_iterator it = 259 map<QuicSessionKey, CachedState*>::const_iterator it =
258 cached_states_.find(server_hostname); 260 cached_states_.find(server_key);
259 if (it != cached_states_.end()) { 261 if (it != cached_states_.end()) {
260 return it->second; 262 return it->second;
261 } 263 }
262 264
263 CachedState* cached = new CachedState; 265 CachedState* cached = new CachedState;
264 cached_states_.insert(make_pair(server_hostname, cached)); 266 cached_states_.insert(make_pair(server_key, cached));
265 return cached; 267 return cached;
266 } 268 }
267 269
268 void QuicCryptoClientConfig::FillInchoateClientHello( 270 void QuicCryptoClientConfig::FillInchoateClientHello(
269 const string& server_hostname, 271 const string& server_hostname,
270 const QuicVersion preferred_version, 272 const QuicVersion preferred_version,
271 const CachedState* cached, 273 const CachedState* cached,
272 QuicCryptoNegotiatedParameters* out_params, 274 QuicCryptoNegotiatedParameters* out_params,
273 CryptoHandshakeMessage* out) const { 275 CryptoHandshakeMessage* out) const {
274 out->set_tag(kCHLO); 276 out->set_tag(kCHLO);
(...skipping 384 matching lines...) Expand 10 before | Expand all | Expand 10 after
659 661
660 ChannelIDSigner* QuicCryptoClientConfig::channel_id_signer() const { 662 ChannelIDSigner* QuicCryptoClientConfig::channel_id_signer() const {
661 return channel_id_signer_.get(); 663 return channel_id_signer_.get();
662 } 664 }
663 665
664 void QuicCryptoClientConfig::SetChannelIDSigner(ChannelIDSigner* signer) { 666 void QuicCryptoClientConfig::SetChannelIDSigner(ChannelIDSigner* signer) {
665 channel_id_signer_.reset(signer); 667 channel_id_signer_.reset(signer);
666 } 668 }
667 669
668 void QuicCryptoClientConfig::InitializeFrom( 670 void QuicCryptoClientConfig::InitializeFrom(
669 const std::string& server_hostname, 671 const QuicSessionKey& server_key,
670 const std::string& canonical_server_hostname, 672 const QuicSessionKey& canonical_server_key,
671 QuicCryptoClientConfig* canonical_crypto_config) { 673 QuicCryptoClientConfig* canonical_crypto_config) {
672 CachedState* canonical_cached = 674 CachedState* canonical_cached =
673 canonical_crypto_config->LookupOrCreate(canonical_server_hostname); 675 canonical_crypto_config->LookupOrCreate(canonical_server_key);
674 if (!canonical_cached->proof_valid()) { 676 if (!canonical_cached->proof_valid()) {
675 return; 677 return;
676 } 678 }
677 CachedState* cached = LookupOrCreate(server_hostname); 679 CachedState* cached = LookupOrCreate(server_key);
678 cached->InitializeFrom(*canonical_cached); 680 cached->InitializeFrom(*canonical_cached);
679 } 681 }
680 682
681 } // namespace net 683 } // namespace net
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698