OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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/chromium/quic_chromium_client_session.h" | 5 #include "net/quic/chromium/quic_chromium_client_session.h" |
6 | 6 |
| 7 #include <openssl/ssl.h> |
| 8 |
7 #include <utility> | 9 #include <utility> |
8 | 10 |
9 #include "base/callback_helpers.h" | 11 #include "base/callback_helpers.h" |
10 #include "base/location.h" | 12 #include "base/location.h" |
11 #include "base/memory/ptr_util.h" | 13 #include "base/memory/ptr_util.h" |
12 #include "base/metrics/histogram_macros.h" | 14 #include "base/metrics/histogram_macros.h" |
13 #include "base/metrics/sparse_histogram.h" | 15 #include "base/metrics/sparse_histogram.h" |
14 #include "base/single_thread_task_runner.h" | 16 #include "base/single_thread_task_runner.h" |
15 #include "base/stl_util.h" | 17 #include "base/stl_util.h" |
16 #include "base/strings/string_number_conversions.h" | 18 #include "base/strings/string_number_conversions.h" |
(...skipping 520 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
537 break; | 539 break; |
538 case kCC20: | 540 case kCC20: |
539 cipher_suite = 0xcc13; // TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256 | 541 cipher_suite = 0xcc13; // TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256 |
540 security_bits = 256; | 542 security_bits = 256; |
541 break; | 543 break; |
542 default: | 544 default: |
543 NOTREACHED(); | 545 NOTREACHED(); |
544 return false; | 546 return false; |
545 } | 547 } |
546 int ssl_connection_status = 0; | 548 int ssl_connection_status = 0; |
547 ssl_connection_status |= cipher_suite; | 549 SSLConnectionStatusSetCipherSuite(cipher_suite, &ssl_connection_status); |
548 ssl_connection_status |= | 550 SSLConnectionStatusSetVersion(SSL_CONNECTION_VERSION_QUIC, |
549 (SSL_CONNECTION_VERSION_QUIC & SSL_CONNECTION_VERSION_MASK) | 551 &ssl_connection_status); |
550 << SSL_CONNECTION_VERSION_SHIFT; | 552 |
| 553 // Report the QUIC key exchange as the corresponding TLS curve. |
| 554 uint16_t curve; |
| 555 switch (crypto_stream_->crypto_negotiated_params().key_exchange) { |
| 556 case kP256: |
| 557 curve = SSL_CURVE_SECP256R1; |
| 558 break; |
| 559 case kC255: |
| 560 curve = SSL_CURVE_X25519; |
| 561 break; |
| 562 default: |
| 563 NOTREACHED(); |
| 564 return false; |
| 565 } |
| 566 ssl_info->key_exchange_info = curve; |
551 | 567 |
552 ssl_info->public_key_hashes = cert_verify_result_->public_key_hashes; | 568 ssl_info->public_key_hashes = cert_verify_result_->public_key_hashes; |
553 ssl_info->is_issued_by_known_root = | 569 ssl_info->is_issued_by_known_root = |
554 cert_verify_result_->is_issued_by_known_root; | 570 cert_verify_result_->is_issued_by_known_root; |
555 ssl_info->pkp_bypassed = pkp_bypassed_; | 571 ssl_info->pkp_bypassed = pkp_bypassed_; |
556 | 572 |
557 ssl_info->connection_status = ssl_connection_status; | 573 ssl_info->connection_status = ssl_connection_status; |
558 ssl_info->client_cert_sent = false; | 574 ssl_info->client_cert_sent = false; |
559 ssl_info->channel_id_sent = crypto_stream_->WasChannelIDSent(); | 575 ssl_info->channel_id_sent = crypto_stream_->WasChannelIDSent(); |
560 ssl_info->security_bits = security_bits; | 576 ssl_info->security_bits = security_bits; |
(...skipping 662 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1223 } | 1239 } |
1224 | 1240 |
1225 void QuicChromiumClientSession::DeletePromised( | 1241 void QuicChromiumClientSession::DeletePromised( |
1226 QuicClientPromisedInfo* promised) { | 1242 QuicClientPromisedInfo* promised) { |
1227 if (IsOpenStream(promised->id())) | 1243 if (IsOpenStream(promised->id())) |
1228 streams_pushed_and_claimed_count_++; | 1244 streams_pushed_and_claimed_count_++; |
1229 QuicClientSessionBase::DeletePromised(promised); | 1245 QuicClientSessionBase::DeletePromised(promised); |
1230 } | 1246 } |
1231 | 1247 |
1232 } // namespace net | 1248 } // namespace net |
OLD | NEW |