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