| 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 // OpenSSL binding for SSLClientSocket. The class layout and general principle | 5 // OpenSSL binding for SSLClientSocket. The class layout and general principle |
| 6 // of operation is derived from SSLClientSocketNSS. | 6 // of operation is derived from SSLClientSocketNSS. |
| 7 | 7 |
| 8 #include "net/socket/ssl_client_socket_openssl.h" | 8 #include "net/socket/ssl_client_socket_openssl.h" |
| 9 | 9 |
| 10 #include <errno.h> | 10 #include <errno.h> |
| (...skipping 385 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 396 } | 396 } |
| 397 | 397 |
| 398 SSLClientSocketOpenSSL::~SSLClientSocketOpenSSL() { | 398 SSLClientSocketOpenSSL::~SSLClientSocketOpenSSL() { |
| 399 Disconnect(); | 399 Disconnect(); |
| 400 } | 400 } |
| 401 | 401 |
| 402 std::string SSLClientSocketOpenSSL::GetSessionCacheKey() const { | 402 std::string SSLClientSocketOpenSSL::GetSessionCacheKey() const { |
| 403 std::string result = host_and_port_.ToString(); | 403 std::string result = host_and_port_.ToString(); |
| 404 result.append("/"); | 404 result.append("/"); |
| 405 result.append(ssl_session_cache_shard_); | 405 result.append(ssl_session_cache_shard_); |
| 406 |
| 407 // Shard the session cache based on maximum protocol version. This causes |
| 408 // fallback connections to use a separate session cache. |
| 409 result.append("/"); |
| 410 switch (ssl_config_.version_max) { |
| 411 case SSL_PROTOCOL_VERSION_SSL3: |
| 412 result.append("ssl3"); |
| 413 break; |
| 414 case SSL_PROTOCOL_VERSION_TLS1: |
| 415 result.append("tls1"); |
| 416 break; |
| 417 case SSL_PROTOCOL_VERSION_TLS1_1: |
| 418 result.append("tls1.1"); |
| 419 break; |
| 420 case SSL_PROTOCOL_VERSION_TLS1_2: |
| 421 result.append("tls1.2"); |
| 422 break; |
| 423 default: |
| 424 NOTREACHED(); |
| 425 } |
| 426 |
| 406 return result; | 427 return result; |
| 407 } | 428 } |
| 408 | 429 |
| 409 bool SSLClientSocketOpenSSL::InSessionCache() const { | 430 bool SSLClientSocketOpenSSL::InSessionCache() const { |
| 410 SSLContext* context = SSLContext::GetInstance(); | 431 SSLContext* context = SSLContext::GetInstance(); |
| 411 std::string cache_key = GetSessionCacheKey(); | 432 std::string cache_key = GetSessionCacheKey(); |
| 412 return context->session_cache()->SSLSessionIsInCache(cache_key); | 433 return context->session_cache()->SSLSessionIsInCache(cache_key); |
| 413 } | 434 } |
| 414 | 435 |
| 415 void SSLClientSocketOpenSSL::SetHandshakeCompletionCallback( | 436 void SSLClientSocketOpenSSL::SetHandshakeCompletionCallback( |
| (...skipping 1608 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2024 ct::SCT_STATUS_LOG_UNKNOWN)); | 2045 ct::SCT_STATUS_LOG_UNKNOWN)); |
| 2025 } | 2046 } |
| 2026 } | 2047 } |
| 2027 | 2048 |
| 2028 scoped_refptr<X509Certificate> | 2049 scoped_refptr<X509Certificate> |
| 2029 SSLClientSocketOpenSSL::GetUnverifiedServerCertificateChain() const { | 2050 SSLClientSocketOpenSSL::GetUnverifiedServerCertificateChain() const { |
| 2030 return server_cert_; | 2051 return server_cert_; |
| 2031 } | 2052 } |
| 2032 | 2053 |
| 2033 } // namespace net | 2054 } // namespace net |
| OLD | NEW |