Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(110)

Side by Side Diff: net/url_request/url_request_unittest.cc

Issue 619463002: net: disable SSLv3 fallback. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: ... Created 6 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « net/ssl/ssl_config.cc ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 "build/build_config.h" 5 #include "build/build_config.h"
6 6
7 #if defined(OS_WIN) 7 #if defined(OS_WIN)
8 #include <windows.h> 8 #include <windows.h>
9 #include <shlobj.h> 9 #include <shlobj.h>
10 #endif 10 #endif
(...skipping 6916 matching lines...) Expand 10 before | Expand all | Expand 10 after
6927 EXPECT_EQ("insert", parts[0]); 6927 EXPECT_EQ("insert", parts[0]);
6928 session_id = parts[1]; 6928 session_id = parts[1];
6929 } else { 6929 } else {
6930 EXPECT_EQ("lookup", parts[0]); 6930 EXPECT_EQ("lookup", parts[0]);
6931 EXPECT_EQ(session_id, parts[1]); 6931 EXPECT_EQ(session_id, parts[1]);
6932 } 6932 }
6933 } 6933 }
6934 } 6934 }
6935 } 6935 }
6936 6936
6937 // AssertTwoDistinctSessionsInserted checks that |session_info|, which must be
6938 // the result of fetching "ssl-session-cache" from the test server, indicates
6939 // that exactly two different sessions were inserted, with no lookups etc.
6940 static void AssertTwoDistinctSessionsInserted(const string& session_info) {
6941 std::vector<std::string> lines;
6942 base::SplitString(session_info, '\n', &lines);
6943 ASSERT_EQ(3u, lines.size()) << session_info;
6944
6945 std::string session_id;
6946 for (size_t i = 0; i < 2; i++) {
6947 std::vector<std::string> parts;
6948 base::SplitString(lines[i], '\t', &parts);
6949 ASSERT_EQ(2u, parts.size());
6950 EXPECT_EQ("insert", parts[0]);
6951 if (i == 0) {
6952 session_id = parts[1];
6953 } else {
6954 EXPECT_NE(session_id, parts[1]);
6955 }
6956 }
6957 }
6958
6937 TEST_F(HTTPSRequestTest, SSLSessionCacheShardTest) { 6959 TEST_F(HTTPSRequestTest, SSLSessionCacheShardTest) {
6938 // Test that sessions aren't resumed when the value of ssl_session_cache_shard 6960 // Test that sessions aren't resumed when the value of ssl_session_cache_shard
6939 // differs. 6961 // differs.
6940 SpawnedTestServer::SSLOptions ssl_options; 6962 SpawnedTestServer::SSLOptions ssl_options;
6941 ssl_options.record_resume = true; 6963 ssl_options.record_resume = true;
6942 SpawnedTestServer test_server( 6964 SpawnedTestServer test_server(
6943 SpawnedTestServer::TYPE_HTTPS, 6965 SpawnedTestServer::TYPE_HTTPS,
6944 ssl_options, 6966 ssl_options,
6945 base::FilePath(FILE_PATH_LITERAL("net/data/ssl"))); 6967 base::FilePath(FILE_PATH_LITERAL("net/data/ssl")));
6946 ASSERT_TRUE(test_server.Start()); 6968 ASSERT_TRUE(test_server.Start());
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after
6990 base::RunLoop().Run(); 7012 base::RunLoop().Run();
6991 7013
6992 // The response will look like; 7014 // The response will look like;
6993 // insert abc 7015 // insert abc
6994 // insert xyz 7016 // insert xyz
6995 // 7017 //
6996 // With a newline at the end which makes the split think that there are 7018 // With a newline at the end which makes the split think that there are
6997 // three lines. 7019 // three lines.
6998 7020
6999 EXPECT_EQ(1, d.response_started_count()); 7021 EXPECT_EQ(1, d.response_started_count());
7000 std::vector<std::string> lines; 7022 AssertTwoDistinctSessionsInserted(d.data_received());
7001 base::SplitString(d.data_received(), '\n', &lines);
7002 ASSERT_EQ(3u, lines.size());
7003
7004 std::string session_id;
7005 for (size_t i = 0; i < 2; i++) {
7006 std::vector<std::string> parts;
7007 base::SplitString(lines[i], '\t', &parts);
7008 ASSERT_EQ(2u, parts.size());
7009 EXPECT_EQ("insert", parts[0]);
7010 if (i == 0) {
7011 session_id = parts[1];
7012 } else {
7013 EXPECT_NE(session_id, parts[1]);
7014 }
7015 }
7016 } 7023 }
7017 } 7024 }
7018 7025
7019 #if defined(OS_WIN) 7026 #if defined(OS_WIN)
7020 7027
7021 namespace { 7028 namespace {
7022 7029
7023 bool IsECDSACipherSuite(uint16_t cipher_suite) { 7030 bool IsECDSACipherSuite(uint16_t cipher_suite) {
7024 const char* key_exchange; 7031 const char* key_exchange;
7025 const char* cipher; 7032 const char* cipher;
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
7060 for (size_t i = 0; i < lines.size(); i++) { 7067 for (size_t i = 0; i < lines.size(); i++) {
7061 int cipher_suite; 7068 int cipher_suite;
7062 ASSERT_TRUE(base::StringToInt(lines[i], &cipher_suite)); 7069 ASSERT_TRUE(base::StringToInt(lines[i], &cipher_suite));
7063 EXPECT_FALSE(IsECDSACipherSuite(cipher_suite)) 7070 EXPECT_FALSE(IsECDSACipherSuite(cipher_suite))
7064 << "ClientHello advertised " << cipher_suite; 7071 << "ClientHello advertised " << cipher_suite;
7065 } 7072 }
7066 } 7073 }
7067 7074
7068 #endif // OS_WIN 7075 #endif // OS_WIN
7069 7076
7077 class TestSSLConfigService : public SSLConfigService {
7078 public:
7079 TestSSLConfigService(bool ev_enabled,
7080 bool online_rev_checking,
7081 bool rev_checking_required_local_anchors)
7082 : ev_enabled_(ev_enabled),
7083 online_rev_checking_(online_rev_checking),
7084 rev_checking_required_local_anchors_(
7085 rev_checking_required_local_anchors),
7086 fallback_min_version_(0) {}
7087
7088 void set_fallback_min_version(uint16 version) {
7089 fallback_min_version_ = version;
7090 }
7091
7092 // SSLConfigService:
7093 virtual void GetSSLConfig(SSLConfig* config) OVERRIDE {
7094 *config = SSLConfig();
7095 config->rev_checking_enabled = online_rev_checking_;
7096 config->verify_ev_cert = ev_enabled_;
7097 config->rev_checking_required_local_anchors =
7098 rev_checking_required_local_anchors_;
7099 if (fallback_min_version_) {
7100 config->version_fallback_min = fallback_min_version_;
7101 }
7102 }
7103
7104 protected:
7105 virtual ~TestSSLConfigService() {}
7106
7107 private:
7108 const bool ev_enabled_;
7109 const bool online_rev_checking_;
7110 const bool rev_checking_required_local_anchors_;
7111 uint16 fallback_min_version_;
7112 };
7113
7114 class FallbackTestURLRequestContext : public TestURLRequestContext {
7115 public:
7116 explicit FallbackTestURLRequestContext(bool delay_initialization)
7117 : TestURLRequestContext(delay_initialization) {}
7118
7119 void set_fallback_min_version(uint16 version) {
7120 TestSSLConfigService *ssl_config_service =
7121 new TestSSLConfigService(true /* check for EV */,
7122 false /* online revocation checking */,
7123 false /* require rev. checking for local
7124 anchors */);
7125 ssl_config_service->set_fallback_min_version(version);
7126 set_ssl_config_service(ssl_config_service);
7127 }
7128 };
7129
7070 class HTTPSFallbackTest : public testing::Test { 7130 class HTTPSFallbackTest : public testing::Test {
7071 public: 7131 public:
7072 HTTPSFallbackTest() : context_(true) { 7132 HTTPSFallbackTest() : context_(true) {}
7073 context_.Init();
7074 delegate_.set_allow_certificate_errors(true);
7075 }
7076 virtual ~HTTPSFallbackTest() {} 7133 virtual ~HTTPSFallbackTest() {}
7077 7134
7078 protected: 7135 protected:
7079 void DoFallbackTest(const SpawnedTestServer::SSLOptions& ssl_options) { 7136 void DoFallbackTest(const SpawnedTestServer::SSLOptions& ssl_options) {
7080 DCHECK(!request_); 7137 DCHECK(!request_);
7138 context_.Init();
7139 delegate_.set_allow_certificate_errors(true);
7140
7081 SpawnedTestServer test_server( 7141 SpawnedTestServer test_server(
7082 SpawnedTestServer::TYPE_HTTPS, 7142 SpawnedTestServer::TYPE_HTTPS,
7083 ssl_options, 7143 ssl_options,
7084 base::FilePath(FILE_PATH_LITERAL("net/data/ssl"))); 7144 base::FilePath(FILE_PATH_LITERAL("net/data/ssl")));
7085 ASSERT_TRUE(test_server.Start()); 7145 ASSERT_TRUE(test_server.Start());
7086 7146
7087 request_ = context_.CreateRequest( 7147 request_ = context_.CreateRequest(
7088 test_server.GetURL(std::string()), DEFAULT_PRIORITY, &delegate_, NULL); 7148 test_server.GetURL(std::string()), DEFAULT_PRIORITY, &delegate_, NULL);
7089 request_->Start(); 7149 request_->Start();
7090 7150
7091 base::RunLoop().Run(); 7151 base::RunLoop().Run();
7092 } 7152 }
7093 7153
7154 void set_fallback_min_version(uint16 version) {
7155 context_.set_fallback_min_version(version);
7156 }
7157
7094 void ExpectConnection(int version) { 7158 void ExpectConnection(int version) {
7095 EXPECT_EQ(1, delegate_.response_started_count()); 7159 EXPECT_EQ(1, delegate_.response_started_count());
7096 EXPECT_NE(0, delegate_.bytes_received()); 7160 EXPECT_NE(0, delegate_.bytes_received());
7097 EXPECT_EQ(version, SSLConnectionStatusToVersion( 7161 EXPECT_EQ(version, SSLConnectionStatusToVersion(
7098 request_->ssl_info().connection_status)); 7162 request_->ssl_info().connection_status));
7099 EXPECT_TRUE(request_->ssl_info().connection_status & 7163 EXPECT_TRUE(request_->ssl_info().connection_status &
7100 SSL_CONNECTION_VERSION_FALLBACK); 7164 SSL_CONNECTION_VERSION_FALLBACK);
7101 } 7165 }
7102 7166
7103 void ExpectFailure(int error) { 7167 void ExpectFailure(int error) {
7104 EXPECT_EQ(1, delegate_.response_started_count()); 7168 EXPECT_EQ(1, delegate_.response_started_count());
7105 EXPECT_FALSE(request_->status().is_success()); 7169 EXPECT_FALSE(request_->status().is_success());
7106 EXPECT_EQ(URLRequestStatus::FAILED, request_->status().status()); 7170 EXPECT_EQ(URLRequestStatus::FAILED, request_->status().status());
7107 EXPECT_EQ(error, request_->status().error()); 7171 EXPECT_EQ(error, request_->status().error());
7108 } 7172 }
7109 7173
7110 private: 7174 private:
7111 TestDelegate delegate_; 7175 TestDelegate delegate_;
7112 TestURLRequestContext context_; 7176 FallbackTestURLRequestContext context_;
7113 scoped_ptr<URLRequest> request_; 7177 scoped_ptr<URLRequest> request_;
7114 }; 7178 };
7115 7179
7116 // Tests TLSv1.1 -> TLSv1 fallback. Verifies that we don't fall back more 7180 // Tests TLSv1.1 -> TLSv1 fallback. Verifies that we don't fall back more
7117 // than necessary. 7181 // than necessary.
7118 TEST_F(HTTPSFallbackTest, TLSv1Fallback) { 7182 TEST_F(HTTPSFallbackTest, TLSv1Fallback) {
7119 SpawnedTestServer::SSLOptions ssl_options( 7183 SpawnedTestServer::SSLOptions ssl_options(
7120 SpawnedTestServer::SSLOptions::CERT_OK); 7184 SpawnedTestServer::SSLOptions::CERT_OK);
7121 ssl_options.tls_intolerant = 7185 ssl_options.tls_intolerant =
7122 SpawnedTestServer::SSLOptions::TLS_INTOLERANT_TLS1_1; 7186 SpawnedTestServer::SSLOptions::TLS_INTOLERANT_TLS1_1;
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after
7178 // Have the server process TLS_FALLBACK_SCSV so that version fallback 7242 // Have the server process TLS_FALLBACK_SCSV so that version fallback
7179 // connections are rejected. 7243 // connections are rejected.
7180 ssl_options.fallback_scsv_enabled = true; 7244 ssl_options.fallback_scsv_enabled = true;
7181 7245
7182 ASSERT_NO_FATAL_FAILURE(DoFallbackTest(ssl_options)); 7246 ASSERT_NO_FATAL_FAILURE(DoFallbackTest(ssl_options));
7183 7247
7184 // The original error should be replayed on rejected fallback. 7248 // The original error should be replayed on rejected fallback.
7185 ExpectFailure(ERR_CONNECTION_CLOSED); 7249 ExpectFailure(ERR_CONNECTION_CLOSED);
7186 } 7250 }
7187 7251
7188 // Tests that the SSLv3 fallback triggers on alert. 7252 // Tests that the SSLv3 fallback doesn't happen by default.
7189 TEST_F(HTTPSFallbackTest, SSLv3Fallback) { 7253 TEST_F(HTTPSFallbackTest, SSLv3Fallback) {
7190 SpawnedTestServer::SSLOptions ssl_options( 7254 SpawnedTestServer::SSLOptions ssl_options(
7191 SpawnedTestServer::SSLOptions::CERT_OK); 7255 SpawnedTestServer::SSLOptions::CERT_OK);
7192 ssl_options.tls_intolerant = 7256 ssl_options.tls_intolerant =
7193 SpawnedTestServer::SSLOptions::TLS_INTOLERANT_ALL; 7257 SpawnedTestServer::SSLOptions::TLS_INTOLERANT_ALL;
7194 7258
7195 ASSERT_NO_FATAL_FAILURE(DoFallbackTest(ssl_options)); 7259 ASSERT_NO_FATAL_FAILURE(DoFallbackTest(ssl_options));
7260 ExpectFailure(ERR_SSL_FALLBACK_BEYOND_MINIMUM_VERSION);
7261 }
7262
7263 // Tests that the SSLv3 fallback works when explicitly enabled.
7264 TEST_F(HTTPSFallbackTest, SSLv3FallbackEnabled) {
7265 SpawnedTestServer::SSLOptions ssl_options(
7266 SpawnedTestServer::SSLOptions::CERT_OK);
7267 ssl_options.tls_intolerant =
7268 SpawnedTestServer::SSLOptions::TLS_INTOLERANT_ALL;
7269 set_fallback_min_version(SSL_PROTOCOL_VERSION_SSL3);
7270
7271 ASSERT_NO_FATAL_FAILURE(DoFallbackTest(ssl_options));
7196 ExpectConnection(SSL_CONNECTION_VERSION_SSL3); 7272 ExpectConnection(SSL_CONNECTION_VERSION_SSL3);
7197 } 7273 }
7198 7274
7199 // Tests that the SSLv3 fallback triggers on closed connections. 7275 // Tests that the SSLv3 fallback triggers on closed connections when explicitly
7276 // enabled.
7200 TEST_F(HTTPSFallbackTest, SSLv3FallbackClosed) { 7277 TEST_F(HTTPSFallbackTest, SSLv3FallbackClosed) {
7201 SpawnedTestServer::SSLOptions ssl_options( 7278 SpawnedTestServer::SSLOptions ssl_options(
7202 SpawnedTestServer::SSLOptions::CERT_OK); 7279 SpawnedTestServer::SSLOptions::CERT_OK);
7203 ssl_options.tls_intolerant = 7280 ssl_options.tls_intolerant =
7204 SpawnedTestServer::SSLOptions::TLS_INTOLERANT_ALL; 7281 SpawnedTestServer::SSLOptions::TLS_INTOLERANT_ALL;
7205 ssl_options.tls_intolerance_type = 7282 ssl_options.tls_intolerance_type =
7206 SpawnedTestServer::SSLOptions::TLS_INTOLERANCE_CLOSE; 7283 SpawnedTestServer::SSLOptions::TLS_INTOLERANCE_CLOSE;
7284 set_fallback_min_version(SSL_PROTOCOL_VERSION_SSL3);
7207 7285
7208 ASSERT_NO_FATAL_FAILURE(DoFallbackTest(ssl_options)); 7286 ASSERT_NO_FATAL_FAILURE(DoFallbackTest(ssl_options));
7209 ExpectConnection(SSL_CONNECTION_VERSION_SSL3); 7287 ExpectConnection(SSL_CONNECTION_VERSION_SSL3);
7210 } 7288 }
7211 7289
7290 // Test that SSLv3 fallback probe connections don't cause sessions to be cached.
7291 TEST_F(HTTPSFallbackTest, SSLv3FallbackNoCache) {
7292 SpawnedTestServer::SSLOptions ssl_options(
7293 SpawnedTestServer::SSLOptions::CERT_OK);
7294 ssl_options.tls_intolerant =
7295 SpawnedTestServer::SSLOptions::TLS_INTOLERANT_ALL;
7296 ssl_options.tls_intolerance_type =
7297 SpawnedTestServer::SSLOptions::TLS_INTOLERANCE_CLOSE;
7298 ssl_options.record_resume = true;
7299
7300 SpawnedTestServer test_server(
7301 SpawnedTestServer::TYPE_HTTPS,
7302 ssl_options,
7303 base::FilePath(FILE_PATH_LITERAL("net/data/ssl")));
7304 ASSERT_TRUE(test_server.Start());
7305
7306 SSLClientSocket::ClearSessionCache();
7307
7308 // Make a connection that does a probe fallback to SSLv3 but fails because
7309 // SSLv3 fallback is disabled. We don't wish a session for this connection to
7310 // be inserted locally.
7311 {
7312 TestDelegate delegate;
7313 FallbackTestURLRequestContext context(true);
7314
7315 context.Init();
7316 scoped_ptr<URLRequest> request(context.CreateRequest(
7317 test_server.GetURL(std::string()), DEFAULT_PRIORITY, &delegate, NULL));
7318 request->Start();
7319
7320 base::RunLoop().Run();
7321
7322 EXPECT_EQ(1, delegate.response_started_count());
7323 EXPECT_FALSE(request->status().is_success());
7324 EXPECT_EQ(URLRequestStatus::FAILED, request->status().status());
7325 EXPECT_EQ(ERR_SSL_FALLBACK_BEYOND_MINIMUM_VERSION,
7326 request->status().error());
7327 }
7328
7329 // Now allow SSLv3 connections and request the session cache log.
7330 {
7331 TestDelegate delegate;
7332 FallbackTestURLRequestContext context(true);
7333 context.set_fallback_min_version(SSL_PROTOCOL_VERSION_SSL3);
7334
7335 context.Init();
7336 scoped_ptr<URLRequest> request(
7337 context.CreateRequest(test_server.GetURL("ssl-session-cache"),
7338 DEFAULT_PRIORITY,
davidben 2014/10/08 02:54:37 Nit: indentation
7339 &delegate,
7340 NULL));
7341 request->Start();
7342
7343 base::RunLoop().Run();
7344
7345 EXPECT_EQ(1, delegate.response_started_count());
7346 EXPECT_NE(0, delegate.bytes_received());
7347 EXPECT_EQ(SSL_CONNECTION_VERSION_SSL3, SSLConnectionStatusToVersion(
7348 request->ssl_info().connection_status));
7349 EXPECT_TRUE(request->ssl_info().connection_status &
7350 SSL_CONNECTION_VERSION_FALLBACK);
7351
7352 std::vector<std::string> lines;
7353 // If no sessions were cached then the server should have seen two sessions
7354 // inserted with no lookups.
7355 AssertTwoDistinctSessionsInserted(delegate.data_received());
7356 }
7357 }
7358
7212 // This test is disabled on Android because the remote test server doesn't cause 7359 // This test is disabled on Android because the remote test server doesn't cause
7213 // a TCP reset. 7360 // a TCP reset.
7214 #if !defined(OS_ANDROID) 7361 #if !defined(OS_ANDROID)
7215 // Tests that a reset connection does not fallback down to SSL3. 7362 // Tests that a reset connection does not fallback down to SSL3.
7216 TEST_F(HTTPSFallbackTest, SSLv3NoFallbackReset) { 7363 TEST_F(HTTPSFallbackTest, SSLv3NoFallbackReset) {
7217 SpawnedTestServer::SSLOptions ssl_options( 7364 SpawnedTestServer::SSLOptions ssl_options(
7218 SpawnedTestServer::SSLOptions::CERT_OK); 7365 SpawnedTestServer::SSLOptions::CERT_OK);
7219 ssl_options.tls_intolerant = 7366 ssl_options.tls_intolerant =
7220 SpawnedTestServer::SSLOptions::TLS_INTOLERANT_ALL; 7367 SpawnedTestServer::SSLOptions::TLS_INTOLERANT_ALL;
7221 ssl_options.tls_intolerance_type = 7368 ssl_options.tls_intolerance_type =
(...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after
7294 // With a newline at the end which makes the split think that there are 7441 // With a newline at the end which makes the split think that there are
7295 // three lines. 7442 // three lines.
7296 // 7443 //
7297 // If a session was presented (eg: a bug), then the response would look 7444 // If a session was presented (eg: a bug), then the response would look
7298 // like; 7445 // like;
7299 // insert abc 7446 // insert abc
7300 // lookup abc 7447 // lookup abc
7301 // insert xyz 7448 // insert xyz
7302 7449
7303 EXPECT_EQ(1, d.response_started_count()); 7450 EXPECT_EQ(1, d.response_started_count());
7304 std::vector<std::string> lines; 7451 AssertTwoDistinctSessionsInserted(d.data_received());
7305 base::SplitString(d.data_received(), '\n', &lines);
7306 ASSERT_EQ(3u, lines.size()) << d.data_received();
7307
7308 std::string session_id;
7309 for (size_t i = 0; i < 2; i++) {
7310 std::vector<std::string> parts;
7311 base::SplitString(lines[i], '\t', &parts);
7312 ASSERT_EQ(2u, parts.size());
7313 EXPECT_EQ("insert", parts[0]);
7314 if (i == 0) {
7315 session_id = parts[1];
7316 } else {
7317 EXPECT_NE(session_id, parts[1]);
7318 }
7319 }
7320 } 7452 }
7321 } 7453 }
7322 7454
7323 class TestSSLConfigService : public SSLConfigService {
7324 public:
7325 TestSSLConfigService(bool ev_enabled,
7326 bool online_rev_checking,
7327 bool rev_checking_required_local_anchors)
7328 : ev_enabled_(ev_enabled),
7329 online_rev_checking_(online_rev_checking),
7330 rev_checking_required_local_anchors_(
7331 rev_checking_required_local_anchors) {}
7332
7333 // SSLConfigService:
7334 virtual void GetSSLConfig(SSLConfig* config) OVERRIDE {
7335 *config = SSLConfig();
7336 config->rev_checking_enabled = online_rev_checking_;
7337 config->verify_ev_cert = ev_enabled_;
7338 config->rev_checking_required_local_anchors =
7339 rev_checking_required_local_anchors_;
7340 }
7341
7342 protected:
7343 virtual ~TestSSLConfigService() {}
7344
7345 private:
7346 const bool ev_enabled_;
7347 const bool online_rev_checking_;
7348 const bool rev_checking_required_local_anchors_;
7349 };
7350
7351 // This the fingerprint of the "Testing CA" certificate used by the testserver. 7455 // This the fingerprint of the "Testing CA" certificate used by the testserver.
7352 // See net/data/ssl/certificates/ocsp-test-root.pem. 7456 // See net/data/ssl/certificates/ocsp-test-root.pem.
7353 static const SHA1HashValue kOCSPTestCertFingerprint = 7457 static const SHA1HashValue kOCSPTestCertFingerprint =
7354 { { 0xf1, 0xad, 0xf6, 0xce, 0x42, 0xac, 0xe7, 0xb4, 0xf4, 0x24, 7458 { { 0xf1, 0xad, 0xf6, 0xce, 0x42, 0xac, 0xe7, 0xb4, 0xf4, 0x24,
7355 0xdb, 0x1a, 0xf7, 0xa0, 0x9f, 0x09, 0xa1, 0xea, 0xf1, 0x5c } }; 7459 0xdb, 0x1a, 0xf7, 0xa0, 0x9f, 0x09, 0xa1, 0xea, 0xf1, 0x5c } };
7356 7460
7357 // This is the SHA256, SPKI hash of the "Testing CA" certificate used by the 7461 // This is the SHA256, SPKI hash of the "Testing CA" certificate used by the
7358 // testserver. 7462 // testserver.
7359 static const SHA256HashValue kOCSPTestCertSPKI = { { 7463 static const SHA256HashValue kOCSPTestCertSPKI = { {
7360 0xee, 0xe6, 0x51, 0x2d, 0x4c, 0xfa, 0xf7, 0x3e, 7464 0xee, 0xe6, 0x51, 0x2d, 0x4c, 0xfa, 0xf7, 0x3e,
(...skipping 816 matching lines...) Expand 10 before | Expand all | Expand 10 after
8177 8281
8178 EXPECT_FALSE(r->is_pending()); 8282 EXPECT_FALSE(r->is_pending());
8179 EXPECT_EQ(1, d->response_started_count()); 8283 EXPECT_EQ(1, d->response_started_count());
8180 EXPECT_FALSE(d->received_data_before_response()); 8284 EXPECT_FALSE(d->received_data_before_response());
8181 EXPECT_EQ(d->bytes_received(), static_cast<int>(file_size)); 8285 EXPECT_EQ(d->bytes_received(), static_cast<int>(file_size));
8182 } 8286 }
8183 } 8287 }
8184 #endif // !defined(DISABLE_FTP_SUPPORT) 8288 #endif // !defined(DISABLE_FTP_SUPPORT)
8185 8289
8186 } // namespace net 8290 } // namespace net
OLDNEW
« no previous file with comments | « net/ssl/ssl_config.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698