OLD | NEW |
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_server_config.h" | 5 #include "net/quic/crypto/quic_crypto_server_config.h" |
6 | 6 |
7 #include <stdlib.h> | 7 #include <stdlib.h> |
8 | 8 |
9 #include <algorithm> | 9 #include <algorithm> |
10 | 10 |
(...skipping 504 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
515 SelectNewPrimaryConfig(now); | 515 SelectNewPrimaryConfig(now); |
516 DCHECK(primary_config_.get()); | 516 DCHECK(primary_config_.get()); |
517 DCHECK_EQ(configs_.find(primary_config_->id)->second, primary_config_); | 517 DCHECK_EQ(configs_.find(primary_config_->id)->second, primary_config_); |
518 } | 518 } |
519 | 519 |
520 memcpy(primary_orbit, primary_config_->orbit, sizeof(primary_orbit)); | 520 memcpy(primary_orbit, primary_config_->orbit, sizeof(primary_orbit)); |
521 } | 521 } |
522 | 522 |
523 requested_config = GetConfigWithScid(requested_scid); | 523 requested_config = GetConfigWithScid(requested_scid); |
524 primary_config = primary_config_; | 524 primary_config = primary_config_; |
525 crypto_proof->primary_scid = primary_config->id; | 525 if (FLAGS_quic_crypto_proof_use_ref) { |
| 526 crypto_proof->config = primary_config_; |
| 527 } else { |
| 528 crypto_proof->primary_scid = primary_config->id; |
| 529 } |
526 } | 530 } |
527 | 531 |
528 if (result->error_code == QUIC_NO_ERROR) { | 532 if (result->error_code == QUIC_NO_ERROR) { |
529 EvaluateClientHello(server_ip, version, primary_orbit, requested_config, | 533 EvaluateClientHello(server_ip, version, primary_orbit, requested_config, |
530 primary_config, crypto_proof, result, done_cb); | 534 primary_config, crypto_proof, result, done_cb); |
531 } else { | 535 } else { |
532 done_cb->Run(result); | 536 done_cb->Run(result); |
533 } | 537 } |
534 } | 538 } |
535 | 539 |
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
575 | 579 |
576 if (!next_config_promotion_time_.IsZero() && | 580 if (!next_config_promotion_time_.IsZero() && |
577 next_config_promotion_time_.IsAfter(now)) { | 581 next_config_promotion_time_.IsAfter(now)) { |
578 SelectNewPrimaryConfig(now); | 582 SelectNewPrimaryConfig(now); |
579 DCHECK(primary_config_.get()); | 583 DCHECK(primary_config_.get()); |
580 DCHECK_EQ(configs_.find(primary_config_->id)->second, primary_config_); | 584 DCHECK_EQ(configs_.find(primary_config_->id)->second, primary_config_); |
581 } | 585 } |
582 | 586 |
583 // Use the config that the client requested in order to do key-agreement. | 587 // Use the config that the client requested in order to do key-agreement. |
584 // Otherwise give it a copy of |primary_config_| to use. | 588 // Otherwise give it a copy of |primary_config_| to use. |
585 primary_config = GetConfigWithScid(crypto_proof->primary_scid); | 589 if (FLAGS_quic_crypto_proof_use_ref) { |
| 590 primary_config = crypto_proof->config; |
| 591 } else { |
| 592 primary_config = GetConfigWithScid(crypto_proof->primary_scid); |
| 593 } |
586 if (!primary_config) { | 594 if (!primary_config) { |
587 *error_details = "Configuration not found"; | 595 *error_details = "Configuration not found"; |
588 QUIC_BUG << "Primary config not found"; | 596 QUIC_BUG << "Primary config not found"; |
589 return QUIC_CRYPTO_INTERNAL_ERROR; | 597 return QUIC_CRYPTO_INTERNAL_ERROR; |
590 } | 598 } |
591 | 599 |
592 requested_config = GetConfigWithScid(requested_scid); | 600 requested_config = GetConfigWithScid(requested_scid); |
593 } | 601 } |
594 | 602 |
595 if (validate_chlo_result.error_code != QUIC_NO_ERROR) { | 603 if (validate_chlo_result.error_code != QUIC_NO_ERROR) { |
(...skipping 1200 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1796 : channel_id_enabled(false), | 1804 : channel_id_enabled(false), |
1797 is_primary(false), | 1805 is_primary(false), |
1798 primary_time(QuicWallTime::Zero()), | 1806 primary_time(QuicWallTime::Zero()), |
1799 priority(0), | 1807 priority(0), |
1800 source_address_token_boxer(nullptr) {} | 1808 source_address_token_boxer(nullptr) {} |
1801 | 1809 |
1802 QuicCryptoServerConfig::Config::~Config() { | 1810 QuicCryptoServerConfig::Config::~Config() { |
1803 STLDeleteElements(&key_exchanges); | 1811 STLDeleteElements(&key_exchanges); |
1804 } | 1812 } |
1805 | 1813 |
| 1814 QuicCryptoProof::QuicCryptoProof() : certs(nullptr) {} |
| 1815 QuicCryptoProof::~QuicCryptoProof() {} |
1806 } // namespace net | 1816 } // namespace net |
OLD | NEW |