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