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

Unified Diff: net/socket/ssl_client_socket_unittest.cc

Issue 92443002: Extract Certificate Transparency SCTs from stapled OCSP responses (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@extract_scts
Patch Set: Fix C++11 compile error Created 7 years 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « net/socket/ssl_client_socket_nss.cc ('k') | net/test/ct_test_util.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: net/socket/ssl_client_socket_unittest.cc
diff --git a/net/socket/ssl_client_socket_unittest.cc b/net/socket/ssl_client_socket_unittest.cc
index 0e667c689410adbf84cbb0c4ad13edb62ed4e1d4..6d4b1183e8ed4306d17fde0e55c914c0ea1f4565 100644
--- a/net/socket/ssl_client_socket_unittest.cc
+++ b/net/socket/ssl_client_socket_unittest.cc
@@ -1793,9 +1793,11 @@ TEST_F(SSLClientSocketCertRequestInfoTest, TwoAuthorities) {
request_info->cert_authorities[1]);
}
-TEST_F(SSLClientSocketTest, ConnectSignedCertTimestampsEnabled) {
+} // namespace
+
+TEST_F(SSLClientSocketTest, ConnectSignedCertTimestampsEnabledTLSExtension) {
SpawnedTestServer::SSLOptions ssl_options;
- ssl_options.signed_cert_timestamps = "test";
+ ssl_options.signed_cert_timestamps_tls_ext = "test";
SpawnedTestServer test_server(SpawnedTestServer::TYPE_HTTPS,
ssl_options,
@@ -1835,10 +1837,69 @@ TEST_F(SSLClientSocketTest, ConnectSignedCertTimestampsEnabled) {
EXPECT_TRUE(LogContainsSSLConnectEndEvent(entries, -1));
#if !defined(USE_OPENSSL)
- EXPECT_TRUE(sock->WereSignedCertTimestampsReceived());
+ EXPECT_TRUE(sock->signed_cert_timestamps_received_);
#else
// Enabling CT for OpenSSL is currently a noop.
- EXPECT_FALSE(sock->WereSignedCertTimestampsReceived());
+ EXPECT_FALSE(sock->signed_cert_timestamps_received_);
+#endif
+
+ sock->Disconnect();
+ EXPECT_FALSE(sock->IsConnected());
+}
+
+// Test that enabling Signed Certificate Timestamps enables OCSP stapling.
+TEST_F(SSLClientSocketTest, ConnectSignedCertTimestampsEnabledOCSP) {
+ SpawnedTestServer::SSLOptions ssl_options;
+ ssl_options.staple_ocsp_response = true;
+ // The test server currently only knows how to generate OCSP responses
+ // for a freshly minted certificate.
+ ssl_options.server_certificate = SpawnedTestServer::SSLOptions::CERT_AUTO;
+
+ SpawnedTestServer test_server(SpawnedTestServer::TYPE_HTTPS,
+ ssl_options,
+ base::FilePath());
+ ASSERT_TRUE(test_server.Start());
+
+ AddressList addr;
+ ASSERT_TRUE(test_server.GetAddressList(&addr));
+
+ TestCompletionCallback callback;
+ CapturingNetLog log;
+ scoped_ptr<StreamSocket> transport(
+ new TCPClientSocket(addr, &log, NetLog::Source()));
+ int rv = transport->Connect(callback.callback());
+ if (rv == ERR_IO_PENDING)
+ rv = callback.WaitForResult();
+ EXPECT_EQ(OK, rv);
+
+ SSLConfig ssl_config;
+ // Enabling Signed Cert Timestamps ensures we request OCSP stapling for
+ // Certificate Transparency verification regardless of whether the platform
+ // is able to process the OCSP status itself.
+ ssl_config.signed_cert_timestamps_enabled = true;
+
+ scoped_ptr<SSLClientSocket> sock(CreateSSLClientSocket(
+ transport.Pass(), test_server.host_port_pair(), ssl_config));
+
+ EXPECT_FALSE(sock->IsConnected());
+
+ rv = sock->Connect(callback.callback());
+
+ CapturingNetLog::CapturedEntryList entries;
+ log.GetEntries(&entries);
+ EXPECT_TRUE(LogContainsBeginEvent(entries, 5, NetLog::TYPE_SSL_CONNECT));
+ if (rv == ERR_IO_PENDING)
+ rv = callback.WaitForResult();
+ EXPECT_EQ(OK, rv);
+ EXPECT_TRUE(sock->IsConnected());
+ log.GetEntries(&entries);
+ EXPECT_TRUE(LogContainsSSLConnectEndEvent(entries, -1));
+
+#if !defined(USE_OPENSSL)
+ EXPECT_TRUE(sock->stapled_ocsp_response_received_);
+#else
+ // OCSP stapling isn't currently supported in the OpenSSL socket.
+ EXPECT_FALSE(sock->stapled_ocsp_response_received_);
#endif
sock->Disconnect();
@@ -1847,7 +1908,7 @@ TEST_F(SSLClientSocketTest, ConnectSignedCertTimestampsEnabled) {
TEST_F(SSLClientSocketTest, ConnectSignedCertTimestampsDisabled) {
SpawnedTestServer::SSLOptions ssl_options;
- ssl_options.signed_cert_timestamps = "test";
+ ssl_options.signed_cert_timestamps_tls_ext = "test";
SpawnedTestServer test_server(SpawnedTestServer::TYPE_HTTPS,
ssl_options,
@@ -1886,12 +1947,10 @@ TEST_F(SSLClientSocketTest, ConnectSignedCertTimestampsDisabled) {
log.GetEntries(&entries);
EXPECT_TRUE(LogContainsSSLConnectEndEvent(entries, -1));
- EXPECT_FALSE(sock->WereSignedCertTimestampsReceived());
+ EXPECT_FALSE(sock->signed_cert_timestamps_received_);
sock->Disconnect();
EXPECT_FALSE(sock->IsConnected());
}
-} // namespace
-
} // namespace net
« no previous file with comments | « net/socket/ssl_client_socket_nss.cc ('k') | net/test/ct_test_util.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698