 Chromium Code Reviews
 Chromium Code Reviews Issue 1174073003:
  Add served cert chain to SSLInfo  (Closed) 
  Base URL: https://chromium.googlesource.com/chromium/src.git@master
    
  
    Issue 1174073003:
  Add served cert chain to SSLInfo  (Closed) 
  Base URL: https://chromium.googlesource.com/chromium/src.git@master| 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 8d6bb1bd189348890687eee249264885067b0f2e..854a274a32c4cd8fb26580a6e118c5198f488e89 100644 | 
| --- a/net/socket/ssl_client_socket_unittest.cc | 
| +++ b/net/socket/ssl_client_socket_unittest.cc | 
| @@ -2422,8 +2422,9 @@ TEST_F(SSLClientSocketTest, VerifyServerChainProperlyOrdered) { | 
| X509Certificate::FORMAT_AUTO); | 
| // Get the server certificate as received client side. | 
| - scoped_refptr<X509Certificate> server_certificate = | 
| - sock->GetUnverifiedServerCertificateChain(); | 
| + SSLInfo ssl_info; | 
| + sock->GetSSLInfo(&ssl_info); | 
| + scoped_refptr<X509Certificate> server_certificate = ssl_info.served_cert; | 
| 
davidben
2015/06/12 19:45:42
It is somewhat confusing that the code alternates
 
estark
2015/06/12 20:29:11
I like |unverified_cert| the best, I think. Change
 | 
| // Get the intermediates as received client side. | 
| const X509Certificate::OSCertHandles& server_intermediates = | 
| @@ -2466,6 +2467,11 @@ TEST_F(SSLClientSocketTest, VerifyReturnChainProperlyOrdered) { | 
| // expired. | 
| cert_verifier_->set_default_result(ERR_CERT_DATE_INVALID); | 
| + CertificateList served_certs = CreateCertificateListFromFile( | 
| + GetTestCertsDirectory(), "redundant-server-chain.pem", | 
| + X509Certificate::FORMAT_AUTO); | 
| + ASSERT_EQ(4u, served_certs.size()); | 
| + | 
| // We will expect SSLInfo to ultimately contain this chain. | 
| CertificateList certs = | 
| CreateCertificateListFromFile(GetTestCertsDirectory(), | 
| @@ -2543,6 +2549,19 @@ TEST_F(SSLClientSocketTest, VerifyReturnChainProperlyOrdered) { | 
| EXPECT_TRUE(X509Certificate::IsSameOSCert(intermediates[1], | 
| certs[2]->os_cert_handle())); | 
| + // Verify that SSLInfo also contains the chain as received from the server. | 
| + const X509Certificate::OSCertHandles& served_intermediates = | 
| + ssl_info.served_cert->GetIntermediateCertificates(); | 
| + ASSERT_EQ(3U, served_intermediates.size()); | 
| + EXPECT_TRUE(X509Certificate::IsSameOSCert(ssl_info.cert->os_cert_handle(), | 
| + served_certs[0]->os_cert_handle())); | 
| + EXPECT_TRUE(X509Certificate::IsSameOSCert(served_intermediates[0], | 
| + served_certs[1]->os_cert_handle())); | 
| + EXPECT_TRUE(X509Certificate::IsSameOSCert(served_intermediates[1], | 
| + served_certs[2]->os_cert_handle())); | 
| + EXPECT_TRUE(X509Certificate::IsSameOSCert(served_intermediates[2], | 
| + served_certs[3]->os_cert_handle())); | 
| + | 
| sock->Disconnect(); | 
| EXPECT_FALSE(sock->IsConnected()); | 
| } |