OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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 "extensions/browser/api/socket/tls_socket.h" | 5 #include "extensions/browser/api/socket/tls_socket.h" |
6 | 6 |
7 #include <utility> | 7 #include <utility> |
8 | 8 |
9 #include "base/callback_helpers.h" | 9 #include "base/callback_helpers.h" |
10 #include "base/logging.h" | 10 #include "base/logging.h" |
11 #include "extensions/browser/api/api_resource.h" | 11 #include "extensions/browser/api/api_resource.h" |
12 #include "net/base/address_list.h" | 12 #include "net/base/address_list.h" |
13 #include "net/base/ip_endpoint.h" | 13 #include "net/base/ip_endpoint.h" |
14 #include "net/base/net_errors.h" | 14 #include "net/base/net_errors.h" |
15 #include "net/base/net_util.h" | 15 #include "net/base/net_util.h" |
16 #include "net/base/rand_callback.h" | 16 #include "net/base/rand_callback.h" |
17 #include "net/socket/client_socket_factory.h" | 17 #include "net/socket/client_socket_factory.h" |
18 #include "net/socket/client_socket_handle.h" | 18 #include "net/socket/client_socket_handle.h" |
19 #include "net/socket/ssl_client_socket.h" | 19 #include "net/socket/ssl_client_socket.h" |
20 #include "net/socket/tcp_client_socket.h" | 20 #include "net/socket/tcp_client_socket.h" |
21 #include "url/url_canon.h" | 21 #include "url/url_canon.h" |
22 | 22 |
23 namespace { | 23 namespace { |
24 | 24 |
25 // Returns the SSL protocol version (as a uint16) represented by a string. | 25 // Returns the SSL protocol version (as a uint16_t) represented by a string. |
26 // Returns 0 if the string is invalid. | 26 // Returns 0 if the string is invalid. |
27 uint16 SSLProtocolVersionFromString(const std::string& version_str) { | 27 uint16_t SSLProtocolVersionFromString(const std::string& version_str) { |
28 uint16 version = 0; // Invalid. | 28 uint16_t version = 0; // Invalid. |
29 if (version_str == "tls1") { | 29 if (version_str == "tls1") { |
30 version = net::SSL_PROTOCOL_VERSION_TLS1; | 30 version = net::SSL_PROTOCOL_VERSION_TLS1; |
31 } else if (version_str == "tls1.1") { | 31 } else if (version_str == "tls1.1") { |
32 version = net::SSL_PROTOCOL_VERSION_TLS1_1; | 32 version = net::SSL_PROTOCOL_VERSION_TLS1_1; |
33 } else if (version_str == "tls1.2") { | 33 } else if (version_str == "tls1.2") { |
34 version = net::SSL_PROTOCOL_VERSION_TLS1_2; | 34 version = net::SSL_PROTOCOL_VERSION_TLS1_2; |
35 } | 35 } |
36 return version; | 36 return version; |
37 } | 37 } |
38 | 38 |
(...skipping 102 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
141 | 141 |
142 bool TLSSocket::SetKeepAlive(bool enable, int delay) { | 142 bool TLSSocket::SetKeepAlive(bool enable, int delay) { |
143 return false; | 143 return false; |
144 } | 144 } |
145 | 145 |
146 bool TLSSocket::SetNoDelay(bool no_delay) { | 146 bool TLSSocket::SetNoDelay(bool no_delay) { |
147 return false; | 147 return false; |
148 } | 148 } |
149 | 149 |
150 int TLSSocket::Listen(const std::string& address, | 150 int TLSSocket::Listen(const std::string& address, |
151 uint16 port, | 151 uint16_t port, |
152 int backlog, | 152 int backlog, |
153 std::string* error_msg) { | 153 std::string* error_msg) { |
154 *error_msg = kTLSSocketTypeInvalidError; | 154 *error_msg = kTLSSocketTypeInvalidError; |
155 return net::ERR_NOT_IMPLEMENTED; | 155 return net::ERR_NOT_IMPLEMENTED; |
156 } | 156 } |
157 | 157 |
158 void TLSSocket::Accept(const AcceptCompletionCallback& callback) { | 158 void TLSSocket::Accept(const AcceptCompletionCallback& callback) { |
159 callback.Run(net::ERR_FAILED, NULL); | 159 callback.Run(net::ERR_FAILED, NULL); |
160 } | 160 } |
161 | 161 |
(...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
239 | 239 |
240 DCHECK(transport_security_state); | 240 DCHECK(transport_security_state); |
241 net::SSLClientSocketContext context; | 241 net::SSLClientSocketContext context; |
242 context.cert_verifier = cert_verifier; | 242 context.cert_verifier = cert_verifier; |
243 context.transport_security_state = transport_security_state; | 243 context.transport_security_state = transport_security_state; |
244 | 244 |
245 // Fill in the SSL socket params. | 245 // Fill in the SSL socket params. |
246 net::SSLConfig ssl_config; | 246 net::SSLConfig ssl_config; |
247 ssl_config_service->GetSSLConfig(&ssl_config); | 247 ssl_config_service->GetSSLConfig(&ssl_config); |
248 if (options && options->tls_version.get()) { | 248 if (options && options->tls_version.get()) { |
249 uint16 version_min = 0, version_max = 0; | 249 uint16_t version_min = 0, version_max = 0; |
250 api::socket::TLSVersionConstraints* versions = options->tls_version.get(); | 250 api::socket::TLSVersionConstraints* versions = options->tls_version.get(); |
251 if (versions->min.get()) { | 251 if (versions->min.get()) { |
252 version_min = SSLProtocolVersionFromString(*versions->min.get()); | 252 version_min = SSLProtocolVersionFromString(*versions->min.get()); |
253 } | 253 } |
254 if (versions->max.get()) { | 254 if (versions->max.get()) { |
255 version_max = SSLProtocolVersionFromString(*versions->max.get()); | 255 version_max = SSLProtocolVersionFromString(*versions->max.get()); |
256 } | 256 } |
257 if (version_min) { | 257 if (version_min) { |
258 ssl_config.version_min = version_min; | 258 ssl_config.version_min = version_min; |
259 } | 259 } |
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
299 if (status != net::OK) { | 299 if (status != net::OK) { |
300 DVLOG(1) << "Status is not OK or IO-pending: " | 300 DVLOG(1) << "Status is not OK or IO-pending: " |
301 << net::ErrorToString(status); | 301 << net::ErrorToString(status); |
302 } | 302 } |
303 connect_cb.Run(status); | 303 connect_cb.Run(status); |
304 } | 304 } |
305 } | 305 } |
306 | 306 |
307 } // namespace extensions | 307 } // namespace extensions |
308 | 308 |
OLD | NEW |