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 // 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 Loading... | |
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 Loading... | |
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 Loading... | |
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 Loading... | |
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 Loading... | |
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 |
OLD | NEW |