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

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

Issue 18033005: Cleanup of OpenSSL/NSS implementation of ProofVerfifier release. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Implemented wtc's comments Created 7 years, 5 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
« no previous file with comments | « net/quic/crypto/crypto_handshake.h ('k') | net/quic/crypto/proof_test.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. 1 // Copyright (c) 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/crypto_handshake.h" 5 #include "net/quic/crypto/crypto_handshake.h"
6 6
7 #include <ctype.h> 7 #include <ctype.h>
8 8
9 #include "base/memory/scoped_ptr.h" 9 #include "base/memory/scoped_ptr.h"
10 #include "base/stl_util.h" 10 #include "base/stl_util.h"
(...skipping 412 matching lines...) Expand 10 before | Expand all | Expand 10 after
423 return QUIC_INVALID_CRYPTO_MESSAGE_PARAMETER; 423 return QUIC_INVALID_CRYPTO_MESSAGE_PARAMETER;
424 } 424 }
425 425
426 if (now.ToUNIXSeconds() >= expiry_seconds) { 426 if (now.ToUNIXSeconds() >= expiry_seconds) {
427 *error_details = "SCFG has expired"; 427 *error_details = "SCFG has expired";
428 return QUIC_CRYPTO_SERVER_CONFIG_EXPIRED; 428 return QUIC_CRYPTO_SERVER_CONFIG_EXPIRED;
429 } 429 }
430 430
431 if (!matches_existing) { 431 if (!matches_existing) {
432 server_config_ = server_config.as_string(); 432 server_config_ = server_config.as_string();
433 server_config_valid_ = false; 433 SetProofInvalid();
434 ++generation_counter_;
435 scfg_.reset(new_scfg_storage.release()); 434 scfg_.reset(new_scfg_storage.release());
436 } 435 }
437 return QUIC_NO_ERROR; 436 return QUIC_NO_ERROR;
438 } 437 }
439 438
440 void QuicCryptoClientConfig::CachedState::InvalidateServerConfig() { 439 void QuicCryptoClientConfig::CachedState::InvalidateServerConfig() {
441 server_config_.clear(); 440 server_config_.clear();
442 scfg_.reset(); 441 scfg_.reset();
443 server_config_valid_ = false; 442 SetProofInvalid();
444 ++generation_counter_;
445 } 443 }
446 444
447 void QuicCryptoClientConfig::CachedState::SetProof(const vector<string>& certs, 445 void QuicCryptoClientConfig::CachedState::SetProof(const vector<string>& certs,
448 StringPiece signature) { 446 StringPiece signature) {
449 bool has_changed = 447 bool has_changed =
450 signature != server_config_sig_ || certs_.size() != certs.size(); 448 signature != server_config_sig_ || certs_.size() != certs.size();
451 449
452 if (!has_changed) { 450 if (!has_changed) {
453 for (size_t i = 0; i < certs_.size(); i++) { 451 for (size_t i = 0; i < certs_.size(); i++) {
454 if (certs_[i] != certs[i]) { 452 if (certs_[i] != certs[i]) {
455 has_changed = true; 453 has_changed = true;
456 break; 454 break;
457 } 455 }
458 } 456 }
459 } 457 }
460 458
461 if (!has_changed) { 459 if (!has_changed) {
462 return; 460 return;
463 } 461 }
464 462
465 // If the proof has changed then it needs to be revalidated. 463 // If the proof has changed then it needs to be revalidated.
466 server_config_valid_ = false; 464 SetProofInvalid();
467 ++generation_counter_;
468 certs_ = certs; 465 certs_ = certs;
469 server_config_sig_ = signature.as_string(); 466 server_config_sig_ = signature.as_string();
470 } 467 }
471 468
472 void QuicCryptoClientConfig::CachedState::SetProofValid() { 469 void QuicCryptoClientConfig::CachedState::SetProofValid() {
473 server_config_valid_ = true; 470 server_config_valid_ = true;
474 } 471 }
475 472
473 void QuicCryptoClientConfig::CachedState::SetProofInvalid() {
474 server_config_valid_ = false;
475 ++generation_counter_;
476 }
477
476 const string& QuicCryptoClientConfig::CachedState::server_config() const { 478 const string& QuicCryptoClientConfig::CachedState::server_config() const {
477 return server_config_; 479 return server_config_;
478 } 480 }
479 481
480 const string& 482 const string&
481 QuicCryptoClientConfig::CachedState::source_address_token() const { 483 QuicCryptoClientConfig::CachedState::source_address_token() const {
482 return source_address_token_; 484 return source_address_token_;
483 } 485 }
484 486
485 const vector<string>& QuicCryptoClientConfig::CachedState::certs() const { 487 const vector<string>& QuicCryptoClientConfig::CachedState::certs() const {
(...skipping 368 matching lines...) Expand 10 before | Expand all | Expand 10 after
854 856
855 ChannelIDSigner* QuicCryptoClientConfig::channel_id_signer() const { 857 ChannelIDSigner* QuicCryptoClientConfig::channel_id_signer() const {
856 return channel_id_signer_.get(); 858 return channel_id_signer_.get();
857 } 859 }
858 860
859 void QuicCryptoClientConfig::SetChannelIDSigner(ChannelIDSigner* signer) { 861 void QuicCryptoClientConfig::SetChannelIDSigner(ChannelIDSigner* signer) {
860 channel_id_signer_.reset(signer); 862 channel_id_signer_.reset(signer);
861 } 863 }
862 864
863 } // namespace net 865 } // namespace net
OLDNEW
« no previous file with comments | « net/quic/crypto/crypto_handshake.h ('k') | net/quic/crypto/proof_test.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698