| OLD | NEW |
| 1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 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 "net/quic/crypto/proof_verifier_chromium.h" | 5 #include "net/quic/crypto/proof_verifier_chromium.h" |
| 6 | 6 |
| 7 #include "base/memory/ref_counted.h" | 7 #include "base/memory/ref_counted.h" |
| 8 #include "base/memory/scoped_ptr.h" | 8 #include "base/memory/scoped_ptr.h" |
| 9 #include "net/base/net_errors.h" | 9 #include "net/base/net_errors.h" |
| 10 #include "net/base/test_data_directory.h" | 10 #include "net/base/test_data_directory.h" |
| (...skipping 143 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 154 scoped_ptr<ProofVerifyContext> verify_context( | 154 scoped_ptr<ProofVerifyContext> verify_context( |
| 155 new ProofVerifyContextChromium(0 /*cert_verify_flags*/, BoundNetLog())); | 155 new ProofVerifyContextChromium(0 /*cert_verify_flags*/, BoundNetLog())); |
| 156 scoped_ptr<ProofVerifyDetails> details; | 156 scoped_ptr<ProofVerifyDetails> details; |
| 157 std::string error_details; | 157 std::string error_details; |
| 158 | 158 |
| 159 std::vector<std::string> certs; | 159 std::vector<std::string> certs; |
| 160 ASSERT_NO_FATAL_FAILURE(GetTestCertificates(&certs)); | 160 ASSERT_NO_FATAL_FAILURE(GetTestCertificates(&certs)); |
| 161 | 161 |
| 162 DummyProofVerifierCallback* callback = new DummyProofVerifierCallback; | 162 DummyProofVerifierCallback* callback = new DummyProofVerifierCallback; |
| 163 QuicAsyncStatus status = proof_verifier.VerifyProof( | 163 QuicAsyncStatus status = proof_verifier.VerifyProof( |
| 164 kTestHostname, kTestConfig, certs, GetTestSignature(), | 164 kTestHostname, kTestConfig, certs, "", GetTestSignature(), |
| 165 verify_context.get(), &error_details, &details, callback); | 165 verify_context.get(), &error_details, &details, callback); |
| 166 ASSERT_EQ(QUIC_FAILURE, status); | 166 ASSERT_EQ(QUIC_FAILURE, status); |
| 167 delete callback; | 167 delete callback; |
| 168 } | 168 } |
| 169 | 169 |
| 170 // Tests that the ProofVerifier doesn't verify certificates if the config | 170 // Tests that the ProofVerifier doesn't verify certificates if the config |
| 171 // signature fails. | 171 // signature fails. |
| 172 TEST(ProofVerifierChromiumTest, FailsIfSignatureFails) { | 172 TEST(ProofVerifierChromiumTest, FailsIfSignatureFails) { |
| 173 FailsTestCertVerifier cert_verifier; | 173 FailsTestCertVerifier cert_verifier; |
| 174 ProofVerifierChromium proof_verifier(&cert_verifier, nullptr, nullptr); | 174 ProofVerifierChromium proof_verifier(&cert_verifier, nullptr, nullptr); |
| 175 | 175 |
| 176 scoped_ptr<ProofVerifyContext> verify_context( | 176 scoped_ptr<ProofVerifyContext> verify_context( |
| 177 new ProofVerifyContextChromium(0 /*cert_verify_flags*/, BoundNetLog())); | 177 new ProofVerifyContextChromium(0 /*cert_verify_flags*/, BoundNetLog())); |
| 178 scoped_ptr<ProofVerifyDetails> details; | 178 scoped_ptr<ProofVerifyDetails> details; |
| 179 std::string error_details; | 179 std::string error_details; |
| 180 | 180 |
| 181 std::vector<std::string> certs; | 181 std::vector<std::string> certs; |
| 182 ASSERT_NO_FATAL_FAILURE(GetTestCertificates(&certs)); | 182 ASSERT_NO_FATAL_FAILURE(GetTestCertificates(&certs)); |
| 183 | 183 |
| 184 DummyProofVerifierCallback* callback = new DummyProofVerifierCallback; | 184 DummyProofVerifierCallback* callback = new DummyProofVerifierCallback; |
| 185 QuicAsyncStatus status = proof_verifier.VerifyProof( | 185 QuicAsyncStatus status = proof_verifier.VerifyProof( |
| 186 kTestHostname, kTestConfig, certs, kTestConfig, verify_context.get(), | 186 kTestHostname, kTestConfig, certs, "", kTestConfig, verify_context.get(), |
| 187 &error_details, &details, callback); | 187 &error_details, &details, callback); |
| 188 ASSERT_EQ(QUIC_FAILURE, status); | 188 ASSERT_EQ(QUIC_FAILURE, status); |
| 189 delete callback; | 189 delete callback; |
| 190 } | 190 } |
| 191 | 191 |
| 192 // Tests that EV certificates are left as EV if there is no certificate | 192 // Tests that EV certificates are left as EV if there is no certificate |
| 193 // policy enforcement. | 193 // policy enforcement. |
| 194 TEST(ProofVerifierChromiumTest, PreservesEVIfNoPolicy) { | 194 TEST(ProofVerifierChromiumTest, PreservesEVIfNoPolicy) { |
| 195 scoped_refptr<X509Certificate> test_cert = GetTestServerCertificate(); | 195 scoped_refptr<X509Certificate> test_cert = GetTestServerCertificate(); |
| 196 ASSERT_TRUE(test_cert); | 196 ASSERT_TRUE(test_cert); |
| (...skipping 10 matching lines...) Expand all Loading... |
| 207 scoped_ptr<ProofVerifyContext> verify_context( | 207 scoped_ptr<ProofVerifyContext> verify_context( |
| 208 new ProofVerifyContextChromium(0 /*cert_verify_flags*/, BoundNetLog())); | 208 new ProofVerifyContextChromium(0 /*cert_verify_flags*/, BoundNetLog())); |
| 209 scoped_ptr<ProofVerifyDetails> details; | 209 scoped_ptr<ProofVerifyDetails> details; |
| 210 std::string error_details; | 210 std::string error_details; |
| 211 | 211 |
| 212 std::vector<std::string> certs; | 212 std::vector<std::string> certs; |
| 213 ASSERT_NO_FATAL_FAILURE(GetTestCertificates(&certs)); | 213 ASSERT_NO_FATAL_FAILURE(GetTestCertificates(&certs)); |
| 214 | 214 |
| 215 DummyProofVerifierCallback* callback = new DummyProofVerifierCallback; | 215 DummyProofVerifierCallback* callback = new DummyProofVerifierCallback; |
| 216 QuicAsyncStatus status = proof_verifier.VerifyProof( | 216 QuicAsyncStatus status = proof_verifier.VerifyProof( |
| 217 kTestHostname, kTestConfig, certs, GetTestSignature(), | 217 kTestHostname, kTestConfig, certs, "", GetTestSignature(), |
| 218 verify_context.get(), &error_details, &details, callback); | 218 verify_context.get(), &error_details, &details, callback); |
| 219 ASSERT_EQ(QUIC_SUCCESS, status); | 219 ASSERT_EQ(QUIC_SUCCESS, status); |
| 220 delete callback; | 220 delete callback; |
| 221 | 221 |
| 222 ASSERT_TRUE(details.get()); | 222 ASSERT_TRUE(details.get()); |
| 223 ProofVerifyDetailsChromium* verify_details = | 223 ProofVerifyDetailsChromium* verify_details = |
| 224 static_cast<ProofVerifyDetailsChromium*>(details.get()); | 224 static_cast<ProofVerifyDetailsChromium*>(details.get()); |
| 225 EXPECT_EQ(dummy_result.cert_status, | 225 EXPECT_EQ(dummy_result.cert_status, |
| 226 verify_details->cert_verify_result.cert_status); | 226 verify_details->cert_verify_result.cert_status); |
| 227 } | 227 } |
| (...skipping 19 matching lines...) Expand all Loading... |
| 247 scoped_ptr<ProofVerifyContext> verify_context( | 247 scoped_ptr<ProofVerifyContext> verify_context( |
| 248 new ProofVerifyContextChromium(0 /*cert_verify_flags*/, BoundNetLog())); | 248 new ProofVerifyContextChromium(0 /*cert_verify_flags*/, BoundNetLog())); |
| 249 scoped_ptr<ProofVerifyDetails> details; | 249 scoped_ptr<ProofVerifyDetails> details; |
| 250 std::string error_details; | 250 std::string error_details; |
| 251 | 251 |
| 252 std::vector<std::string> certs; | 252 std::vector<std::string> certs; |
| 253 ASSERT_NO_FATAL_FAILURE(GetTestCertificates(&certs)); | 253 ASSERT_NO_FATAL_FAILURE(GetTestCertificates(&certs)); |
| 254 | 254 |
| 255 DummyProofVerifierCallback* callback = new DummyProofVerifierCallback; | 255 DummyProofVerifierCallback* callback = new DummyProofVerifierCallback; |
| 256 QuicAsyncStatus status = proof_verifier.VerifyProof( | 256 QuicAsyncStatus status = proof_verifier.VerifyProof( |
| 257 kTestHostname, kTestConfig, certs, GetTestSignature(), | 257 kTestHostname, kTestConfig, certs, "", GetTestSignature(), |
| 258 verify_context.get(), &error_details, &details, callback); | 258 verify_context.get(), &error_details, &details, callback); |
| 259 ASSERT_EQ(QUIC_SUCCESS, status); | 259 ASSERT_EQ(QUIC_SUCCESS, status); |
| 260 delete callback; | 260 delete callback; |
| 261 | 261 |
| 262 ASSERT_TRUE(details.get()); | 262 ASSERT_TRUE(details.get()); |
| 263 ProofVerifyDetailsChromium* verify_details = | 263 ProofVerifyDetailsChromium* verify_details = |
| 264 static_cast<ProofVerifyDetailsChromium*>(details.get()); | 264 static_cast<ProofVerifyDetailsChromium*>(details.get()); |
| 265 EXPECT_EQ(dummy_result.cert_status, | 265 EXPECT_EQ(dummy_result.cert_status, |
| 266 verify_details->cert_verify_result.cert_status); | 266 verify_details->cert_verify_result.cert_status); |
| 267 } | 267 } |
| (...skipping 19 matching lines...) Expand all Loading... |
| 287 scoped_ptr<ProofVerifyContext> verify_context( | 287 scoped_ptr<ProofVerifyContext> verify_context( |
| 288 new ProofVerifyContextChromium(0 /*cert_verify_flags*/, BoundNetLog())); | 288 new ProofVerifyContextChromium(0 /*cert_verify_flags*/, BoundNetLog())); |
| 289 scoped_ptr<ProofVerifyDetails> details; | 289 scoped_ptr<ProofVerifyDetails> details; |
| 290 std::string error_details; | 290 std::string error_details; |
| 291 | 291 |
| 292 std::vector<std::string> certs; | 292 std::vector<std::string> certs; |
| 293 ASSERT_NO_FATAL_FAILURE(GetTestCertificates(&certs)); | 293 ASSERT_NO_FATAL_FAILURE(GetTestCertificates(&certs)); |
| 294 | 294 |
| 295 DummyProofVerifierCallback* callback = new DummyProofVerifierCallback; | 295 DummyProofVerifierCallback* callback = new DummyProofVerifierCallback; |
| 296 QuicAsyncStatus status = proof_verifier.VerifyProof( | 296 QuicAsyncStatus status = proof_verifier.VerifyProof( |
| 297 kTestHostname, kTestConfig, certs, GetTestSignature(), | 297 kTestHostname, kTestConfig, certs, "", GetTestSignature(), |
| 298 verify_context.get(), &error_details, &details, callback); | 298 verify_context.get(), &error_details, &details, callback); |
| 299 ASSERT_EQ(QUIC_SUCCESS, status); | 299 ASSERT_EQ(QUIC_SUCCESS, status); |
| 300 delete callback; | 300 delete callback; |
| 301 | 301 |
| 302 ASSERT_TRUE(details.get()); | 302 ASSERT_TRUE(details.get()); |
| 303 ProofVerifyDetailsChromium* verify_details = | 303 ProofVerifyDetailsChromium* verify_details = |
| 304 static_cast<ProofVerifyDetailsChromium*>(details.get()); | 304 static_cast<ProofVerifyDetailsChromium*>(details.get()); |
| 305 EXPECT_EQ(CERT_STATUS_CT_COMPLIANCE_FAILED, | 305 EXPECT_EQ(CERT_STATUS_CT_COMPLIANCE_FAILED, |
| 306 verify_details->cert_verify_result.cert_status & | 306 verify_details->cert_verify_result.cert_status & |
| 307 (CERT_STATUS_CT_COMPLIANCE_FAILED | CERT_STATUS_IS_EV)); | 307 (CERT_STATUS_CT_COMPLIANCE_FAILED | CERT_STATUS_IS_EV)); |
| (...skipping 20 matching lines...) Expand all Loading... |
| 328 scoped_ptr<ProofVerifyContext> verify_context( | 328 scoped_ptr<ProofVerifyContext> verify_context( |
| 329 new ProofVerifyContextChromium(0 /*cert_verify_flags*/, BoundNetLog())); | 329 new ProofVerifyContextChromium(0 /*cert_verify_flags*/, BoundNetLog())); |
| 330 scoped_ptr<ProofVerifyDetails> details; | 330 scoped_ptr<ProofVerifyDetails> details; |
| 331 std::string error_details; | 331 std::string error_details; |
| 332 | 332 |
| 333 std::vector<std::string> certs; | 333 std::vector<std::string> certs; |
| 334 ASSERT_NO_FATAL_FAILURE(GetTestCertificates(&certs)); | 334 ASSERT_NO_FATAL_FAILURE(GetTestCertificates(&certs)); |
| 335 | 335 |
| 336 DummyProofVerifierCallback* callback = new DummyProofVerifierCallback; | 336 DummyProofVerifierCallback* callback = new DummyProofVerifierCallback; |
| 337 QuicAsyncStatus status = proof_verifier.VerifyProof( | 337 QuicAsyncStatus status = proof_verifier.VerifyProof( |
| 338 kTestHostname, kTestConfig, certs, GetTestSignature(), | 338 kTestHostname, kTestConfig, certs, "", GetTestSignature(), |
| 339 verify_context.get(), &error_details, &details, callback); | 339 verify_context.get(), &error_details, &details, callback); |
| 340 ASSERT_EQ(QUIC_SUCCESS, status); | 340 ASSERT_EQ(QUIC_SUCCESS, status); |
| 341 delete callback; | 341 delete callback; |
| 342 | 342 |
| 343 ASSERT_TRUE(details.get()); | 343 ASSERT_TRUE(details.get()); |
| 344 ProofVerifyDetailsChromium* verify_details = | 344 ProofVerifyDetailsChromium* verify_details = |
| 345 static_cast<ProofVerifyDetailsChromium*>(details.get()); | 345 static_cast<ProofVerifyDetailsChromium*>(details.get()); |
| 346 EXPECT_EQ(0u, verify_details->cert_verify_result.cert_status); | 346 EXPECT_EQ(0u, verify_details->cert_verify_result.cert_status); |
| 347 } | 347 } |
| 348 | 348 |
| 349 } // namespace test | 349 } // namespace test |
| 350 } // namespace net | 350 } // namespace net |
| OLD | NEW |