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

Side by Side Diff: net/socket/ssl_server_socket_unittest.cc

Issue 2604513002: Optimize CT & OCSP handling code (Closed)
Patch Set: Actually optimize for OCSP Created 3 years, 12 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
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 // This test suite uses SSLClientSocket to test the implementation of 5 // This test suite uses SSLClientSocket to test the implementation of
6 // SSLServerSocket. In order to establish connections between the sockets 6 // SSLServerSocket. In order to establish connections between the sockets
7 // we need two additional classes: 7 // we need two additional classes:
8 // 1. FakeSocket 8 // 1. FakeSocket
9 // Connects SSL socket to FakeDataChannel. This class is just a stub. 9 // Connects SSL socket to FakeDataChannel. This class is just a stub.
10 // 10 //
(...skipping 27 matching lines...) Expand all
38 #include "net/base/address_list.h" 38 #include "net/base/address_list.h"
39 #include "net/base/completion_callback.h" 39 #include "net/base/completion_callback.h"
40 #include "net/base/host_port_pair.h" 40 #include "net/base/host_port_pair.h"
41 #include "net/base/io_buffer.h" 41 #include "net/base/io_buffer.h"
42 #include "net/base/ip_address.h" 42 #include "net/base/ip_address.h"
43 #include "net/base/ip_endpoint.h" 43 #include "net/base/ip_endpoint.h"
44 #include "net/base/net_errors.h" 44 #include "net/base/net_errors.h"
45 #include "net/cert/cert_status_flags.h" 45 #include "net/cert/cert_status_flags.h"
46 #include "net/cert/ct_policy_enforcer.h" 46 #include "net/cert/ct_policy_enforcer.h"
47 #include "net/cert/ct_policy_status.h" 47 #include "net/cert/ct_policy_status.h"
48 #include "net/cert/ct_verifier.h" 48 #include "net/cert/do_nothing_ct_verifier.h"
49 #include "net/cert/mock_cert_verifier.h" 49 #include "net/cert/mock_cert_verifier.h"
50 #include "net/cert/mock_client_cert_verifier.h" 50 #include "net/cert/mock_client_cert_verifier.h"
51 #include "net/cert/signed_certificate_timestamp_and_status.h" 51 #include "net/cert/signed_certificate_timestamp_and_status.h"
52 #include "net/cert/x509_certificate.h" 52 #include "net/cert/x509_certificate.h"
53 #include "net/http/transport_security_state.h" 53 #include "net/http/transport_security_state.h"
54 #include "net/log/net_log_with_source.h" 54 #include "net/log/net_log_with_source.h"
55 #include "net/socket/client_socket_factory.h" 55 #include "net/socket/client_socket_factory.h"
56 #include "net/socket/socket_test_util.h" 56 #include "net/socket/socket_test_util.h"
57 #include "net/socket/ssl_client_socket.h" 57 #include "net/socket/ssl_client_socket.h"
58 #include "net/socket/stream_socket.h" 58 #include "net/socket/stream_socket.h"
(...skipping 20 matching lines...) Expand all
79 namespace net { 79 namespace net {
80 80
81 namespace { 81 namespace {
82 82
83 const char kClientCertFileName[] = "client_1.pem"; 83 const char kClientCertFileName[] = "client_1.pem";
84 const char kClientPrivateKeyFileName[] = "client_1.pk8"; 84 const char kClientPrivateKeyFileName[] = "client_1.pk8";
85 const char kWrongClientCertFileName[] = "client_2.pem"; 85 const char kWrongClientCertFileName[] = "client_2.pem";
86 const char kWrongClientPrivateKeyFileName[] = "client_2.pk8"; 86 const char kWrongClientPrivateKeyFileName[] = "client_2.pk8";
87 const char kClientCertCAFileName[] = "client_1_ca.pem"; 87 const char kClientCertCAFileName[] = "client_1_ca.pem";
88 88
89 class MockCTVerifier : public CTVerifier {
90 public:
91 MockCTVerifier() = default;
92 ~MockCTVerifier() override = default;
93
94 int Verify(X509Certificate* cert,
95 const std::string& stapled_ocsp_response,
96 const std::string& sct_list_from_tls_extension,
97 SignedCertificateTimestampAndStatusList* output_scts,
98 const NetLogWithSource& net_log) override {
99 return net::OK;
eroman 2016/12/27 22:00:41 (This now deleted implementation didn't clear outp
Ryan Sleevi 2016/12/27 22:17:19 Yeah, was improper :)
100 }
101
102 void SetObserver(Observer* observer) override {}
103 };
104
105 class MockCTPolicyEnforcer : public CTPolicyEnforcer { 89 class MockCTPolicyEnforcer : public CTPolicyEnforcer {
106 public: 90 public:
107 MockCTPolicyEnforcer() = default; 91 MockCTPolicyEnforcer() = default;
108 ~MockCTPolicyEnforcer() override = default; 92 ~MockCTPolicyEnforcer() override = default;
109 ct::CertPolicyCompliance DoesConformToCertPolicy( 93 ct::CertPolicyCompliance DoesConformToCertPolicy(
110 X509Certificate* cert, 94 X509Certificate* cert,
111 const SCTList& verified_scts, 95 const SCTList& verified_scts,
112 const NetLogWithSource& net_log) override { 96 const NetLogWithSource& net_log) override {
113 return ct::CertPolicyCompliance::CERT_POLICY_COMPLIES_VIA_SCTS; 97 return ct::CertPolicyCompliance::CERT_POLICY_COMPLIES_VIA_SCTS;
114 } 98 }
(...skipping 252 matching lines...) Expand 10 before | Expand all | Expand 10 after
367 EXPECT_EQ(0, memcmp(kTestData, read_buf->data(), read)); 351 EXPECT_EQ(0, memcmp(kTestData, read_buf->data(), read));
368 } 352 }
369 353
370 class SSLServerSocketTest : public PlatformTest { 354 class SSLServerSocketTest : public PlatformTest {
371 public: 355 public:
372 SSLServerSocketTest() 356 SSLServerSocketTest()
373 : socket_factory_(ClientSocketFactory::GetDefaultFactory()), 357 : socket_factory_(ClientSocketFactory::GetDefaultFactory()),
374 cert_verifier_(new MockCertVerifier()), 358 cert_verifier_(new MockCertVerifier()),
375 client_cert_verifier_(new MockClientCertVerifier()), 359 client_cert_verifier_(new MockClientCertVerifier()),
376 transport_security_state_(new TransportSecurityState), 360 transport_security_state_(new TransportSecurityState),
377 ct_verifier_(new MockCTVerifier), 361 ct_verifier_(new DoNothingCTVerifier),
378 ct_policy_enforcer_(new MockCTPolicyEnforcer) {} 362 ct_policy_enforcer_(new MockCTPolicyEnforcer) {}
379 363
380 void SetUp() override { 364 void SetUp() override {
381 PlatformTest::SetUp(); 365 PlatformTest::SetUp();
382 366
383 cert_verifier_->set_default_result(ERR_CERT_AUTHORITY_INVALID); 367 cert_verifier_->set_default_result(ERR_CERT_AUTHORITY_INVALID);
384 client_cert_verifier_->set_default_result(ERR_CERT_AUTHORITY_INVALID); 368 client_cert_verifier_->set_default_result(ERR_CERT_AUTHORITY_INVALID);
385 369
386 server_cert_ = 370 server_cert_ =
387 ImportCertFromFile(GetTestCertsDirectory(), "unittest.selfsigned.der"); 371 ImportCertFromFile(GetTestCertsDirectory(), "unittest.selfsigned.der");
(...skipping 114 matching lines...) Expand 10 before | Expand all | Expand 10 after
502 std::unique_ptr<FakeDataChannel> channel_1_; 486 std::unique_ptr<FakeDataChannel> channel_1_;
503 std::unique_ptr<FakeDataChannel> channel_2_; 487 std::unique_ptr<FakeDataChannel> channel_2_;
504 SSLConfig client_ssl_config_; 488 SSLConfig client_ssl_config_;
505 SSLServerConfig server_ssl_config_; 489 SSLServerConfig server_ssl_config_;
506 std::unique_ptr<SSLClientSocket> client_socket_; 490 std::unique_ptr<SSLClientSocket> client_socket_;
507 std::unique_ptr<SSLServerSocket> server_socket_; 491 std::unique_ptr<SSLServerSocket> server_socket_;
508 ClientSocketFactory* socket_factory_; 492 ClientSocketFactory* socket_factory_;
509 std::unique_ptr<MockCertVerifier> cert_verifier_; 493 std::unique_ptr<MockCertVerifier> cert_verifier_;
510 std::unique_ptr<MockClientCertVerifier> client_cert_verifier_; 494 std::unique_ptr<MockClientCertVerifier> client_cert_verifier_;
511 std::unique_ptr<TransportSecurityState> transport_security_state_; 495 std::unique_ptr<TransportSecurityState> transport_security_state_;
512 std::unique_ptr<MockCTVerifier> ct_verifier_; 496 std::unique_ptr<DoNothingCTVerifier> ct_verifier_;
513 std::unique_ptr<MockCTPolicyEnforcer> ct_policy_enforcer_; 497 std::unique_ptr<MockCTPolicyEnforcer> ct_policy_enforcer_;
514 std::unique_ptr<SSLServerContext> server_context_; 498 std::unique_ptr<SSLServerContext> server_context_;
515 std::unique_ptr<crypto::RSAPrivateKey> server_private_key_; 499 std::unique_ptr<crypto::RSAPrivateKey> server_private_key_;
516 scoped_refptr<X509Certificate> server_cert_; 500 scoped_refptr<X509Certificate> server_cert_;
517 }; 501 };
518 502
519 // This test only executes creation of client and server sockets. This is to 503 // This test only executes creation of client and server sockets. This is to
520 // test that creation of sockets doesn't crash and have minimal code to run 504 // test that creation of sockets doesn't crash and have minimal code to run
521 // under valgrind in order to help debugging memory problems. 505 // under valgrind in order to help debugging memory problems.
522 TEST_F(SSLServerSocketTest, Initialize) { 506 TEST_F(SSLServerSocketTest, Initialize) {
(...skipping 593 matching lines...) Expand 10 before | Expand all | Expand 10 after
1116 int server_ret = server_socket_->Handshake(handshake_callback.callback()); 1100 int server_ret = server_socket_->Handshake(handshake_callback.callback());
1117 1101
1118 client_ret = connect_callback.GetResult(client_ret); 1102 client_ret = connect_callback.GetResult(client_ret);
1119 server_ret = handshake_callback.GetResult(server_ret); 1103 server_ret = handshake_callback.GetResult(server_ret);
1120 1104
1121 ASSERT_THAT(client_ret, IsError(ERR_SSL_VERSION_OR_CIPHER_MISMATCH)); 1105 ASSERT_THAT(client_ret, IsError(ERR_SSL_VERSION_OR_CIPHER_MISMATCH));
1122 ASSERT_THAT(server_ret, IsError(ERR_SSL_VERSION_OR_CIPHER_MISMATCH)); 1106 ASSERT_THAT(server_ret, IsError(ERR_SSL_VERSION_OR_CIPHER_MISMATCH));
1123 } 1107 }
1124 1108
1125 } // namespace net 1109 } // namespace net
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698