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/socket/ssl_client_socket.h" | 5 #include "net/socket/ssl_client_socket.h" |
6 | 6 |
7 #include "base/callback_helpers.h" | 7 #include "base/callback_helpers.h" |
8 #include "base/location.h" | 8 #include "base/location.h" |
| 9 #include "base/macros.h" |
9 #include "base/memory/ref_counted.h" | 10 #include "base/memory/ref_counted.h" |
10 #include "base/run_loop.h" | 11 #include "base/run_loop.h" |
11 #include "base/single_thread_task_runner.h" | 12 #include "base/single_thread_task_runner.h" |
12 #include "base/thread_task_runner_handle.h" | 13 #include "base/thread_task_runner_handle.h" |
13 #include "base/time/time.h" | 14 #include "base/time/time.h" |
14 #include "net/base/address_list.h" | 15 #include "net/base/address_list.h" |
15 #include "net/base/io_buffer.h" | 16 #include "net/base/io_buffer.h" |
16 #include "net/base/net_errors.h" | 17 #include "net/base/net_errors.h" |
17 #include "net/base/test_completion_callback.h" | 18 #include "net/base/test_completion_callback.h" |
18 #include "net/base/test_data_directory.h" | 19 #include "net/base/test_data_directory.h" |
(...skipping 94 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
113 int Read(IOBuffer* buf, | 114 int Read(IOBuffer* buf, |
114 int buf_len, | 115 int buf_len, |
115 const CompletionCallback& callback) override { | 116 const CompletionCallback& callback) override { |
116 return transport_->Read(buf, buf_len, callback); | 117 return transport_->Read(buf, buf_len, callback); |
117 } | 118 } |
118 int Write(IOBuffer* buf, | 119 int Write(IOBuffer* buf, |
119 int buf_len, | 120 int buf_len, |
120 const CompletionCallback& callback) override { | 121 const CompletionCallback& callback) override { |
121 return transport_->Write(buf, buf_len, callback); | 122 return transport_->Write(buf, buf_len, callback); |
122 } | 123 } |
123 int SetReceiveBufferSize(int32 size) override { | 124 int SetReceiveBufferSize(int32_t size) override { |
124 return transport_->SetReceiveBufferSize(size); | 125 return transport_->SetReceiveBufferSize(size); |
125 } | 126 } |
126 int SetSendBufferSize(int32 size) override { | 127 int SetSendBufferSize(int32_t size) override { |
127 return transport_->SetSendBufferSize(size); | 128 return transport_->SetSendBufferSize(size); |
128 } | 129 } |
129 | 130 |
130 protected: | 131 protected: |
131 scoped_ptr<StreamSocket> transport_; | 132 scoped_ptr<StreamSocket> transport_; |
132 }; | 133 }; |
133 | 134 |
134 // ReadBufferingStreamSocket is a wrapper for an existing StreamSocket that | 135 // ReadBufferingStreamSocket is a wrapper for an existing StreamSocket that |
135 // will ensure a certain amount of data is internally buffered before | 136 // will ensure a certain amount of data is internally buffered before |
136 // satisfying a Read() request. It exists to mimic OS-level internal | 137 // satisfying a Read() request. It exists to mimic OS-level internal |
(...skipping 1773 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1910 transport.Pass(), spawned_test_server()->host_port_pair(), SSLConfig())); | 1911 transport.Pass(), spawned_test_server()->host_port_pair(), SSLConfig())); |
1911 | 1912 |
1912 rv = callback.GetResult(sock->Connect(callback.callback())); | 1913 rv = callback.GetResult(sock->Connect(callback.callback())); |
1913 EXPECT_EQ(ERR_SSL_PROTOCOL_ERROR, rv); | 1914 EXPECT_EQ(ERR_SSL_PROTOCOL_ERROR, rv); |
1914 } | 1915 } |
1915 | 1916 |
1916 TEST_F(SSLClientSocketTest, CipherSuiteDisables) { | 1917 TEST_F(SSLClientSocketTest, CipherSuiteDisables) { |
1917 // Rather than exhaustively disabling every AES_128_CBC ciphersuite defined at | 1918 // Rather than exhaustively disabling every AES_128_CBC ciphersuite defined at |
1918 // http://www.iana.org/assignments/tls-parameters/tls-parameters.xml, only | 1919 // http://www.iana.org/assignments/tls-parameters/tls-parameters.xml, only |
1919 // disabling those cipher suites that the test server actually implements. | 1920 // disabling those cipher suites that the test server actually implements. |
1920 const uint16 kCiphersToDisable[] = { | 1921 const uint16_t kCiphersToDisable[] = { |
1921 0x002f, // TLS_RSA_WITH_AES_128_CBC_SHA | 1922 0x002f, // TLS_RSA_WITH_AES_128_CBC_SHA |
1922 0x0033, // TLS_DHE_RSA_WITH_AES_128_CBC_SHA | 1923 0x0033, // TLS_DHE_RSA_WITH_AES_128_CBC_SHA |
1923 0xc013, // TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA | 1924 0xc013, // TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA |
1924 }; | 1925 }; |
1925 | 1926 |
1926 SpawnedTestServer::SSLOptions ssl_options; | 1927 SpawnedTestServer::SSLOptions ssl_options; |
1927 // Enable only AES_128_CBC on the test server. | 1928 // Enable only AES_128_CBC on the test server. |
1928 ssl_options.bulk_ciphers = SpawnedTestServer::SSLOptions::BULK_CIPHER_AES128; | 1929 ssl_options.bulk_ciphers = SpawnedTestServer::SSLOptions::BULK_CIPHER_AES128; |
1929 ASSERT_TRUE(StartTestServer(ssl_options)); | 1930 ASSERT_TRUE(StartTestServer(ssl_options)); |
1930 | 1931 |
(...skipping 1283 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3214 int rv; | 3215 int rv; |
3215 ASSERT_TRUE(CreateAndConnectSSLClientSocket(client_config, &rv)); | 3216 ASSERT_TRUE(CreateAndConnectSSLClientSocket(client_config, &rv)); |
3216 EXPECT_EQ(OK, rv); | 3217 EXPECT_EQ(OK, rv); |
3217 | 3218 |
3218 std::string proto; | 3219 std::string proto; |
3219 EXPECT_EQ(SSLClientSocket::kNextProtoUnsupported, | 3220 EXPECT_EQ(SSLClientSocket::kNextProtoUnsupported, |
3220 sock_->GetNextProto(&proto)); | 3221 sock_->GetNextProto(&proto)); |
3221 } | 3222 } |
3222 | 3223 |
3223 } // namespace net | 3224 } // namespace net |
OLD | NEW |