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 #ifndef NET_SOCKET_SSL_CLIENT_SOCKET_H_ | 5 #ifndef NET_SOCKET_SSL_CLIENT_SOCKET_H_ |
6 #define NET_SOCKET_SSL_CLIENT_SOCKET_H_ | 6 #define NET_SOCKET_SSL_CLIENT_SOCKET_H_ |
7 | 7 |
8 #include <string> | 8 #include <string> |
9 | 9 |
10 #include "base/gtest_prod_util.h" | 10 #include "base/gtest_prod_util.h" |
11 #include "net/base/completion_callback.h" | 11 #include "net/base/completion_callback.h" |
12 #include "net/base/load_flags.h" | 12 #include "net/base/load_flags.h" |
13 #include "net/base/net_errors.h" | 13 #include "net/base/net_errors.h" |
14 #include "net/socket/ssl_socket.h" | 14 #include "net/socket/ssl_socket.h" |
15 #include "net/socket/stream_socket.h" | 15 #include "net/socket/stream_socket.h" |
16 | 16 |
17 namespace net { | 17 namespace net { |
18 | 18 |
19 class CertPolicyEnforcer; | 19 class CertPolicyEnforcer; |
20 class CertVerifier; | 20 class CertVerifier; |
21 class ChannelIDService; | 21 class ChannelIDService; |
22 class CTVerifier; | 22 class CTVerifier; |
23 class HostPortPair; | 23 class HostPortPair; |
24 class ServerBoundCertService; | 24 class ServerBoundCertService; |
25 class SSLCertRequestInfo; | 25 class SSLCertRequestInfo; |
26 struct SSLConfig; | 26 struct SSLConfig; |
27 class SSLInfo; | 27 class SSLInfo; |
| 28 class SSLSocketConfigService; |
28 class TransportSecurityState; | 29 class TransportSecurityState; |
29 class X509Certificate; | 30 class X509Certificate; |
30 | 31 |
31 // This struct groups together several fields which are used by various | 32 // This struct groups together several fields which are used by various |
32 // classes related to SSLClientSocket. | 33 // classes related to SSLClientSocket. |
33 struct SSLClientSocketContext { | 34 struct SSLClientSocketContext { |
34 SSLClientSocketContext() | 35 SSLClientSocketContext() |
35 : cert_verifier(NULL), | 36 : cert_verifier(NULL), |
36 channel_id_service(NULL), | 37 channel_id_service(NULL), |
37 transport_security_state(NULL), | 38 transport_security_state(NULL), |
38 cert_transparency_verifier(NULL), | 39 cert_transparency_verifier(NULL), |
39 cert_policy_enforcer(NULL) {} | 40 cert_policy_enforcer(NULL), |
| 41 ssl_socket_config_service(NULL) {} |
40 | 42 |
41 SSLClientSocketContext(CertVerifier* cert_verifier_arg, | 43 SSLClientSocketContext(CertVerifier* cert_verifier_arg, |
42 ChannelIDService* channel_id_service_arg, | 44 ChannelIDService* channel_id_service_arg, |
43 TransportSecurityState* transport_security_state_arg, | 45 TransportSecurityState* transport_security_state_arg, |
44 CTVerifier* cert_transparency_verifier_arg, | 46 CTVerifier* cert_transparency_verifier_arg, |
45 CertPolicyEnforcer* cert_policy_enforcer_arg, | 47 CertPolicyEnforcer* cert_policy_enforcer_arg, |
46 const std::string& ssl_session_cache_shard_arg) | 48 const std::string& ssl_session_cache_shard_arg, |
| 49 SSLSocketConfigService* ssl_socket_config_service_arg) |
47 : cert_verifier(cert_verifier_arg), | 50 : cert_verifier(cert_verifier_arg), |
48 channel_id_service(channel_id_service_arg), | 51 channel_id_service(channel_id_service_arg), |
49 transport_security_state(transport_security_state_arg), | 52 transport_security_state(transport_security_state_arg), |
50 cert_transparency_verifier(cert_transparency_verifier_arg), | 53 cert_transparency_verifier(cert_transparency_verifier_arg), |
51 cert_policy_enforcer(cert_policy_enforcer_arg), | 54 cert_policy_enforcer(cert_policy_enforcer_arg), |
52 ssl_session_cache_shard(ssl_session_cache_shard_arg) {} | 55 ssl_session_cache_shard(ssl_session_cache_shard_arg), |
| 56 ssl_socket_config_service(ssl_socket_config_service_arg) {} |
53 | 57 |
54 CertVerifier* cert_verifier; | 58 CertVerifier* cert_verifier; |
55 ChannelIDService* channel_id_service; | 59 ChannelIDService* channel_id_service; |
56 TransportSecurityState* transport_security_state; | 60 TransportSecurityState* transport_security_state; |
57 CTVerifier* cert_transparency_verifier; | 61 CTVerifier* cert_transparency_verifier; |
58 CertPolicyEnforcer* cert_policy_enforcer; | 62 CertPolicyEnforcer* cert_policy_enforcer; |
59 // ssl_session_cache_shard is an opaque string that identifies a shard of the | 63 // ssl_session_cache_shard is an opaque string that identifies a shard of the |
60 // SSL session cache. SSL sockets with the same ssl_session_cache_shard may | 64 // SSL session cache. SSL sockets with the same ssl_session_cache_shard may |
61 // resume each other's SSL sessions but we'll never sessions between shards. | 65 // resume each other's SSL sessions but we'll never sessions between shards. |
62 const std::string ssl_session_cache_shard; | 66 const std::string ssl_session_cache_shard; |
| 67 SSLSocketConfigService* ssl_socket_config_service; |
63 }; | 68 }; |
64 | 69 |
65 // A client socket that uses SSL as the transport layer. | 70 // A client socket that uses SSL as the transport layer. |
66 // | 71 // |
67 // NOTE: The SSL handshake occurs within the Connect method after a TCP | 72 // NOTE: The SSL handshake occurs within the Connect method after a TCP |
68 // connection is established. If a SSL error occurs during the handshake, | 73 // connection is established. If a SSL error occurs during the handshake, |
69 // Connect will fail. | 74 // Connect will fail. |
70 // | 75 // |
71 class NET_EXPORT SSLClientSocket : public SSLSocket { | 76 class NET_EXPORT SSLClientSocket : public SSLSocket { |
72 public: | 77 public: |
(...skipping 185 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
258 bool signed_cert_timestamps_received_; | 263 bool signed_cert_timestamps_received_; |
259 // True if a stapled OCSP response was received. | 264 // True if a stapled OCSP response was received. |
260 bool stapled_ocsp_response_received_; | 265 bool stapled_ocsp_response_received_; |
261 // Protocol negotiation extension used. | 266 // Protocol negotiation extension used. |
262 SSLNegotiationExtension negotiation_extension_; | 267 SSLNegotiationExtension negotiation_extension_; |
263 }; | 268 }; |
264 | 269 |
265 } // namespace net | 270 } // namespace net |
266 | 271 |
267 #endif // NET_SOCKET_SSL_CLIENT_SOCKET_H_ | 272 #endif // NET_SOCKET_SSL_CLIENT_SOCKET_H_ |
OLD | NEW |