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 524 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
541 break; | 543 break; |
542 case kCC20: | 544 case kCC20: |
543 cipher_suite = 0xcc13; // TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256 | 545 cipher_suite = 0xcc13; // TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256 |
544 security_bits = 256; | 546 security_bits = 256; |
545 break; | 547 break; |
546 default: | 548 default: |
547 NOTREACHED(); | 549 NOTREACHED(); |
548 return false; | 550 return false; |
549 } | 551 } |
550 int ssl_connection_status = 0; | 552 int ssl_connection_status = 0; |
551 ssl_connection_status |= cipher_suite; | 553 SSLConnectionStatusSetCipherSuite(cipher_suite, &ssl_connection_status); |
552 ssl_connection_status |= | 554 SSLConnectionStatusSetVersion(SSL_CONNECTION_VERSION_QUIC, |
553 (SSL_CONNECTION_VERSION_QUIC & SSL_CONNECTION_VERSION_MASK) | 555 &ssl_connection_status); |
554 << SSL_CONNECTION_VERSION_SHIFT; | 556 |
| 557 // Report the QUIC key exchange as the corresponding TLS curve. |
| 558 uint16_t curve; |
| 559 switch (crypto_stream_->crypto_negotiated_params().key_exchange) { |
| 560 case kP256: |
| 561 curve = SSL_CURVE_SECP256R1; |
| 562 break; |
| 563 case kC255: |
| 564 curve = SSL_CURVE_X25519; |
| 565 break; |
| 566 default: |
| 567 NOTREACHED(); |
| 568 return false; |
| 569 } |
| 570 ssl_info->key_exchange_info = curve; |
555 | 571 |
556 ssl_info->public_key_hashes = cert_verify_result_->public_key_hashes; | 572 ssl_info->public_key_hashes = cert_verify_result_->public_key_hashes; |
557 ssl_info->is_issued_by_known_root = | 573 ssl_info->is_issued_by_known_root = |
558 cert_verify_result_->is_issued_by_known_root; | 574 cert_verify_result_->is_issued_by_known_root; |
559 ssl_info->pkp_bypassed = pkp_bypassed_; | 575 ssl_info->pkp_bypassed = pkp_bypassed_; |
560 | 576 |
561 ssl_info->connection_status = ssl_connection_status; | 577 ssl_info->connection_status = ssl_connection_status; |
562 ssl_info->client_cert_sent = false; | 578 ssl_info->client_cert_sent = false; |
563 ssl_info->channel_id_sent = crypto_stream_->WasChannelIDSent(); | 579 ssl_info->channel_id_sent = crypto_stream_->WasChannelIDSent(); |
564 ssl_info->security_bits = security_bits; | 580 ssl_info->security_bits = security_bits; |
(...skipping 682 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1247 } | 1263 } |
1248 | 1264 |
1249 void QuicChromiumClientSession::DeletePromised( | 1265 void QuicChromiumClientSession::DeletePromised( |
1250 QuicClientPromisedInfo* promised) { | 1266 QuicClientPromisedInfo* promised) { |
1251 if (IsOpenStream(promised->id())) | 1267 if (IsOpenStream(promised->id())) |
1252 streams_pushed_and_claimed_count_++; | 1268 streams_pushed_and_claimed_count_++; |
1253 QuicClientSessionBase::DeletePromised(promised); | 1269 QuicClientSessionBase::DeletePromised(promised); |
1254 } | 1270 } |
1255 | 1271 |
1256 } // namespace net | 1272 } // namespace net |
OLD | NEW |